1

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

4

1 に答える 1

0

LevelHelper 関連の質問については、gamedevhelper.com フォーラムをご利用ください。

この場合何が起こっているのかわかりませんが、プロジェクトを送って見てもらうことは可能ですか?

于 2014-05-05T12:01:28.293 に答える