トピック
あきと ackky-2005

BGとSPの当たり判定

例えば、 □ ■■■■■■■ ■■■■■■■■■■■ こんな感じにBGがあったとします。 そこにSPを入れて、当たり判定(例えば、□に下から当たったら、アイテムが出るなど)を作れますか?
1そうだね
プレイ済み
返信[1]
親投稿
ただぶつかるだけじゃなくて、「下から入ったなら」とか、条件を付けたい。 もちろん可能。
0そうだね
プレイ済み
返信[2]
親投稿
あきと ackky-2005
可能なら、ソースを画像に貼ってください。お願いします。自分まだ中級者なので。
1そうだね
プレイ済み
返信[3]
親投稿
上ボタンを押した、この時に変数を1にする→BGに当たった、もし変数が1なら→アイテムを出す、みたいな感じで出来ると思いますよ?(変数の1は例えです)
2そうだね
プレイ済み
返信[4]
親投稿
ΖΕΧ ZEX256
中級者なら自力でやれ 一覧見て自分で命令組み合わせて自分で考えて、できるでしょ中級者なら http://petitcom.net/3gou/alphabet
3そうだね
プレイ済み
返信[5]
親投稿
ΖΕΧ ZEX256
KEY : DADAXZ3 サンプル置いとくけど、君の代わりにタダでプログラム作ってやる気はない。 少しは自分で考えろ
3そうだね
プレイ済み
返信[6]
親投稿
中級ならとりあえず歩く部分を作って、それに書き足す方法を聞いたほうがいいんじゃ…
1そうだね
プレイ済み
返信[7]
親投稿
あきと ackky-2005
歩く所は作れます!当たり判定聞きたいだけです!ただ、そんなに攻めなくてもいいじゃないですか!?
2そうだね
プレイ済み
返信[8]
親投稿
当たり判定をどうやって作るのかを質問していたんですね、勘違いしてすいません。当たり判定はBGGETで出来ますよ。あと初心者、中級者、上級者などは自分で決めるものなので人によって価値観が違います、なのでそれによって対応の仕方が変わってくるので、もしそれが嫌ならあまり「~者」と書かない方がいいと思いますよ。
2そうだね
プレイ済み
返信[9]
親投稿
あきと SideBurnsM
「少しはプログラムできます」と書いているのに、どんな所まで自作できているのか示さなかったの厳しめに応対されてしまいましたね。 素直に現状組めているソースコードを公開キー発行して指摘してもらったほうが早いと思いますよ。
2そうだね
プレイ済み
返信[10]
親投稿
ΖΕΧ ZEX256
そんなに責めるつもりもないのだがスマンな、 BGの当たり判定について説明しとく
1そうだね
プレイ済み
返信[11]
親投稿
ΖΕΧ ZEX256
BASIC自体には壁という概念が無いので、 壁をすり抜けない方法は、貴方の作るプログラムによって、 貴方が壁と考えるBGキャラの位置に、 自キャラが入り込まないように 自キャラの移動を制限することで実現できます。 で、指定座標にあるBGのキャラクタ番号を調べるのがBGGETです。
1そうだね
プレイ済み
返信[12]
親投稿
ΖΕΧ ZEX256
では、どう制御すれば壁に入り込まないようにできるのか少々説明します、 キャラクタをボタン動作で移動させる場合、次の手順を踏みます。 ボタン入力→自キャラの座標を移動計算→自キャラの座標に自キャラ表示 この「自キャラの座標を移動計算」の前に、 ボタンを押した先の座標にあるBGキャラクタ番号を調べ、 その番号が、貴方の考える壁の番号だったら、自キャラの座標を進めない。 とすることで壁に入らないようにできます。
1そうだね
プレイ済み
返信[13]
親投稿
ΖΕΧ ZEX256
BGGETのX,Y座標には調べたいBGキャラの座標を指定するのですが、 BGGETは、2種類の座標系が指定できます。 座標系フラグ(省略時0) 0: X,Y座標をBGスクリーン座標(キャラ単位)とする 1: X,Y座標を画面座標(ドット単位)とする
1そうだね
プレイ済み
返信[14]
親投稿
ΖΕΧ ZEX256
自キャラをスプライトで作っているなら座標はドット単位なので 1: X,Y座標を画面座標(ドット単位)なら、ほぼそのまま使えるのですが、 0: X,Y座標をBGスクリーン座標(キャラ単位)を使うなら、X,Y座標を16で割った値にする必要があります。 ドット単位で移動する場合は、1点で判定できません、キャラクターの幅と高さを考慮しなければならないからです。 BGのスクロールとかするならBGCOORDを使って座標変換すると良いかもしれません。 BGCOORDは、BGレイヤーの、画面上の座標(ドット)とBGレイヤー上の座標(ドット・キャラ単位)を相互変換できます。 http://petitcom.net/3gou/manual/bgcoord
1そうだね
プレイ済み
返信[15]
親投稿
ΖΕΧ ZEX256
下から当たったかどうかは、移動前の座標が、対称座標より下かどうかを判定すればできること
1そうだね
プレイ済み
返信[16]
親投稿
あきと ackky-2005
これが問題のものです。公開キー:Q32JD3HD 間違いの指摘お願いします。
1そうだね
プレイ済み
返信[17]
親投稿
ΖΕΧ ZEX256
一言だけ言っておくけど 他人にプログラムのデバッグやらせたり、プログラム組ませたりしたら それはもう君自身の力で完成させた事にはならない。 それをプログラムを組めないと言う。
3そうだね
プレイ済み
返信[18]
親投稿
ΖΕΧ ZEX256
サイドビューのアクションゲームなら、この辺が参考になると思う。 でんぺんさんの解説 解説つきサンプル講座 キャラクターの移動やジャンプ https://miiverse.nintendo.net/posts/AYIHAAAEAADaVHhje1QgdA 第二回解説つきサンプル講座 サイドビューのジャンプとBGとの判定 https://miiverse.nintendo.net/posts/AYIHAAAEAAA5VHwZFPOzCA ねこはちさんのマリオ挙動のサンプル https://miiverse.nintendo.net/posts/AYMHAAACAAADVHkks3FGig https://miiverse.nintendo.net/posts/AYMHAAACAAADVHlBx-c_jQ
0そうだね
プレイ済み
返信[19]
親投稿
あきと SideBurnsM
落としてみましたが、アイテムの前にBGの判定をきちんと出来るようにした方が良いと思います。 今は左移動、右移動、ジャンプのボタンの直後にBGGETを使って別々に判定していますが移動後にいっぺんに判定した方が良いです。 また今の動きでは一度めり込んでから元に戻そうとする動きになっていますが、上でZEXさんも書いているように移動先に行けない場合は元に戻すようにすればめり込まなくなるはずです。 床にもBGを置いてきちんと歩けるようにするのが最初の目標ですね。
0そうだね
プレイ済み
返信[20]
親投稿
あきと ackky-2005
すみません。皆さんの意見から感じた物は「アクションゲームはもう少し上達してから作る」ということです。なので、皆さんにはご迷惑をおかけしましたが、アクションゲームは後回しにして、もっと別のものを作って上達したいと思います。なので、今後とも応援よろしくお願いします。
0そうだね
プレイ済み
返信[21]
親投稿
ΖΕΧ ZEX256
そうだね、マリオの様な動きは、どうやって実現しているのか、 その仕組みを想像して思案し、それを具現化したものがプログラムなので、 考えの無い者にはプログラムは作れない。 教えるとしても、具体的なプログラムではなく、論理的な話になってくる。
0そうだね
プレイ済み