自機の移動と, 弾発射の部分を作っているのですが,
弾を発射しているときはなぜか斜めに移動することができません。
(右上にだけは移動できるようですが)
getkeyで使用している変数に重複はありません。
また, 自機の移動と弾の発射の処理は完全に独立しています。
問題の解決をよろしくお願いします。
以下スクリプトです。
どこがおかしいのか検討がつかないので,
かなり長くなっております。すみません。
screen 0,800,640 mx = 270.0 : my = 600.0 dim mb,64,4 //0=x, 1=y, 2=exist mb_cnt = 0 repeat 64 mb(cnt,0) = 0 mb(cnt,1) = 0 mb(cnt,2) = 0 loop repeat //描画部分 redraw 0 color 0,0,0 : boxf 0,0,539,639 color 0,255,0 : circle mx-10, my-10, mx+10, my+10 repeat 64 if mb(cnt,2) = 1 { color 128,128,0 circle mb(cnt,0)-3,mb(cnt,1)-3,mb(cnt,0)+3,mb(cnt,1)+3 } loop redraw 1 //自機操作部分 ue = 0 : getkey ue,38 si = 0 : getkey si,40 hi = 0 : getkey hi,37 mi = 0 : getkey mi,39 if (ue = 1)&(hi = 1) : mx = mx - 2.84 : my = my - 2.84 : ue = 0 : hi = 0 if (ue = 1)&(mi = 1) : mx = mx + 2.84 : my = my - 2.84 : ue = 0 : mi = 0 if (si = 1)&(hi = 1) : mx = mx - 2.84 : my = my + 2.84 : si = 0 : hi = 0 if (si = 1)&(mi = 1) : mx = mx + 2.84 : my = my + 2.84 : si = 0 : mi = 0 if (hi = 1)&(mi = 0) : mx = mx - 4.0 : hi = 0 if (hi = 0)&(mi = 1) : mx = mx + 4.0 : mi = 0 if (ue = 1)&(si = 0) : my = my - 4.0 : ue = 0 if (ue = 0)&(si = 1) : my = my + 4.0 : si = 0 shoot = 0 : getkey shoot,32 if shoot = 1 { if mb_cnt = 63 : mb_cnt = 0 mb(mb_cnt,2) = 1 mb(mb_cnt,0) = int(mx) mb(mb_cnt,1) = int(my) mb_cnt = mb_cnt + 1 shoot = 0 } wait 1 loop