您好我是andengine的新手,并尝试使用我从以下示例中获得的ParallaxLayer类来编写基本的sidescroller游戏:http://www.andengine.org/forums/features/parallaxlayer-t5390.html我按照示例运行。
我的问题是如何以顺序的方式显示3个图像(Sun_Stage.png,Moon_Stage.png Dark_stage.png)作为可滚动的背景...首先滚动直到Sun_stage.png完成然后滚动下一个阶段巫婆是Moon_Stage.png?
播放器将在Sun_Stage中启动,而他走过视差层将滚动图像....当Sun_Stage完成(达到其结束宽度),然后下一个阶段Moon_Stage应该可见并滚动?
希望我有意义吗?我不知道是否有另一种方法可以做到这一点...我基本上只想编写一个侧面滚动游戏,它永远不会以可滚动的背景结束而改变。
任何帮助都将不胜感激。
答案 0 :(得分:1)
Entity parent = new Entity();
attachChild(parent);
Sprite mountainsSprite = new Sprite(0, 0, WIDTH, HEIGHT, mountainsTextureRegion, mEngine.getVertexBufferObjectManager());
mountainsSprite.setPosition(0, 0);
parent.attachChild(mountainsSprite);
Sprite starsSprite = new Sprite(0, 0, WIDTH, HEIGHT, starsTextureRegion, mEngine.getVertexBufferObjectManager());
starsSprite.setPosition(mountainsSprite.getX()+ mountainsSprite.getWidth(), 0);
parent.attachChild(starsSprite);
ParallaxLayer parallaxLayer = new ParallaxLayer(camera, true, 4000);
backgroundParallax.setParallaxChangePerSecond(8);
backgroundParallax.setParallaxScrollFactor(1);
backgroundParallax.attachParallaxEntity(new ParallaxEntity(10, parent, true));
这里我所做的是添加所需的精灵以按序列移动到实体。然后我将此实体视为视差实体太视差背景
答案 1 :(得分:1)
拉玛的回答有效但......
我必须从ParallaxEntity
构造函数中删除最后一个参数,设置Entity
的位置和维度,并避免将Entity
附加到Scene
。
结果代码如下所示:
Entity parent = new Entity(0, 0, mountainsWidth + starsWidth, height);
// create mountains
Sprite mountainsSprite = new Sprite(0, 0, WIDTH, HEIGHT, mountainsTextureRegion, mEngine.getVertexBufferObjectManager());
parent.attachChild(mountainsSprite);
// create stars
Sprite starsSprite = new Sprite(0, 0, WIDTH, HEIGHT, starsTextureRegion, mEngine.getVertexBufferObjectManager());
parent.attachChild(starsSprite);
// create parallax background
backgroundParallax.setParallaxChangePerSecond(8);
backgroundParallax.setParallaxScrollFactor(1);
backgroundParallax.attachParallaxEntity(new ParallaxEntity(10, parent));