-1
我有一個程序,玩家會躲避墜落的小行星,小行星將不得不穿過地面,並在沒有結束遊戲的情況下擊中對方。但是,如果一個asateroid擊中一個玩家,遊戲將需要結束並在屏幕上顯示遊戲。我如何區分聯繫人?LUA碰撞,多個物體
這裏是我到目前爲止的代碼:
--Start the physics engine!
local physics = require ("physics")
--Get a background image!
local background = display.newImage("Images/Background.png")
-- Hide status bar
display.setStatusBar(display.HiddenStatusBar);
--Is this guy even alive?
local PlayerAlive = true;
--What size is our screen?
_H = display.contentHeight;
_W = display.contentWidth;
--Play some tunes!
local music = audio.loadStream("Sounds/bf3.mp3");
--World is flat and small!
local leftWall = display.newRect (0, 0, 1, display.contentHeight);
local rightWall = display.newRect (display.contentWidth, 0, 1, display.contentHeight);
physics.addBody (leftWall, "static", { bounce = 0.1 });
physics.addBody (rightWall, "static", { bounce = 0.1 });
leftWall.myName = "Left wall"
rightWall.myName = "Right wall"
--Discover Gravity!
physics.setGravity(0, 1)
--5 Random numbers!
local Rock1Y = Math.Random(20)
local Rock2Y = Math.Random(20)
local Rock3Y = Math.Random(20)
local Rock4Y = Math.Random(20)
local Rock5Y = Math.Random(20)
if (Rock1Y == Rock2Y)then
end
--Create our rock!
local MyRock1 = display.newImage("Images/Rock.png", 25, 25)
local MyRock2 = display.newImage("Images/Rock.png", 25, 25)
local MyRock3 = display.newImage("Images/Rock.png", 25, 25)
local MyRock4 = display.newImage("Images/Rock.png", 25, 25)
local MyRock5 = display.newImage("Images/Rock.png", 25, 25)
--Add physics to our rock!
physics.addBody(MyRock1, "dynamic", {density = 1, friction = 0.0, bounce = 0.9, radius=10)
MyRock1.myName = "Rock 1"
physics.addBody(MyRock2, "dynamic", {density = 1, friction = 0.0, bounce = 0.9, radius=10)
MyRock2.myName = "Rock 2"
physics.addBody(MyRock3, "dynamic", {density = 1, friction = 0.0, bounce = 0.9, radius=10)
MyRock3.myName = "Rock 3"
physics.addBody(MyRock4, "dynamic", {density = 1, friction = 0.0, bounce = 0.9, radius=10)
MyRock4.myName = "Rock 4"
physics.addBody(MyRock5, "dynamic", {density = 1, friction = 0.0, bounce = 0.9, radius=10)
MyRock5.myName = "Rock 5"
--Where should MyRock be?
MyRock1.x = Random(10, _W-50) --Rock 1
MyRock1.y = Random(_H+Rock1Y)
MyRock2.x = Random(10, _W-50) --Rock 2
MyRock2.y = Random(_H+Rock2Y)
MyRock3.x = Random(10, _W-50) --Rock 3
MyRock3.y = Random(_H+Rock3Y)
MyRock4.x = Random(10, _W-50) --Rock 4
MyRock4.y = Random(_H+Rock4Y)
MyRock5.x = Random(10, _W-50) --Rock 5
MyRock5.y = Random(_H+Rock5Y)
--Here goes the character!
local character = display.newImage("Images/Character.png", display.contentWidth/2, 0)
physics.addBody(character, "dynamic", {density = 0, friction = 0.0, bounce = 0.9, radius = 2)
character.myName = "Character"
--Check for collision with character
local function onCollision(event)
if (event.phase == "began") then
--IF THE PLAYER IS HIT ADD THIS CODE BRENDAN DO IT TONIGHT
end
end
看起來不像你已經嘗試任何事情,請註明您曾嘗試在onCollision什麼。你可以編寫僞代碼。 – Schollii
您可以使用碰撞過濾器。 corona API中也指定了相同的情況。閱讀此文檔以獲取更多信息:http://docs.coronalabs.com/guide/physics/collisionDetection/#collision-filtering –