« 【講座】HSP3ワンポイントテクニック 第17回 | メイン | 【よみもの】もーりおのつぶやき 第5回 »

2007年03月20日

【講座】HSPよく使うフレーズ 第26回 配列で移動

今回は”すごろく”のような表示を作ってみたよ。

クイズやシューティングゲームのステージ表示、すごろくなど、
決められた座標にキャラクターが移動する表示は結構面倒なもの。

キャラクタの位置が16ドット毎など、計算しやすい位置ではなく、
1つずつ違う場合には、座標を配列に入れておくと簡単にできる。

メルマガではグラフィックの用意が面倒なので、最初にバッファ2に
背景を作成しておく。自分でゲームを作る場合には、事前に
グラフィックツールなどで作成してもOK。

キャラクタの移動時には、その背景をgcopyして利用している。

サンプルはマウスのRボタン、Lボタンで移動、ESCキーで終了。

配列の数値は、いろいろ細工しながら何度か使ってるのもポイントだ。
配列っていろいろ使えて便利だよ。

dim px,10:dim py,10
px.0=50,200,450,300,100
py.0=20,50,100,230,300
ofset1=50:ofset2=40
//screen 2,640,480
buffer 2,640,480
cls 4
//ライン描画
color 0,200,255
repeat 4
x1=px(cnt)+ofset1:y1=py(cnt)+ofset1
x2=px(cnt+1)+ofset1:y2=py(cnt+1)+ofset1
line x1,y1,x2,y2
wait 10
loop
//パネル配置
repeat 5
x=px(cnt):y=py(cnt)
color 255,255,0:boxf x,y,x+100,y+100
wait 10
loop
color 255,255,255:pos 400,430
mes "[mouse R/L button] Move."
mes "[esc key] End."
//最初の画面作成
screen 0,640,480:gcopy 2,0,0,640,480
//メインループ
*mainloop
stick key,,1
if (key&128)!0:end
if (key&256)!0:panel--
if (key&512)!0:panel++
panel=limit(panel,0,4)
gosub *meput
await 10
goto *mainloop
stop
*meput
redraw 0
pos 0,0
gcopy 2,0,0,640,480
x=px(panel)+ofset2
y=py(panel)+ofset2
pos x,y
color 0,200,0
mes "★"
redraw 1
return

[hsp3/panel.hsp]

(うすあじ)

投稿者 usuaji : 2007年03月20日 23:07

口臭チェッカー市場