その過程で少々躓いた箇所がありまして、結果的には無事コードの修正を終えたのですが、
最初に書いたコードがなぜ思った通りに機能しないのかが理解できないのです。
これが理解できないと、今後似たような状況が何度も起こり得る為、きちんと理解しておきたいと思いました。
自分的にも今さら感がある質問なだけに、理由が分からないのが悔しいんですが。
わかるように説明できる方、優しく教えて頂けると嬉しいです。
よろしくお願いします。
37行目の『//コマンド選択』とコメントがある行の、次の行になります。
思い通りに機能しなかった行は38行目で、コメントアウトしています。
*GameLoop redraw 1: redraw 0: await 1000/60 //クリア color 50,50,50: boxf //デバッグ表示 color 255,0,0: pos 250,250: mes "scene = "+scene color 255,0,0: pos 250,270: mes "command_index = "+command_index switch scene case 0 //デバッグ表示 color 255,0,0: pos 250,200: mes "シーン1 //ウィンドウ color 255,255,255: boxf 200,300,500,400 color 0,0,0: boxf 202,302,498,398 color 255,255,255: pos 270, 320: mes "シーン1" color 255,255,255: pos 270, 350: mes "シーン2" //カーソル cursor 250,330+command_index*28 //カーソル操作 stick key if key&2: command_index-- if key&8: command_index++ //限界補正 if command_index<0: command_index=0 if command_index>1: command_index=1 //コマンド選択 ; if (key&32) & (command_index==1) : scene=1 ; ← この行がなんで正常に機能しないのか、わからないです! if key&32 { if command_index == 1: scene=1 } swbreak case 1 color 255,0,0: pos 250,200: mes "シーン2 swbreak swend goto *GameLoop #deffunc cursor int _x, int _y grad_ary=$ffff07,$ffff07,$8c5202,$8c5202 cur_x=_x+10,_x+10,_x-10,_x-10 cur_y=_y,_y,_y+8,_y-8 gsquare gsquare_grad,cur_x,cur_y,grad_ary return