0

友達を楽しませるために基本的なゲームを作っています。まだ何も呼んでいませんが、基本的には別の正方形を追いかける正方形です。赤い四角は AI で、白い四角はプレイヤーが操作します。私はそれで衝突をすべて把握しました、そしてそれは完全に機能します。

このゲームの2人用バージョンを作ることにしました。そのため、ファイルを別のフォルダーにコピーして、2 プレーヤー ゲームに変換しました。衝突を除いて、すべて正常に動作します。シングルプレイヤー バージョンとまったく同じコリジョンがありますが、何らかの理由で、コリジョンが常に機能するとは限りません。それはグリッチで、プレーヤーの右側に触れた場合にのみカウントされる場合もあれば、左側に触れた場合にのみカウントされる場合もあります。何が起こるかは決まっていません。

とにかく、これが私のデスチェックコードです。main.lua の love.update() で呼び出します。

death.check=function()
    for _,enemy in ipairs(enemy) do
        for _,player in ipairs(player) do
            if ((enemy.x+enemy.w>player.x and enemy.x+enemy.w<(player.x+player.w)) and
            (enemy.y+enemy.h>player.y and enemy.y+enemy.h<(player.y+player.h))) then
                death.state=true
            end
        end
    end
end
4

1 に答える 1

1

次のような答えを見つけました。

for _,o in ipairs(enemy) do
    for _,i in ipairs(player) do
        if (o.x+o.w>i.x and o.x<i.x+i.w and
        o.y+o.h>i.y and o.y<i.y+i.h)  then
            death.state=true
        end
    end
end
于 2013-05-07T11:19:04.800 に答える