スプライト(質問掲示板

投稿: 002 1  mini ugonight 投稿:2011/09/11 10:06:11(最新:2011/09/20 22:08:20)
画像のスプライトで画像をアニメーションしながら回転させたり拡大させたり動きまわったりという動きを素早く気持ち悪くやりたいのですが、使い方がよくわからないので、なるべく奇妙な使い方を教えてくださいort

コメントする

コメントするには、ログインする必要があります。

コメント一覧

Cdv30200 aoi icon mini aoihikawa(投稿日:2011/09/12 13:58, 履歴)
描画は上手くできましたか?

アニメーションさせるには、
1画像を1コマとして、切り替えていくことで行います。

つまり、切り抜く前の画像の取得位置を
必要なコマの数だけ変更していくことになります。

例えば、1コマ辺りが150x150、
全体のサイズが横に3枚の画像でしたら
#1コマ目
x =0 
y =0 
w =150 
h =150 
xx=0 
yy=0 
ww=150 
hh=150 
setSpriteRect(getVariable("s"), x,y,w,h, xx,yy,ww,hh)

#2コマ目
x =150 
y =0 
w =150 
h =150 
xx=0 
yy=0 
ww=150 
hh=150 
setSpriteRect(getVariable("s"), x,y,w,h, xx,yy,ww,hh)

#3コマ目
x =300 
y =0 
w =150 
h =150 
xx=0 
yy=0 
ww=150 
hh=150 
setSpriteRect(getVariable("s"), x,y,w,h, xx,yy,ww,hh)

という形になりますね。

この中から、変更されていく箇所だけを
while文で纏めていきます。
#準備
y =0 
w =150 
h =150 
xx=0 
yy=0 
ww=150 
hh=150 

#アニメーションさせる
i = 0
while i < 3
  #切り抜く座標を変更していく
  x = 150 * i  
  
  #変更した座標で切り抜く
  setSpriteRect(getVariable("s"), x,y,w,h, xx,yy,ww,hh) 
  
  i = i + 1
end


また、画像の拡大/縮小は
ここにsetSpriteScale関数を組み合わせていく形になると思います。
002 1  mini ugonight(投稿日:2011/09/12 12:34, 履歴)
う~ん、僕が思うにはパラパラ漫画でくちゃくちゃ顔を変えながら顔をかっくんかっくんさせたり拡大させたりしたいのですが…

どうやって組み合わせたらいいでしょうか…
while文を使おうとしているのですがややこしくなってきてしまいました…
002 1  mini ugonight(投稿日:2011/09/12 00:24, 履歴)
何とか治りました!詳しいご説明ありがとうございます!
シューティングに近いものを作っている気がしてうれしくなりました♪
なんか新しいスクリプトが追加されたみたいですけどそれって使えますか?
Nyan mini rurun9(投稿日:2011/09/11 21:51, 履歴)
む。コレはたぶん…

RPGでつくっている場合は、画面サイズ(512*384)を超える画像は、自動で縮小されるという仕様があります。

その話題はコレ
http://blog.rmake.jp/%E4%B8%80%E3%80%80%E3%81%91%E3%82%93/693

その後、どーなったんだっけ。
Cdv30200 aoi icon mini aoihikawa(投稿日:2011/09/11 21:50, 履歴)
まず、setSpriteRect

この関数の引数は次のようになっています。
setSpriteRect([画像ファイルID],
 get_x, get_y, get_w, get_h,
 set_x, set_y, set_w, set_h)



今回サンプルの場合では、
setSpriteRect(getVariable("s"), x,y,w,h, xx,yy,ww,hh)

となっていますので、
x,y,w,h, が get、
xx,yy,ww,hh が setに相当していますね。

つまり、切り取る画像の開始座標が
x = 100、y = 100なのに対し、
各画像のサイズが150なので、
50ずつ、画像がずれて表示されています。

また、セット先の座標も
xx = 50、yy = 50となっているため、
後で表示位置を指定している
n = 100、m = 100の座標から
50ずつ、画像がずれて表示されています。
002 1  mini ugonight(投稿日:2011/09/11 21:01, 履歴)
…なんかすごいことになった……


何が原因なんでしょう…?
x =100
y =100
w =150
h =150
xx=50
yy=50
ww=150
hh=150
n =100
m =100

ここのやつの変数を代入してみたのですが…難しい計算ばかりで理解できているかどうか…
002 1  mini ugonight(投稿日:2011/09/11 16:35, 履歴)
あ···変数って、座標とかだったんですね。
でわ、あらためてやってみます。
Cdv30200 aoi icon mini aoihikawa(投稿日:2011/09/11 15:45, 履歴)
Error一覧
こちらの情報からすると、"not defined variable"は
「変数に中身を与えていないのに、条件式にその変数を用いたとき」
とあります。

つまり、121行目で、中身のない変数(xとかyなど)が使用されていますよ。
と言っているわけです。


内容を理解しないでコピーするだけでは動きません。

まずは、画像を表示するまでの基礎知識や手順として
こちらの記事を参考にしていただけましたら幸いです。

第01回 スクリプトって何?
第02回 画面にキャラクターを描画する
第03回 キャラクターをキー入力で操作する

その後、これまでの説明やwikiページを
確認されてみてはいかがでしょうか。
002 1  mini ugonight(投稿日:2011/09/11 15:12, 履歴)
あの~コードをこぴったらこんなエラーが…
line: 121 not defined variable : x
line: 121 not defined variable : y
line: 121 not defined variable : w
line: 121 not defined variable : h
line: 121 not defined variable : xx
line: 121 not defined variable : yy
line: 121 not defined variable : ww
line: 121 not defined variable : hh
line: 122 not defined variable : n
line: 122 not defined variable : m
このアルファベットは何ですか?
002 1  mini ugonight(投稿日:2011/09/11 12:25, 履歴)
…アニメーションっていうのはパラパラ漫画みたいにすることなんですけど
首を奇妙に動かしたり、いきなり接近してきたり…ちょっと難しいです…
何かスクリプトの例を出してくれるとありがたいです…
002 1  mini ugonight(投稿日:2011/09/11 10:49, 履歴)
おおぉ!こんなにコメが(ノ_-。)

こんなwikiがあったなんて知りませんでした!試してみます!
このアニメーションはspeakの合間にやるのでキャラアニメとは少し違いますが…RPGでは珍しいですかね…まあそんなところがテスクエの魅力であると思ってます!

では早速試してみようかと…
   mini ___(投稿日:2011/09/11 10:35, 履歴)
スプライトを常に動かし続けるには、そのスクリプトを
while内ループの中に突っ込んでいないといけません。

2DRPGにおいてこの条件はちと厳しいような気もしますが如何でしょうか。
キャラクタアニメとして登録したほうがいいような気はしますー。
      mini きゅうり(投稿日:2011/09/11 10:24, 履歴)
(変数使用で画像変更って感じ?)
      mini きゅうり(投稿日:2011/09/11 10:22, 履歴)
組み合わせると出来るはず。
002 1  mini ugonight(投稿日:2011/09/11 10:08, 履歴)
ちなみにここの下のほうの5枚の画像を使い2DRPGでやります