我有一个程序,玩家将躲避坠落的小行星,小行星将不得不穿过地面并相互撞击而不会结束游戏。但是,如果一个asateroid击中一个玩家,游戏将需要结束并在屏幕上显示游戏。如何区分联系人。
到目前为止,这是我的代码:
--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
答案 0 :(得分:0)
碰撞事件对象具有有关碰撞的对象的信息。你可以这样做:
if event.object1 == character or event.object2 == character then
print( "character was hit!" )
--end game and display game over code
end
在这里阅读更多内容: http://docs.coronalabs.com/api/event/collision/index.html