这博客是为了激励我自己学习使用, 自己学习过程中随便写写, 水平极其菜鸟, 因此稍微懂点的就可以右上角了
看了2个andengine中的小例子, 试着实现小球随手指移动的功能, 基本功能是实现了,至于代码写的如何, 这样实现有木有问题, 就不是我现在所操心的事情了, 现在处于依葫芦画瓢的阶段,因此可能代码的使用漏洞百出, 如果有人指出来, 不胜感激。
好, 下面上代码 上图:
package y.j.d.dragsprite;
import org.andengine.engine.camera.Camera;
import org.andengine.engine.options.EngineOptions;
import org.andengine.engine.options.ScreenOrientation;
import org.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
import org.andengine.entity.modifier.PathModifier;
import org.andengine.entity.modifier.PathModifier.Path;
import org.andengine.entity.scene.IOnSceneTouchListener;
import org.andengine.entity.scene.Scene;
import org.andengine.entity.scene.background.Background;
import org.andengine.entity.sprite.Sprite;
import org.andengine.entity.util.FPSLogger;
import org.andengine.input.touch.TouchEvent;
import org.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas;
import org.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory;
import org.andengine.opengl.texture.region.ITextureRegion;
import org.andengine.ui.activity.SimpleBaseGameActivity;
import org.andengine.util.color.Color;
import android.util.Log;
public class MainActivity extends SimpleBaseGameActivity {
private int width = 720;
private int height = 480;
private BitmapTextureAtlas texture;
private ITextureRegion smile;
@Override
public EngineOptions onCreateEngineOptions() {
Camera camera = new Camera(0, 0, width, height);
return new EngineOptions(true, ScreenOrientation.LANDSCAPE_FIXED, new RatioResolutionPolicy(width, height), camera);
}
@Override
protected void onCreateResources() {
BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/");
texture = new BitmapTextureAtlas(getTextureManager(), 64, 64);
smile = BitmapTextureAtlasTextureRegionFactory.createFromAsset(texture, getAssets(), "smi.png", 0, 0);
texture.load();
}
@Override
protected Scene onCreateScene() {
getEngine().registerUpdateHandler(new FPSLogger());
Scene scene = new Scene();
scene.setBackground(new Background(Color.BLUE));
final Sprite sprite = new Sprite((width-smile.getWidth())/2, (height-smile.getHeight())/2, smile, getVertexBufferObjectManager()){
@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
float pTouchAreaLocalX, float pTouchAreaLocalY) {
Log.e("aaaaaaa", "ccccccccc");
switch (pSceneTouchEvent.getAction()) {
case TouchEvent.ACTION_DOWN:
this.setScale(2.0f);
break;
case TouchEvent.ACTION_MOVE:
this.setPosition(pSceneTouchEvent.getX()-this.getWidth()/2, pSceneTouchEvent.getY()-this.getHeight()/2);
break;
default:
this.setScale(1.0f);
break;
}
return true;
}
};
scene.setOnSceneTouchListener(new IOnSceneTouchListener() {
@Override
public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {
Log.e("aaaaaaa", "bbbbbbbbbb");
sprite.clearEntityModifiers();
if(pSceneTouchEvent.isActionUp()){
Path path = new Path(new float[]{sprite.getX(), pSceneTouchEvent.getX()-sprite.getWidth()/2}, new float[]{sprite.getY(), pSceneTouchEvent.getY()-sprite.getHeight()/2});
sprite.registerEntityModifier(new PathModifier(2, path));
}
return true;
}
});
scene.attachChild(sprite);
scene.registerTouchArea(sprite);
scene.setTouchAreaBindingOnActionDownEnabled(true);
scene.setTouchAreaBindingOnActionMoveEnabled(true);
return scene;
}
}
效果图:
基本功能搞定, 效果是小球可以拖动, 或者手指点到小球外, 那么小球就会向手指移动。
不知道为什么 eclipse 老是和设备失去连接, 为了证明logcat还起作用, 只好在和屏幕互动的时候加些log。 唉 不知道怎么解决啊。
分享到:
相关推荐
AndEngine 2013-3-12 最新Jar包,直接拉进项目libs即可,可查看源代码
Andengine-Android-Studio 用于游戏引擎、流行标题和引擎的 Android Studio 模块。
AndEngine-Utils 使 AndEngine 开发人员的生活更轻松的实用程序
AndEngine-井字游戏使用 AndEngine 的井字游戏,基于 Leonard Payne 的教程: : list=PLBmeNj1-Qt2ZucuAzoZQjOxscrWwYTii _
最新的AndEngine-GLES2源码,协助你更快更轻松的开发安卓游戏。
AndEngine,是一款Android平台的开源2D。AndEngine ,游戏引擎,著名的休闲游戏 Flappy Bird就是使用的该引擎开发。
AndEngine 2013-2月 最新Example,直接导入Eclipse即可,API15, 环境 Android 4.0.3
#AndEngine准备使用骨架 ##来自Charles Smartt Jr.和Jordan Dickow ##摘要以下是andEngine和andEnginePhysicsBox2DExtension的可编译就绪源代码集,仅在Android Studio中使用。 JNI本机扩展已被编译并包含在内,而...
MultiScreen for andengine
Android 最为流行的2D游戏引擎 优点:(1)高效:在大运算量好事情况下,使用C/C++本地代码进行开发。比如物理引擎或者音频处理。 (2)AndEngine是开源项目,开发者可对源码进行修改,它的源码在github上托管
AndEngine ,一款android游戏开发的开源引擎,开发android游戏时很有用!文档详细介绍了该引擎的各种功能
最新的AndEngine资源奉上!源代码,例子,还有jar包一应俱全
官方版本,亲测可用
程序是基于AndEngine-GLES2的,使用了模拟控制器、tiledmap地图,欢迎下载,因为第一次分享资源,然后也是自己没什么积分,所以资源分设置成了10分,以后共享我会把分设置低点,但是这个资源还是物有所值的。
我根据andengine文档和网上的例子,自己加工在androidstadio上运行代码中有我照着文档写的例子,根据自己理解做了一点注释,希望对新人有帮助
官方版本,亲测可用
官方版本,亲测可用
AndEngine 河內塔 遊戲源碼, 大圈不可壓小圈, 將3個圈圈移到另一個塔,
AndEngine游戏 DeliveryBoy 源代码,可以用来做AndEngine游戏实例教程进行参考
这个例子你可以在这里尝试: 上传到 github 的这些项目的目的只是指导性的,希望获得经验,学习,并公开向其他人展示代码,以防某些代码对您有所帮助,因为他们想做类似的事情。 其中一些是从头开始制作的(如 ...