易采站长站为您分析Android游戏开发学习①弹跳小球实现方法,涉及Android通过物理引擎BallThread类模拟小球运动的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
本文实例讲述了Android游戏开发学习①弹跳小球实现方法。。具体如下:
在学习了一点点Android之后,觉得有必要记录下来,于是就开了这个新坑,慢慢来填吧。
1.运动体Movable类
本例主要模拟了一组大小不一的球以一定的水平初速度从高处落下的运动轨迹。其中的小球为一个可移动物体Movable对象,该类中除了包含小球图片对象之外,还包括了如位置坐标、水平速度、垂直速度等一系列用于模拟小球运动的成员变量和一些方法。
Movable类:
- package com.ball; import android.graphics.Bitmap;
- import android.graphics.Canvas; public class Movable {
- int startX = 0; // 初始X坐标 int startY = 0; // 初始Y坐标
- int x; // 实时X坐标 int y; // 实时Y坐标
- float startVX = 0f; // 初始水平方向的速度 float startVY = 0f; // 初始竖直方向的速度
- float v_x = 0f; // 实时水平方向的速度 float v_y = 0f; // 实时竖直方向的速度
- int r; // 可移动物体半径 double timeX; // X方向上的运动时间
- double timeY; // Y方向上的运动时间 Bitmap bitmap=null; // 可移动物体图片
- BallThread bt=null; // 负责小球移动 boolean bFall=false; // 小球是否已经从木板上下落
- float impactFactor=0.25f; // 小球撞地后速度的损失系数 public Movable(int x,int y,int r,Bitmap bitmap) {
- this.startX=x; this.x=x;
- this.startY=y; this.y=y;
- this.r=r; this.bitmap=bitmap;
- timeX=System.nanoTime(); // 获取系统时间初始化timeX this.v_x=BallView.V_MIN+(int)((BallView.V_MAX-BallView.V_MIN)*Math.random());
- bt=new BallThread(this); // 创建并启动BallThread bt.start();










