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 が画面からはみ出しています。どうすればよいですか?