|
|
2008/9/5(Fri) 19:45:58|NO.19040
キャラ移動のアルゴリズムがいまいちよくわかりません。
背景を固定して、キャラクターの位置をmx,myと置き変化させていく方法を、現在はとっていますが、ポケモンなどのように主人公が常にスクリーンの真ん中にくるようにしたいのです。
そのような場合は今度はキャラクターを固定すればいいのですか?
|
|
2008/9/5(Fri) 19:56:51|NO.19041
僕は主人公を固定にしてマップを逆移動させています。
ただそうするとマップ外がモロに見えてしまうことにもなりますが・・・
マリオのように、時にキャラ移動、時に背景移動するように
仕向けたらどうでしょうか?
|
|
2008/9/5(Fri) 20:50:29|NO.19045
>>時にキャラ移動、時に背景移動
なんかすごく処理が難しそうですね・・・
サンプルとか書いてあるとこありますでしょうか?
|
|
2008/9/5(Fri) 21:12:00|NO.19046
ttp://hsp.tv/play/pforum.php?mode=all&num=17407
ttp://hsp.tv/play/pforum.php?mode=all&num=17324
二つとも過去スレのものです。
|
|
2008/9/5(Fri) 21:13:21|NO.19047
背景の座標がある条件を満たしたら、今度はキャラクターの座標が変わるようにすればいい。
|
|
2008/9/5(Fri) 22:39:11|NO.19051
回答ありがとうございます。
それらを参考にして以下のプログラムを書いてみたのですが、スクロールには成功するのですがどうしても主人公がちらついてしまいます。
この場合、どうしても短時間の間に切り詰めて処理を入れているのでしょうがないのでしょうか?
ちらつきを回避する方法などありましたらお願いします。
x:横
y:縦
ttt:時間
stick key
if(key==1){
gsel 1
x=x-2:pos 0,0:gcopy 3,x,y,21*16,21*16
await ttt:redraw 0
x=x-2:pos 0,0:gcopy 3,x,y,21*16,21*16
gcopy 3,156,160,24,32
pos 156,160:gcopy 2,24,96,24,32:redraw 1
await ttt:redraw 0
x=x-2:pos 0,0:gcopy 3,x,y,21*16,21*16:redraw 1
await ttt:redraw 0
x=x-2:pos 0,0:gcopy 3,x,y,21*16,21*16
gcopy 3,156,160,24,32
pos 156,160:gcopy 2,0,96,24,32:redraw 1
await ttt:redraw 0
x=x-2:pos 0,0:gcopy 3,x,y,21*16,21*16:redraw 1
await ttt:redraw 0
x=x-2:pos 0,0:gcopy 3,x,y,21*16,21*16
gcopy 3,156,160,24,32
pos 156,160:gcopy 2,48,96,24,32:redraw 1
await ttt:redraw 0
x=x-2:pos 0,0:gcopy 3,x,y,21*16,21*16:redraw 1
await ttt:redraw 0
x=x-2:pos 0,0:gcopy 3,x,y,21*16,21*16
gcopy 3,156,160,24,32
pos 156,160:gcopy 2,24,96,24,32:redraw 1
}
|
|
2008/9/5(Fri) 23:34:48|NO.19053
ちらつき防止ならredraw。
|
|
2008/9/6(Sat) 00:36:52|NO.19056
これでなぜかちらつかなくなりました^^
みなさんわざわざありがとうございます。
if(key==1){
char_di=1:gsel 1
x=x-2:pos 0,0:gcopy 3,x,y,21*16,21*16
pos 156,160:gcopy 2,24,96,24,32
await ttt
x=x-2:pos 0,0:gcopy 3,x,y,21*16,21*16
pos 156,160:gcopy 2,24,96,24,32
await ttt
x=x-2:pos 0,0:gcopy 3,x,y,21*16,21*16
pos 156,160:gcopy 2,0,96,24,32
await ttt
x=x-2:pos 0,0:gcopy 3,x,y,21*16,21*16
pos 156,160:gcopy 2,0,96,24,32
await ttt
x=x-2:pos 0,0:gcopy 3,x,y,21*16,21*16
pos 156,160:gcopy 2,48,96,24,32
await ttt
x=x-2:pos 0,0:gcopy 3,x,y,21*16,21*16
pos 156,160:gcopy 2,48,96,24,32
await ttt
x=x-2:pos 0,0:gcopy 3,x,y,21*16,21*16
pos 156,160:gcopy 2,24,96,24,32
x=x-2:pos 0,0:gcopy 3,x,y,21*16,21*16
pos 156,160:gcopy 2,24,96,24,32
}
|
|
2008/9/6(Sat) 20:29:32|NO.19091
了解しました。
もう一回目を通してみます^^
|
|