プレイ日記
bはかせ kojimadaiti
幸いなことに昨日の夜の決意が まだ揺らいでいません。多分。 それでコンソールの移動と当たり判定の処理は 一応出来るには出来たんですが… 当たり判定が一点ではなく壁になった時に 面倒だな… 何か良い方法ありませんでしょうか。
8そうだね
プレイ済み
返信[1]
親投稿
bはかせ kojimadaiti
さっきのプログラムだと このニコチャンに重ならないようにするのは できたんですが、 これがずらーーっと縦とかに 並んだ時、判定をつけるのが 面倒なんですよね…
0そうだね
プレイ済み
返信[2]
親投稿
bはかせ kojimadaiti
おおっと訂正。 プレイ日記に載せたリストに脱字が。 正しくはこちら。
0そうだね
プレイ済み
返信[3]
親投稿
ユウキ rewqasdfvcxz
配列でどこに何がいるかを覚えておくといいんじゃない? 移動先の座標の配列にマークがいる時は移動しない!みたいなだと1つずつ確認しなくていいよ 妄想で書いたから動かしてないけど貼っとく
1そうだね
プレイ済み
返信[4]
親投稿
bはかせ kojimadaiti
なるほど、配列ですか… 使ったことなかったです。 ちょっとこの機会に使えるように ならないとですね。
0そうだね
プレイ済み
返信[5]
親投稿
ツララ LongIceSword
2次元だと当たり判定は点より線、線より面の方が簡単だったりしません? 点ならX==○&&Y==○が線ならX==○もしくはY==○、面ならX>=○(もしくはX<=○)かY>=○(略)みたいな感じで領域を指定できるかと。
1そうだね
プレイ済み
返信[6]
親投稿
bはかせ kojimadaiti
な、なるほど…! 確かに線、面の方が簡単ですね。 マップづくりとかに役に立ちそうです。 複数のNPCが出てきたときどうしようかな… 何か扱ったこと無いんですけど、 DATA文とか使えたりするんですかね?
0そうだね
プレイ済み
返信[7]
親投稿
だにえる haru2016nen
こめのこ&画像の命令って使えるのかな?
1そうだね
プレイ済み
返信[8]
親投稿
だにえる haru2016nen
DATAと配列…こうかな?
1そうだね
プレイ済み
返信[9]
親投稿
otta777 otta777a
ボタン入力時にX,Yの座標を記憶しておいて移動先に障害物があるか どうかをCHKCHR関数で調べて障害物があった場合はX、Yの座標を 記憶していた座標に戻すようにするのはどうでしょうか?
2そうだね
プレイ済み
返信[10]
親投稿
bはかせ kojimadaiti
CHKCHRが使えそうと思い とりあえず想像だけで使ってみました。 案の定、想像でしたら挙動がおかしくなった… 一回右か下に移動すると、もう左と上に 行けなくなるんですよね… 原因が探してもよくわからんのです…
0そうだね
プレイ済み
返信[11]
親投稿
だにえる haru2016nen
ボタンの判定はIFを使わなくても 出来るよ
1そうだね
プレイ済み
返信[12]
親投稿
otta777 otta777a
少しずつ直していきましょうか。 まず、BUTTON関数で取得した情報で移動方向と車の向きを決めるところですが 移動をする前に今のプレイヤーのX,Y座標を記憶しましょう。 A=BUTTON(1):OX=X:OY=Y IF A==1 THEN Y=Yー1:A$="↑":IF Y<0 THEN Y=OY IF A==2 THEN Y=Y+1:A$="↓":IF Y>29 THEN Y=OY IF A==4 THEN X=Xー1:A$="←":IF X<0 THEN X=OX IF A==8 THEN X=X+1:A$="→":IF X>49 THEN X=OX 座標が画面の外に出てしまう場合は移動前の位置に戻しましょう。 矢印↑↓←→は車の向きだと思って下さい。
1そうだね
プレイ済み
返信[13]
親投稿
otta777 otta777a
CH=CHKCHR(X,Y) IF CH!=0 THEN X=OX:Y=OY LOCATE OX,OY:PRINT CHR$(0); LOCATE X,Y:PRINT A$; VSYNC GOTO @LOOP あ、BUTTON関数の前に@LOOPのラベルを付けるのを忘れてたんで 追加してくださいね。 キャラクターを消す場合は” ”(空白)ではなくCHR$(0)を使いましょう。 ACLSやCLS命令を実行すると画面はCHR$(0)で埋め尽くされます。 表示してたキャラクタを消すのに" "(空白)を使うとCHKCHR関数で キャラクタコード取得した場合に見えない障害物があることになってしまいます。
2そうだね
プレイ済み
返信[14]
親投稿
bはかせ kojimadaiti
お…おおおっ、動く、動く! ちゃんと今いるところを記憶させてたり すると便利なんですね。 そして… なるほど、確かに“ ”で文字を消すと そこにCHKCHRが反応しちゃいますね。 さっき自分の組んだもので挙動がおかしく なっていたのはそのせいでしたか… 一度こういう風に他の人から分かりやすく アドバイスしてもらうと、 一体自分のプログラムのどこが悪かったのかが わかって良いですね。 otta777さん、そして他にも案を出してくれた 皆さん、ありがとうございます。
0そうだね
プレイ済み