当前位置:编程学习 > JAVA >>

[AndEngine学习教程] 第2节 使用AndEngine.jar创建工程

1.回顾
       在上一节已经成功的导入AndEngine源代码项目,我们就利用它来实现我们的工程.lib文件在bin目录下:

 
2.建立工程
     在eclipse下file->new->project...->Android Application Project

 
 点击next
设置工程明等参数,例如:MoveBall,为了兼容工程版本,将SDk版本修改为2.1,如图所示:

 
接着下一步,可以随便选择你要的图标
 
然后next ....finish就完成了初始工程的创建
 
3.修改原始工程
 鼠标放在MoveBall项目上,右键选择Build Path->Configure build path
然后选择Projects,点击右边的Add.选择上AndEngine

点击OK就可以将AndEngine项目添加到工程了

打开MoveBall,java,将MoveBall extends Activity修改为MoveBall extends BaseGameActivity.
接着写代码:
[java] 
package season.lxx.moveball; 
 
 
import org.andengine.engine.camera.Camera; 
import org.andengine.engine.options.EngineOptions; 
import org.andengine.engine.options.ScreenOrientation; 
import org.andengine.engine.options.resolutionpolicy.IResolutionPolicy; 
import org.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy; 
import org.andengine.entity.scene.Scene; 
import org.andengine.entity.scene.background.RepeatingSpriteBackground; 
import org.andengine.entity.sprite.AnimatedSprite; 
import org.andengine.entity.sprite.TiledSprite; 
import org.andengine.entity.sprite.vbo.ITiledSpriteVertexBufferObject; 
import org.andengine.opengl.texture.TextureOptions; 
import org.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; 
import org.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; 
import org.andengine.opengl.texture.atlas.bitmap.source.AssetBitmapTextureAtlasSource; 
import org.andengine.opengl.texture.region.ITiledTextureRegion; 
import org.andengine.opengl.texture.region.TiledTextureRegion; 
import org.andengine.opengl.vbo.VertexBufferObjectManager; 
import org.andengine.ui.activity.BaseGameActivity; 
 
import android.app.Activity; 
import android.util.Log; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.support.v4.app.NavUtils; 
 
public class MoveBall extends BaseGameActivity { 
 
    private static final int CAMERA_WIDTH = 800; 
    private static final int CAMERA_HEIGHT = 480; 
    private final static float BALL_VELOCITY = 100f;//球的移动速度 
     
    private Camera mCamera; 
    private Scene mScene; 
    private RepeatingSpriteBackground background; 
    private TiledTextureRegion mFaceTextureRegion; 
     
    @Override 
    public EngineOptions onCreateEngineOptions() { 
        // TODO Auto-generated method stub 
         
        mCamera = new Camera(0,0,CAMERA_WIDTH,CAMERA_HEIGHT); 
        EngineOptions mEngineOptions = new EngineOptions(true, ScreenOrientation.LANDSCAPE_SENSOR, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), mCamera); 
         
        return mEngineOptions; 
    } 
 
    @Override 
    public void onCreateResources( 
            OnCreateResourcesCallback pOnCreateResourcesCallback) 
            throws Exception { 
        // TODO Auto-generated method stub 
        this.background = new RepeatingSpriteBackground(CAMERA_WIDTH, CAMERA_HEIGHT,   
                   getTextureManager(), AssetBitmapTextureAtlasSource.create(   
                    this.getAssets(), "background.png"),   
                    getVertexBufferObjectManager());  
         
         
        BitmapTextureAtlas mTexture = new BitmapTextureAtlas(getTextureManager(),64,32,TextureOptions.BILINEAR_PREMULTIPLYALPHA); 
        mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(mTexture, this, "face_circle_tiled.png", 0, 0,2,1); 
         
        /**
         * 参数说明:
         * mTexure是在内存中放置贴图资源用的,64,32是图片要求的宽和高,必须是2的n次方大小.如:2,4,8,16,32,64,128,512,1024....
         * 并且要比原图的宽高要大
         * 
         * mFaceTextureRegion相当于从mTexure中扣图,因为mTexure是由很多图集组成的,要从中截取一片出来
         * 0,0代表截图的top,right坐标(起点坐标),2和1分别代表贴图中一张存在2列1行
         * 
         */ 
        mTexture.load(); 
         
        pOnCreateResourcesCallback.onCreateResourcesFinished(); 
    } 
 
    @Override 
    public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback) 
            throws Exception { 
        // TODO Auto-generated method stub 
        mScene = new Scene(); 
        mScene.setBackground(background); 
         
        final float centerX = (CAMERA_WIDTH - mFaceTextureRegion.getWidth()) / 2;//计算贴图的中心坐标 
        final float centerY = (CAMERA_HEIGHT - mFaceTextureRegion.getHeight()) / 2; 
        final Ball mBall = new Ball(centerX, centerY,32, 32,this.mFaceTextureRegion,getVertexBufferObjectManager()); 

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,