package com.testsprite;
import org.anddev.andengine.engine.Engine;
import org.anddev.andengine.engine.camera.Camera;
import org.anddev.andengine.engine.options.EngineOptions;
import org.anddev.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
import org.anddev.andengine.entity.scene.Scene;
import org.anddev.andengine.entity.scene.background.AutoParallaxBackground;
import org.anddev.andengine.entity.scene.background.ParallaxBackground;
import org.anddev.andengine.entity.sprite.Sprite;
import org.anddev.andengine.opengl.texture.Texture;
import org.anddev.andengine.opengl.texture.region.TextureRegion;
import org.anddev.andengine.opengl.texture.region.TextureRegionFactory;
import org.anddev.andengine.ui.activity.BaseGameActivity;
public class TestSprite extends BaseGameActivity {
final int CAMERA_WIDTH = 480;
final int CAMERA_HEIGHT = 800;
Camera mCamera = null;
Scene mMainScene = null;
AutoParallaxBackground mBackground = new AutoParallaxBackground(0,0,0,5);
@Override
public Engine onLoadEngine() {
mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
return new Engine(new EngineOptions(true,
EngineOptions.ScreenOrientation.PORTRAIT,
new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), mCamera).setNeedsSound(true)); //To change body of implemented methods use File | Settings | File Templates.
}
@Override
public void onLoadResources() {
//To change body of implemented methods use File | Settings | File Templates.
}
@Override
public Scene onLoadScene() {
mMainScene = new Scene(2);
Texture texture = new Texture(2048,128);
TextureRegion region = TextureRegionFactory.createFromAsset(texture,this,"bg_snow_cycle.png",0,0);
Sprite snowSprite1 = new Sprite(0,70,region);
mEngine.getTextureManager().loadTexture(texture);
mBackground.addParallaxEntity(new ParallaxBackground.ParallaxEntity(-10,snowSprite1));
mMainScene.setBackground(mBackground);
return mMainScene; //To change body of implemented methods use File | Settings | File Templates.
}
@Override
public void onLoadComplete() {
//To change body of implemented methods use File | Settings | File Templates.
}
}
andengine背景滚动循环



在AndEngine这个强大的2D游戏开发引擎中,背景滚动循环是一种常见的视觉效果,它能为游戏或应用增加深度和动感,提升用户体验。`AutoParallaxBackground`是AndEngine实现这一效果的主要工具。让我们深入探讨一下如何使用AndEngine的AutoParallaxBackground来创建动态的背景滚动循环。 AndEngine是一个基于Android平台的开源2D游戏引擎,它提供了一系列直观的API,使得开发者可以快速构建高质量的2D游戏。AutoParallaxBackground是AndEngine图形库中的一个类,用于实现自动平移的背景效果,这种效果通常在横版卷轴游戏中见到,如经典的《超级马里奥》。 要创建一个AutoParallaxBackground,我们需要做以下几步: 1. **初始化背景图像**:你需要准备多个背景图像,这些图像将组合成一个连续的背景。每个图像代表背景的一部分,当一个图像滑出屏幕时,下一个图像会滑入,从而形成滚动效果。 2. **设置比例因子**:AutoParallaxBackground允许你为每个背景图像设置不同的滚动速度,通过设置比例因子(parallaxFactor)。这意味着你可以让背景的不同部分以不同的速度滚动,从而创造出立体感和深度。 3. **实例化AutoParallaxBackground**:在你的Scene(场景)中,你需要创建一个AutoParallaxBackground实例。调用构造函数,传入三个参数:背景颜色、背景图像数组和对应的比例因子数组。例如: ```java AutoParallaxBackground bg = new AutoParallaxBackground(0, 0, 0, new ITextureRegion[]{textureRegion1, textureRegion2}, new float[]{1.0f, 2.0f}); ``` 这里,textureRegion1和textureRegion2是你的背景图像,1.0f和2.0f是对应的比例因子。 4. **添加到场景**:创建了AutoParallaxBackground后,将其添加到Scene中: ```java scene.setBackground(bg); ``` 5. **更新滚动**:你需要在每个帧的更新阶段调用AutoParallaxBackground的`onUpdate()`方法,使其根据摄像机的位置滚动: ```java bg.onUpdate(camera.getX()); ``` 6. **TestSprite**:压缩包中的`TestSprite`可能是一个示例精灵,用于展示如何在使用AutoParallaxBackground的场景中添加其他游戏元素。精灵是AndEngine中的动态图形对象,可以用来表示角色、道具等。添加精灵到场景并控制其移动、动画等,可以进一步丰富游戏内容。 通过灵活运用AutoParallaxBackground和AndEngine的其他功能,你可以创建出丰富多彩的2D游戏世界。理解并掌握这些技术对于提升游戏的视觉吸引力和玩家沉浸感至关重要。同时,不断地实践和学习新的AndEngine特性,将有助于你成为一个出色的2D游戏开发者。







































































- 1

- #完美解决问题
- #运行顺畅
- #内容详尽
- #全网独家
- #注释完整
- zhoutian110862014-05-30不错的资源,值得收藏!!

- 粉丝: 243
- 资源: 53
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- awesome-deepseek-integration_README_cn.pdf
- ollama+deepseek搭建
- Python算法视频教程.zip
- Windows+MacOS双重引导工具:OpenCore-1.0.4-RELEASE.zip
- Python全栈开发工程师视频教程.zip
- 工业缺陷检测数据集(DAGM2007),10个独立类别
- OpenManus复刻版 Manus
- VLOOKUP函数17个重要和常见用法
- Python爬chong高级开发工程师视频.zip
- 基于python实现的CNN网络入侵检测(准确率达百分之93以上)+源码+项目文档+训练模型(毕业设计&课程设计&项目开发)
- JRebel离线本地激活
- 基于AT89C51单片机全自动洗衣机-19.zip
- 云计算学习-OpenStack之Neutron
- python实现基于贝叶斯、神经网络、KNN进行入侵检测+源码+项目文档+实验流程(毕业设计&课程设计&项目开发)
- 基于matlab实现的牙齿stl网格模型分割算法+源码+项目文档(毕业设计&课程设计&项目开发)
- 热门短剧搜索网站+内置1.2万条短视频数据+无授权开心版


