GameMaker 日本語掲示板

ギミックを作りたいのですが

4 コメント
views
17 フォロー

下の画像のようなアンダーテールのギミックを作りたいのですがどのようなプログラムを書けばいいのでしょうか?
画像1

shirasu
作成: 2023/11/21 (火) 16:01:18
通報 ...
1

このパズルを知らないので動画で調べましたが一筆書きパズルでしょうか。

  • ✘を踏んだら◯になる
  • 全ての✘が◯になったらクリア

というルールでしょうか。
どのあたりのプログラムの書き方が分からないか、わかりますか?

2
shirasu 2023/11/22 (水) 09:49:52 修正 >> 1

返信ありがとうございます。
本来のルールですと
・×を踏むと丸になる
・もう一度踏むと△になりその後は踏んでも何も起きなくなります。
・全て×になった状態で左にあるスイッチを押したらクリア
といったような形になっています。

一度自分で組んでみたのですが反応しない部分が出てきてしまうといった状況になっております。

こちらが×側のstepで組んだプログラムです。
とりあえず現在は〇と×は踏まれたら交互に出るようにしています。
画像1

3
asa 2023/11/23 (木) 15:25:16 修正

全体の作りがわからない部分があるので的外れになるかもしれませんが、
オブジェクトO_step1がroom内に複数配置されていて、
playerオブジェクトがそれを踏むと✘が◯に、◯が✘に変わる(spriteが変わる)
という前提で考えてみます。

object_get_sprite()
object_set_sprite()
は、オブジェクトアセットのspriteを取得/セットする関数です。
(インスタンスではないというのが要です)
これのせいでロジックがおかしくなっていて意図通りに動かなくなっているように思います。

インスタンスのspriteを取得/セットするには、
sprite_indexでできます(これはインスタンスが持つ読み書き可の変数です)。

sprite_indexの更新だけでできるはずなので、これを踏まえて考えてみてください。

4

sprite_indexで試してみたところ想定している挙動どうりになりました!
ありがとうございます!!