单击安卓按钮动画
回答
好吧,这是我已经设置了我的项目,将完全按照自己的工作需要一个...
您需要创建4个主要方面:
- 一活动(延伸活动)
- 甲SurfaceView(延伸SurfaceView实施SurfaceHolder.Callback)
- 螺纹(扩展螺纹)
- Objects的相互作用(延伸绘制对象)
活动开始,并产生一个创建线程一个SurfaceView。视图或线程可以包含您绘制/与之交互的对象,它取决于您如何在此处存储数据,但是如果您想出一个类间耦合最少的设计,那么最简单。
一旦启动,线程运行不断,直到停止(设置isRunning
为false):
/**
* Processing loop
*/
public void run() {
while (isRunning) {
try {
sleep(25);
} catch (InterruptedException e) {
Log.e("Thread","Thread Interruption");
e.printStackTrace();
}
update();
}
Log.d("Thread", "Game Loop Stopped");
}
/**
* Main processing of the game loop.
*/
private void update() {
handleInput();
updatePhysics();
updateUI();
updateState();
updateAI();
updateAnimations();
updateSound();
updateVideo();
}
在这个类,你看update()
方法,做了一堆动作线程的每个迭代。
您会感兴趣的方法大多是handleInput
,updateUI
和updatePhysics
方法。
在handleInput
中,您将回调SurfaceView以获取处理信息所需的数据。我的handleInput
是相当简单的,它只是从SurfaceView类的onTouchEvent
(当您使用SurfaceHolder.OnCallBack接口时得到实现)抓取MotionEvent
。
的updateUI
方法调用SurfaceView的update
它与每个对象重新绘制Canvas
,或气囊
public void update(List<Actor> actors) {
Canvas canvas = null;
try {
canvas = surface.lockCanvas();
synchronized (surface) {
//Blank the Canvas
for (int i = 0; i < actors.size(); i++) {
actors.get(i).draw(canvas);
}
}
} catch (NullPointerException e) {
e.printStackTrace();
} finally {
if (canvas != null) {
surface.unlockCanvasAndPost(canvas);
}
}
}
在这里我们可以看到,它调用draw
方法传递Canvas对象中的每一个你可交互的对象。我在上面的代码中调用了我的“Actor”。您如何选择执行draw
取决于您,但听起来您会使用很多canvas.drawBitmap()
函数。
回到主题的updatePhysics
方法,您会希望使用它来在对象被绘制到屏幕之前或之后更新对象。对于你来说,你需要让他们在屏幕上改变他们的X和/或Y位置,或者在handleInput
决定你击中气球后改变它的移动方向。
很难在StackOverflow回复中很好地解释这个问题。如果你真的希望我可以尝试在本周末将更多的信息放在一起,并将它张贴在外部给你(我可以提供我的UML类图表,其中包括图片示例,结构和数据流等其他信息。)
请让我知道如果我可以进一步帮助你!请注意,这不是我所有的工作。我使用了很多在线基础Android游戏结构的教程,但是现在没有可用的链接提供参考。
- 1. 画布和安卓按钮
- 2. 安卓单击画布
- 3. 安卓方向按钮点击动作
- 4. 按钮单击动画
- 5. 单击安卓按钮听众按钮不工作
- 6. 安卓:如何点击一个按钮
- 7. JS:想单击按钮动画
- 8. Angular 2按钮单击动画
- 9. 绑定的Silverlight动画按钮单击
- 10. 按钮在安卓
- 11. 安卓:放置单选按钮水平
- 12. 安卓在Eclipse - AsyncTask按钮点击启动FileWriter
- 13. 安卓GPS次活动错误时,点击下一步按钮
- 14. 动画未启动! (安卓)
- 15. 安卓浮动左/右按钮
- 16. 安卓“后退”按钮动作
- 17. 安卓布局动作栏按钮
- 18. 安卓与Eclipse按钮
- 19. 安卓双按钮提交
- 20. 安卓按钮问题
- 21. 安卓幻灯片按钮
- 22. 安卓图像按钮
- 23. 钛:安卓选项按钮
- 24. 安卓按钮里面PopupWindow
- 25. 安卓:ImageView.ScaleType但对按钮和/或单选按钮
- 26. 动画单选按钮
- 27. 安卓活动与启动画面重新启动和后退按钮神秘
- 28. 安卓启动画面
- 29. 安卓绘制动画线
- 30. 安卓:帘上下动画
我不'现在我们有时间来写一个完整的解释,但是google的Android游戏教程,你需要创建一个线程来执行你的气球对象的更新命令,然后让他们在画布上调用一个绘图命令,这里有很多教程可用,他们应该帮助你。我可以稍后发布代码从我的项目开始,它使用了你以后需要的大量工作。 – Grambot 2011-12-14 19:29:15