プログラミングゼミ掲示板

プログラム共有・研究

6 コメント
views

情報Wikiからの転載

プロゼミでのプログラムを共有・研究しよう
ゲームのプログラムでも茶番のプログラムでもOK
研究は自分一人では作れそうに無いプログラムをみんなで研究しよう
追記しまくってくれぇ!!

名前なし
作成: 2024/12/25 (水) 15:22:35
最終更新: 2024/12/25 (水) 15:27:26
通報 ...
1
テンサイヤー 2024/12/25 (水) 15:25:11 fec1b@76971

疑似ポリゴン描画
面の部分を4分割してポリゴンっぽいものをつくる
回転もできるがバグるため使用は非推奨
☁️さんのプログラムをベースに作成しています

2
テンサイヤー 2024/12/25 (水) 15:26:06 fec1b@76971

変数によるキャラの管理
一つのキャラを画面上に複数呼び出した時、特定の呼び出したキャラだけにメッセージを送りたい場合などに使用する。
まず前提として、変数にはキャラを格納することができる。キャラを格納した場合、同じキャラでも個体ごとに区別される仕組みになっているので、これを利用して特定のキャラ個体だけにメッセージを送ることができる。
複数のキャラを呼び出す側(以下、親と呼ぶ)で呼び出したキャラを変数に格納しておき、親からメッセージを送る際に変数に格納されたキャラに対してメッセージを送ることで、変数に格納されたキャラ個体だけがプログラムを実行できる。

3
テンサイヤー 2024/12/25 (水) 15:26:58 fec1b@76971

同一キャラ判定による連続ヒット対策
キャラがぶつかった時に何か処理をしたいが、一度ぶつかったキャラには連続で処理したくない場合などに使用する。
【~ が ~】ブロックは、両方にキャラを入れることで同じ個体のキャラかどうかを調べることができるので、一度ぶつかった事のあるキャラを変数などに記憶しておき、ぶつかったキャラと同じ個体かどうかを調べることですでにぶつかった事のあるキャラかどうかを調べることができる。

複数のキャラにぶつかる可能性がある場合、どのキャラにも連続ヒットをさせないためには一度ぶつかった事のあるキャラをすべて記憶しておく必要があるため、一度ぶつかったキャラを配列に格納していく。
キャラとぶつかった時に『配列内のどれかのキャラ』が『ぶつかったキャラ』であれば一度ぶつかった事があるキャラなので、処理をスキップすることで連続ヒットを回避できる。
同一キャラ判定は「配列の要素数」回繰り返す必要があり、配列[ 0 ]から順番にぶつかったキャラと同じかどうかチェックしていく。

5

ぶつかったキャラを配列の要素として記憶するよりも辞書のキーとして記憶する方が便利になる
はいれつ][]ブロックで辞書にぶつかったキャラがキーの要素があるかを調べるだけになり
いちいち全ての要素を調べる必要が無くなる

4
名前なし 2024/12/25 (水) 15:28:17 fec1b@76971

パーティクルエフェクト
おおきさや、むきなどの値を引数で渡して呼び出すと勝手に飛んでいって時間が経つと消えるキャラを作っておき、これをたくさん呼び出すことでちょっと豪華なエフェクトを作ることができる。
キャラは時間と共に色の濃さが薄くなるようにすると大体いい感じの見た目になる。ごちゃごちゃしてる感がある場合、最初から色の濃さを薄めにしておくといい感じになりやすい。
光とか水とか、キラキラしてる系のものが相性抜群なので、とか🫧とかの1粒をキャラにするイメージで作ると成功しやすい。
キャラが呼び出された時の最初に、ステルスを1にするのを忘れずに。(あえてキャラとぶつかるようにしても色々できて面白そうだけど、キャラをたくさん使っていて重いので見た目として使いたいだけならステルスしておこう)

6
ほうらい(元:ムラムラもん) 2025/03/26 (水) 21:19:30 f1a01@76971

パックマン風、敵AI追跡アルゴリズム
動画
まずは動画を一通り見て欲しい。
すると分かると思うのだが、アルゴリズム自体は意外と単純。
簡単に説明すると、目的地(パックマンの場合、プレイヤーの位置)に最も距離が近い移動先を選択し、移動する。これにより、壁があっても周りこめる追跡AIを作ることができる。
自分も一度試してみたのだが、上手くいかなかったので配列に自信のある人に是非作ってもらいたい。