Lua 电晕物理探体位置
我在使用Corona SDK编写的游戏中跟踪物理实体时遇到了一些问题(完整代码可在此处找到:) 我对我所有的障碍物都施加一个线性脉冲,让它们移动,但我想让它们在到达某个X位置后停止。我以为我写的代码是正确的,但编译器告诉我不是这样的 请注意我在badguy.move()功能中遇到了麻烦 我的文件: 主要内容: 主菜单:Lua 电晕物理探体位置,lua,sdk,coronasdk,game-physics,detection,Lua,Sdk,Coronasdk,Game Physics,Detection,我在使用Corona SDK编写的游戏中跟踪物理实体时遇到了一些问题(完整代码可在此处找到:) 我对我所有的障碍物都施加一个线性脉冲,让它们移动,但我想让它们在到达某个X位置后停止。我以为我写的代码是正确的,但编译器告诉我不是这样的 请注意我在badguy.move()功能中遇到了麻烦 我的文件: 主要内容: 主菜单: local mainmenu = {} local Physics = require("physics") Physics.start() function mainme
local mainmenu = {}
local Physics = require("physics")
Physics.start()
function mainmenu.drawMainMenu()
menuTheme = audio.loadStream("Music/menuTheme.ogg")
menuThemeChannel = audio.play( menuTheme, { channel=1, loops=-1, fadein=3000 } )
background = display.newImage("menuBackground.png")
background.x = display.contentCenterX
background.y = display.contentCenterY
background:scale(1.2, 1.2)
playButton = display.newImage("playButton.png")
playButton.x = display.contentCenterX
playButton.y = display.contentCenterY - 75
playButton:scale( .3, .3 )
end
function mainmenu.play()
print("mainmenu - tap registered, preparing to load game..")
playButton:removeEventListener( "tap", myMenu.play )
audio.stop(1)
myScene.sayHello()
myScene.drawScene()
myHero.sayHello()
myHero.drawHero()
myGoomba.hello()
myGoomba.drawBadGuy()
myButtons.sayHello()
myButtons.drawButtons()
myGoomba.move()
gameTheme = audio.loadStream("Music/playTheme.ogg")
gameThemeChannel = audio.play( gameTheme, { channel=2, loops=-1, fadein=0 } )
jumpButton:addEventListener("tap", myButtons.jump)
backButton:addEventListener("tap", myButtons.goBack)
end
function mainmenu.sayHello()
print("mainmenu - Hello....")
end
return mainmenu
坏蛋:
local badguy = {}
local Physics = require("physics")
Physics.start()
function badguy.hello()
print("badguy - hello...")
end
function badguy.drawBadGuy()
obstacle = {}
obstacle[1] = display.newImage( "asteroid.png")
obstacle[1].x = 300
obstacle[1].y = 275
obstacle[1]:scale(.7, .7)
Physics.addBody(obstacle[1], "dynamic", {radius = 20, bounce = 0})
obstacle[2] = display.newImage( "asteroid.png")
obstacle[2].x = 400
obstacle[2].y = 275
obstacle[2]:scale(.7, .7)
Physics.addBody(obstacle[2], "dynamic", {radius = 20, bounce = 0})
obstacle[3] = display.newImage( "asteroid.png")
obstacle[3].x = 500
obstacle[3].y = 275
obstacle[3]:scale(.7, .7)
Physics.addBody(obstacle[3], "dynamic", {radius = 20, bounce = 0})
end
function badguy.move()
--get badguy to spawn back at start after they cross a certain x value and
--game should restart upon contact
for i = 1, #obstacle, 1 do
obstacle[i]:setLinearVelocity( -200, 0 )
if (obstacle[i].x < 100) then
print("if statement activated")
obstacle[i]:setLinearVelocity( 0, 0 )
end
end
end
function badguy.sayHello()
print("badguy - Hello....")
end
return badguy
localbadguy={}
本地物理=要求(“物理”)
物理开始
函数badguy.hello()
打印(“坏人-你好…”)
结束
函数badguy.draudguy()
障碍={}
障碍物[1]=display.newImage(“asteroid.png”)
障碍物[1]。x=300
障碍物[1],y=275
障碍物[1]:比例(.7,.7)
addBody(障碍物[1],“动态”{radius=20,bounce=0})
障碍物[2]=display.newImage(“asteroid.png”)
障碍物[2]。x=400
障碍物[2],y=275
障碍物[2]:比例(.7,.7)
addBody(障碍物[2],“动态的”{radius=20,bounce=0})
障碍物[3]=display.newImage(“asteroid.png”)
障碍物[3]。x=500
障碍物[3],y=275
障碍物[3]:比例(.7,.7)
addBody(障碍物[3],“动态的”{radius=20,bounce=0})
结束
函数badguy.move()
--让坏人在穿越某个x值后在开始时重新繁殖
--游戏应在接触后重新启动
当i=1时,障碍物为1
障碍物[i]:setLinearVelocity(-200,0)
如果(障碍物[i].x<100),则
打印(“如果语句已激活”)
障碍物[i]:setLinearVelocity(0,0)
结束
结束
结束
函数badguy.sayHello()
打印(“坏人-你好…”)
结束
反派
你到底有什么问题?我希望小行星精灵在玩家附近通过某个x值后在屏幕右侧重生。(基本上为小行星创造了重生功能)。我以为我在badguy.move()函数中使用了嵌套的if语句,但它不起作用……它不起作用,因为你只在播放器附近检测到小行星通过某个x值一次。尝试添加Runtime:addEventListener(“enterFrame”,myGoomba.move)
而不是myGoomba.move()
。还要记住删除enterFrame
事件。在Corona上了解更多信息。你认为我可以通过电子邮件或任何其他形式的信息与你联系吗?我还有一些其他问题需要解决,我在Corona几乎是个初学者:(我也是个初学者。通过回答不同的问题,我试图提高我的技能并帮助他人:)我建议你把你的问题放在电晕上和/或读很多书。你到底有什么问题?我希望小行星精灵在玩家附近通过某个x值后在屏幕右侧重生。(基本上为小行星创造了重生功能)。我以为我在badguy.move()函数中使用了嵌套的if语句,但它不起作用……它不起作用,因为你只在播放器附近检测到小行星通过某个x值一次。尝试添加Runtime:addEventListener(“enterFrame”,myGoomba.move)
而不是myGoomba.move()
。还要记住删除enterFrame
事件。在Corona上了解更多信息。你认为我可以通过电子邮件或任何其他形式的信息与你联系吗?我还有一些其他的问题需要解决,我在Corona是个初学者:(我也是个初学者。通过回答不同的问题,我试图提高我的技能并帮助他人:)我建议你把你的问题放到Corona上和/或读很多书。
local badguy = {}
local Physics = require("physics")
Physics.start()
function badguy.hello()
print("badguy - hello...")
end
function badguy.drawBadGuy()
obstacle = {}
obstacle[1] = display.newImage( "asteroid.png")
obstacle[1].x = 300
obstacle[1].y = 275
obstacle[1]:scale(.7, .7)
Physics.addBody(obstacle[1], "dynamic", {radius = 20, bounce = 0})
obstacle[2] = display.newImage( "asteroid.png")
obstacle[2].x = 400
obstacle[2].y = 275
obstacle[2]:scale(.7, .7)
Physics.addBody(obstacle[2], "dynamic", {radius = 20, bounce = 0})
obstacle[3] = display.newImage( "asteroid.png")
obstacle[3].x = 500
obstacle[3].y = 275
obstacle[3]:scale(.7, .7)
Physics.addBody(obstacle[3], "dynamic", {radius = 20, bounce = 0})
end
function badguy.move()
--get badguy to spawn back at start after they cross a certain x value and
--game should restart upon contact
for i = 1, #obstacle, 1 do
obstacle[i]:setLinearVelocity( -200, 0 )
if (obstacle[i].x < 100) then
print("if statement activated")
obstacle[i]:setLinearVelocity( 0, 0 )
end
end
end
function badguy.sayHello()
print("badguy - Hello....")
end
return badguy