プレイ日記
とるて alulu-ami157
あれ?ジャンプが出来なくなった。 何か勘違いしてるんだよなぁ… あぁ… うん。(?)
4そうだね
プレイ済み
返信[1]
親投稿
つばさ☆ nsm2116
んと、ジャンプするためのA変数がジャンプするときに-3になります。んで落下スピードは3です。なので、-3+3で0になります。ので、Y=Y+0をしても変わらないので、ジャンプができません。A=A+3の3という数値を低くするか、A=-3の3という数値を8とかにすればジャンプできると思います。(いのサイトだと、落下は0.1なので、ジャンプできます。)
1そうだね
プレイ済み
返信[2]
親投稿
つばさ☆ nsm2116
うん、まぁA=-3をA=-8にしてみそ。 多分、ジャンプできます。できなかったらすみません。
0そうだね
プレイ済み
返信[3]
親投稿
とるて alulu-ami157
それでも出来ないんですよね… 色々試みてるのですが…
1そうだね
プレイ済み
返信[4]
親投稿
つばさ☆ nsm2116
あ、つまりA=A+0.1にしてもできないのか……
0そうだね
プレイ済み
返信[5]
親投稿
neet#ニート# HIMAJIN.MIV
応用だけどDEF覚えてみては?? DEF JUMP IF JPU==1 THEN Y=Y-1 IF JPD==1 THEN Y=Y+1.5 IF Y<=200 THEN JPD=1:JPU=0 IF Y==300 THEN JPD=0:JPU=1 END IF BUTTON() AND 16 THEN JUMP ENDIF プログラムは適当ですがザクッとこんな感じ。DEFは定義を行いまして、命令を作るようなものです。JUMPという名の命令を定義してJUMPとかくだだけで、あら不思議
1そうだね
プレイ済み
返信[6]
親投稿
こういうのはエラーに関係してそうな変数をループ内で画面に表示してみると原因が解るかも WHILE 1  (一連の処理)  LOCATE △,□:PRINT STR$(変数) WEND みたいな
1そうだね
プレイ済み
返信[7]
親投稿
Hanzo rzsense
11行目 「JP=1」ではなく「JP=0」(初期状態はジャンプしていない)では? 19行目 は、多分不要ですので、先頭に「'」を入れて無効にしてください。 26行目 「A=A+3」を「IF JP==1 THEN A=A+0.1」としてください。 29行目 「IF Y>176 THEN Y=176:JP=0:A=0」としてください。 あと「WHILE TRUE~WEND」のループの中のどこかに「VSYNC 1」は入っていますか?なければ、入れてください。 これでジャンプできるようになると思いますが・・・的外れなアドバイスであれば恐縮です。 なお、このボタン入力判定方法だと、十字ボタン操作をしながらジャンプボタン、のように、2つ以上のボタンの同時入力を判定できません。 ボタン多重押しの判定方法については、また別の機会に。
1そうだね
プレイ済み
返信[8]
親投稿
Hanzo rzsense
あ、失礼。 よく見たら、Y座標の初期値が100(空中)になっているので、11行目は「JP=1」のままでよさそうです。
0そうだね
プレイ済み
返信[9]
親投稿
say sayer.exe
煮詰まったなら、敢えて退いてみるのも一つの手よ 「ジャンプとは何か?」から考え直すと、意外とすんなり行くことも
0そうだね
プレイ済み
返信[10]
親投稿
say sayer.exe
上記コードでのイメージは 落下してます(12行) 着地位置にいるなら 落下しません。着地してます(13行) ジャンプしたくて着地しているなら 重力に逆らいます(14行) 実際に落下しました(15行) こんな感じ
1そうだね
プレイ済み
返信[11]
親投稿
とるて alulu-ami157
たくさんの助言ありがとうございました! 無事ジャンプも出来ました!
0そうだね
プレイ済み