LevelHelper、SpriteHelper和Corona SDK中的对象碰撞。

我正在尝试制作一个像DoodleJump的游戏。在关卡(320x9600)中,一个物体(bar1_67)的位置(当然还有很多其他物体)是(177,263),并且物体具有物理形状。通过需要“LevelHelper.LevelHelperLoader”,我加载了该级别:

...
local loader={}

--loading level
loader.level=LevelHelperLoader:initWithContentOfFile("level1.plhs")
loader.level:instantiateObjects()
loader.level:removeBackgroundColor()
local lhGroup=loader.level:layerWithUniqueName("MAIN_LAYER")
group:insert(lhGroup)
--to scroll the level, and start from the bottom of level
lhGroup.y=-loader.level.lhGameWorldRect.size.height+display.contentHeight
...

在此步骤之后,物体bar1_67(根据设备屏幕)的新Y位置约为-9000。然后我添加了玩家,需要“SpriteHelper.SpriteHelperLoader”:

...
sLoader = require("SpriteHelper.SpriteHelperLoader")
local _player={}
_player.player=sLoader:createSpriteWithName("player","sprites","extra.pshs")
_player.player:setReferencePoint(display.centerReferencePoint)
_player.player.x=display.contentWidth*0.5
_player.player.y=display.contentHeight*0.4
...

启动模拟器时,是的级别已经滚动,但是玩家与某些看不见的东西发生了碰撞,留在空中。然后我添加了这段代码来查看发生了什么:

...
function aa(self,event)
   if(event.phase=="began") then
      print(event.other.x, event.other.y, event.other.lhUniqueName)
   end
end
_player.player.collision=aa
_player.player:addEventListener( "collision", _player.player )
...

输出为:

177   263   bar1_67

但正如我所说,级别已滚动,bar1_67已脱离屏幕。我应该怎么办?

点赞
用户606791
用户606791

请使用gamedevhelper.com论坛来帮助你解决相关的LevelHelper问题。

我不知道这种情况发生了什么,但您是否可以将项目发送给我查看?

2014-05-05 12:01:28