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


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
0521
初心者マップ上でのキャラクター移動について4解決


初心者

リンク

2016/5/21(Sat) 22:09:28|NO.75545

パックマンを制作しているのですが迷路の作成まではできましたが、
キャラクターが右方向と下方向に正常に移動しません。
スクリプトは

x = 320 : y = 512 : move = 16 gf = 1 : muki = 1 : key = 0 : k = 0 : game = 0 screen 0,672,704 repeat ifx = x : ify = y redraw 0 stick key,15 if key & 1 : ifx -= move : muki = 1 if key & 2 : ify -= move : muki = 2 if key & 4 : ifx += move : muki = 3 if key & 8 : ify += move : muki = 4 ifx = limit(ifx,0,ginfo_winx-31) ify = limit(ify,0,ginfo_winy-31) //衝突判定=============================================== if muki = 1 : mx = int(ifx/32) : my = int(ify/32) if muki = 2 : mx = int(ifx/32) : my = int(ify/32) if muki = 4 : mx = int(ifx/32)+1 : my = int(ify/32) if muki = 8 : mx = int(ifx/32) : my = int(ify/32)+1 mapmum = mx + (21*my) mapcode = peek(map,mapmum) if mapcode = '0' : x = ifx : y = ify //======================================================= gosub *map_draw pos x,y gmode 2,31,31 if gf = 0 { gcopy muki,0,0;画像コピー gf = 1 }else{ gcopy muki,32,0;画像コピー gf = 0 } redraw 1 await 1 loop stop *map_draw i = 0 redraw 0 repeat 22 my = cnt repeat 21 maps = peek(map,i) if maps = '0' : dmap = 0 if maps = '1' : dmap = 1 if maps = '2' : dmap = 2 if game = 0{ if dmap = 1{ kabex(k) = i*32 kabey(k) = my*32 if kabex(k) > 640 : kabex(k) -= 672 k += 1 } if dmap = 2{ kabex(k) = i*32 kabey(k) = my*32 if kabex(k) > 640 : kabex(k) -= 672 k += 1 } game = -1 } pos cnt*32,my*32 gmode 2,32,32 gcopy 9,dmap*32,0 i += 1 await 1 loop await 1 loop redraw 1 return です。 どこをどう直せばいいのかご教授の程お願いします。 長文失礼しました。



この記事に返信する


リンク

2016/5/21(Sat) 23:17:48|NO.75546

とりあえずキー入力ルーチンではmukiに1,2,3,4が代入されるにもかかわらず
衝突判定ではmukiが1,2,4,8かどうかで判定していますね。



初心者

リンク

2016/5/22(Sun) 21:07:51|NO.75554

返信遅くなり申し訳ありません。
本当ですね。気づいていませんでした。ご指摘ありがとうございます。
その他にお気づきの点などは無いでしょうか?



黒猫

リンク

2016/5/22(Sun) 22:55:43|NO.75556

redrawとawaitはメインループ内にあるので、
*map_drawより下に書いているredrawとawaitは無くしたほうがいいです。



Dice-K(学生につき返信遅)

リンク

2016/5/24(Tue) 21:55:14|NO.75572

みなさんありがとうございました。
おかげさまで、解決いたしました。
また、質問の際はよろしくお願いします。



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