1

ブロックタイプのゲームを作りたいとずっと思っていたのですが、実際に作る方法がわかりません。私は永遠にグーグルで検索しましたが、それほど多くはありません。そこには、気にしたくないという規定があります(gplライセンス、コードベース全体、および任意のプロジェクトのライセンス、ブレ)。それで、私は自分の問題でフォーラムに参加しました。知らなかったのですが、ぷよぷよ系のゲームを作ろうとしていました。天井からブロックが落ちてきて、3つ以上揃うとクリア。マッチングの仕方がわかりませんでした。それが私が知りたかったことです。とても素敵で魅力的で知的な仲間が私にこれを提供してくれました:

http://hastebin.com/ziyejejoxu.js

確かに、それはかなり多いですが、彼がなんとかコーディングした方法で、私はそれをある程度理解することができました. ただし、1 つの腹立たしい問題があります。コードの 1 行、正確に 1 行がコンパイルされず、壊れます。そのことについてメールしてもいいですかと彼に尋ねたところ、彼は大丈夫と答えました。まだ返事が来ていないので、来ないかもしれないのでこちらに載せておきます。これまでのコードの使用方法は次のとおりです。プレイ状態とパズル ピースの 2 つの部分があります。

http://pastebin.com/SvMR9mMb

プログラムはプレイステートで中断し、次のエラーが発生します。

source/PlayState.hx:291: 文字 33 ~ 52: x では配列アクセスは許可されていません: Int -> Int

私が試したこと:

パズルのピース x は浮動小数点数であるため、許可されていないと想定していました。もちろん、浮動小数点数を int 配列にプッシュすることはできません。だから私がしたことは、最初にパズルのピースで、floatをintに変換するだけでした。それはうまくいきませんでした。THEN状態で、フロートをintに切り替えました。それはうまくいきませんでした。演習として、Flixel ゲームを HaxeFlixel に変換して、何かを学べるかどうかを確認してみました。私はおそらくそれを間違っていましたが、しませんでした。

問題は、なぜその行がコンパイルされないのか、それをコンパイルするため、または意図した目的を達成するために何をする必要があるのか​​ということです。

4

1 に答える 1

1

構文が間違っています。pushは関数であり、関数呼び出しは を使用します()[]配列アクセス用です(したがって、エラーメッセージ)。

これはうまくいくはずです:

if (this_piece_is_in_a_match) matched_pieces.push(_i);
于 2015-07-14T06:22:46.660 に答える