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


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0305
うぬるぅ文字の移動にかんする質問2解決


うぬるぅ

リンク

2011/3/5(Sat) 18:54:13|NO.37418

いきなりですが本題に入らせていただきます
今自分は ▲ の位置(以下自機x)が358(もしくは0),150になったとき
自機xが358の場合は右に移動禁止
自機yが0の場合は左に移動禁止
ってやりたいのですが、どうしてもできません><
この場合はどうしたらいいのでしょうか><


screen 0,400,200 現在のステージ=1 *たぶん重要な変数調整 自機x=200 タイム=1000 *現在のステージ ステージ=現在のステージ *めいん repeat redraw 2 if タイム=0:goto *ゲームオーバー color 255,255,255:boxf : color pos 自機x,150:mes "▲",1 pos 150,0:mes "残り時間 "+タイム if 自機x>0 :getkey x,37     //ここ if 自機x<358:getkey y,38     //ここ if x=1:自機x-1 if y=1:自機x+1 redraw 1 wait 1 タイム-1 loop *ゲームオーバー dialog "ゲームオーバー、やりなおしますか?",2,"あなたは負け犬" if stat=6:goto *たぶん重要な変数調整 if stat=7:end



この記事に返信する


ひよこ

リンク

2011/3/5(Sat) 19:15:27|NO.37419

そのままスクり実行するとたくさんエラー起こるんですけど…

x,yの値は、getkeyが実行されない限り変わりません。
なので、0以下や358以上だと、x,yが変わらず、ずーっと移動することになります。
だから、ループの初めで、初期化ということでx=0 : y=0 をしてやらねばなりません。
screen 0,400,200 
現在のステージ=1 *たぶん重要な変数調整 自機x=200:タイム=1000 ;ちょっと変更 *現在のステージラベル ;ちょっと変更 ステージ=現在のステージ *めいん repeat x=0 : y=0 ;変更箇所 redraw 2 if タイム=0:goto *ゲームオーバー color 255,255,255:boxf : color pos 自機x,150:mes "▲" pos 150,0:mes "残り時間 "+タイム if 自機x>0 :getkey x,37     //ここ if 自機x<358:getkey y,38     //ここ if x=1:自機x-1 if y=1:自機x+1 redraw 1 wait 1 タイム-1 loop *ゲームオーバー dialog "ゲームオーバー、やりなおしますか?",2,"あなたは負け犬" if stat=6:goto *たぶん重要な変数調整 if stat=7:end



うぬるぅ

リンク

2011/3/5(Sat) 19:24:25|NO.37420

おぉ!ちゃんとできました!
ありがとうございます!



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