パックマンのようなゲームを作ろうとしています。私は次のような配列を持っています:
配列:
1111111111111
1000000000001
1111110111111
1000000000001
1111111111111
1 =壁、0=空のスペース
この配列を使用して、16x16のサイズのタイルを描画します。ゲームのキャラクターは32x32です。
最初は、配列インデックス、[1,1]などで文字の位置を表しました。
array [character.new_y] [charater.new_x] == 0の場合、彼の位置を更新します
次に、これらの配列座標をピクセル[y * 16、x * 16]に変換して、彼を描画しました。
彼はうまく並んでいて、壁には入らなかったが、私が彼をそれぞれ16ピクセルずつ更新していたので、彼は非常に速く動いていることに気づいた。
逆に、ゲームキャラクターの位置をピクセル単位で保存して、1回の移動で16ピクセル未満しか使用できないようにすることにしました。
私はこのような単純なifステートメントだと思いました:
if array[(character.new_pixel_y)/16][(character.new_pixel_x)/16] == 0
彼が壁に入るのを防ぐだろうが、残念ながら彼は底と右側の壁を少し食べます。
ピクセル位置を配列インデックスに適切に変換する方法はありますか?これは単純なことだと思いますが、私は本当にそれを理解することはできません:(