HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0526
ひよこ画像の表示について4解決


ひよこ

リンク

2009/5/26(Tue) 00:30:52|NO.25380

こんばんわ、早速質問させてください

今ゲームを作ってて主人公のアニメーションで立ちのアニメーションと
走ってるときのアニメーションを表示させたいのですが

画像のサイズが違うため1つの画像では表示させれないと思い
試行錯誤しているのですがこの場合はどのようなやり方がいいでしょうか?



この記事に返信する


hatter

リンク

2009/5/26(Tue) 07:18:39|NO.25385

画像を拡大して、どちらかのサイズに合わせれば良し。



SYAM

リンク

2009/5/26(Tue) 12:04:29|NO.25386

>1つの画像では表示させれない

この部分、意味がよくわかりません。
「アニメーションを表示」というといろんな方法があると思うのですが、
今は具体的にどのような方法で、グラフィックを画面に表示していますか?


以下は、「こういう意味かな?」っていう推測した上でのお話なので間違ってたら読み飛ばしてください。
もし、同じものを表すグラフィックが、アニメーションのパターンやコマごとに違うサイズの画像になっているのだとしたら、

【1】
縦、横それぞれ一番長い画像に合わせて、それより小さい絵の場合は余分な部分に余白をつくる。
たとえば、立っていてもしゃがんでいても画像データの縦幅は同じ大きさで、しゃがんでいる画像の上のほうは空白にします。
ただし、この方法だとキャラクターの当たり判定をしたいとき、画像データの大きさをそのまま判定に使えません。別途、当たり判定用のデータを持つ必要があります。
また、データが無駄に大きくなります。
その代わり、スクリプトは簡単になります。

【2】
すべての絵の表示位置データを作っておく.
表示位置をずらす量を、絵ごとに作っておきます。そして、たとえばキャラクターの表示位置を x,y とすると、

pos x+(右にずらす量), y+(下にずらす量)
こんな感じで表示位置を指定します。この値は配列にでもしておけば扱いやすいでしょう。
データの無駄が小さく、絵の大きさがそのまま当たり判定にも使えますが、スクリプトはややっこしくなります。

以下、【2】のサンプル.

// 大きさ32×32の立ち絵の用意. screen 1,128,32:cls 4:title"立ちパターン" color 255,255,255 repeat 4 font msgothic,32-cnt pos cnt*32+cnt/2, cnt mes "立" loop // 大きさ16×16の座り絵の用意. screen 2,128,16:cls 4:title"座りパターン" color 255,255,255 repeat 4 font msgothic,16-cnt pos cnt*16 + cnt/2, cnt mes "座" loop // 絵に関するデータの配列をつくる. winID=1,2 // 絵を格納したウインドウID. sizeX=32,16 // 貼り付ける絵の大きさ. sizeY=32,16 // 〃. shiftX=0,8 // 貼り付けるときにずらす量. shiftY=0,16 // 〃. screen 0,240,48,0 x=100 y=16 repeat stick k,0xff x+=((k&4)<<1)-((k&1)<<3) // キャラの移動. y+=(k&8)-((k&2)<<2) if(k&16):s=1:else:s=0 // 立っているか座っているかを表す. a=(a+1)&3 // こうすると a が 1→2→3→0→1→2→ …になる. redraw 0:color 0,0,0:boxf // キャラの絵の貼り付け位置を、shift?? 配列を使ってずらす. pos x+shiftX(s) , y+shiftY(s) // 立ち、座りの状態に合わせたサイズの絵を貼る. gcopy winID(s), a*sizeX(s),0 , sizeX(s),sizeY(s) redraw 1 wait 10 loop



SYAM

リンク

2009/5/26(Tue) 13:53:03|NO.25387

↑の補足。
【1】【2】は手順ではなく、やりかたが2通り あるってことです。
紛らわしいので、一応。



ひよこ

リンク

2009/5/26(Tue) 22:52:36|NO.25400

SYAMさんのやりかたでなんとかなりました。
説明不足とお返事が遅くなりまことに申し訳ありません。

とりあえずSYAMさんの方法でいけそうなのでなんとかがんばってみます。

ありがとうございました。



ONION software Copyright 1997-2021(c) All rights reserved.