WEB开发网
开发学院手机开发Android 开发 Android游戏开发中对象移动的例子 阅读

Android游戏开发中对象移动的例子

 2010-05-14 16:47:00 来源:WEB开发网   
核心提示:该游戏对象移动,以view的背景作动画,Android游戏开发中对象移动的例子,假设开始的位置是父View坐标的(0,0)游戏角色view的事件监听应该在父view中监听,同时注意,因为是以父Vew的左上角点为原点的// padding最好为每次位移量的正倍数,l,t,r,b为实时的坐标位置,step为每次位移量pri

该游戏对象移动,以view的背景作动画,假设开始的位置是父View坐标的(0,0)

游戏角色view的事件监听应该在父view中监听。

同时注意,AnimationDrawable.start()不能在Activity.onCreate事件未执行完就调用,

但可以用在比如点击按纽后就调用等。

public class Dog extends View implements OnKeyListener, Runnable {

// 左右移动对应不同的背景动画,用这个记下当前的背景动画

private AnimationDrawable nowAnim;

// 左移动对应的背景动画

private AnimationDrawable animLeft;

// 右移动对应的背景动画

private AnimationDrawable animRight;

private View parent;

// 记下view的坐标位置,用于移动后重画该区域。该坐标是相对于父View的。

// 同时要注意,如果父View是有padding的,要算上,因为是以父Vew的左上角点为原点的

// padding最好为每次位移量的正倍数。l,t,r,b为实时的坐标位置,step为每次位移量

private int l=0,t=0,r=22,b=20,step=3;

public Dog(Context context, View parent) {

super(context);

// TODO Auto-generated constructor stub

this.parent = parent;

// 记下父容器,即父View

l += parent.getPaddingLeft(); t += parent.getPaddingTop();

r += parent.getPaddingRight(); b += parent.getPaddingBottom();

// 如果父view有padding,要算上,因为view的坐标是以父view的左上角为原点的

// 生成左和右移动对应的背景动画,其实只是一个png,有对象移动时是的几个图片,将其分拆成移动的动画

animLeft = AndroidUtils.animationFromSplitImage(

context, R.drawable.woniu, 22, 20, 200);

// 只需一个移动方向的png就行了,该animationFromSplitImage函数是将图像水来翻转。

animRight = AndroidUtils.animationFromSplitImage(

AndroidUtils.imageFlipHorizintal(context, R.drawable.woniu), 22, 20, 200);

setAnimationDrawable( animRight );

//this.setOnKeyListener( this );

}

private void setAnimationDrawable(AnimationDrawable anim) {

1 2 3  下一页

Tags:Android 游戏 开发

编辑录入:coldstar [复制链接] [打 印]
赞助商链接