Android游戏开发学习①弹跳小球实现方法

2019-12-10 20:00:03于海丽
  • if (father.y + father.r * 2 >= BallView.GROUND_LING && father.v_y > 0) {   father.v_x = father.v_x * (1 - father.impactFactor); // 衰减水平方向的速度  
  • father.v_y = 0 - father.v_y * (1 - father.impactFactor); // 衰减竖直方向的速度并改变方向   if (Math.abs(father.v_y) < BallView.DOWN_ZERO) { // 判断撞地衰减后的速度,太小就停止运动  
  • this.flag = false;   } else {  
  • // 撞地后的速度还可以弹起继续下一阶段的运动   father.startX = father.x;  
  • father.timeX = System.nanoTime();   father.startY = father.y;  
  • father.timeY = System.nanoTime();   father.startVY = father.v_y;  
  • }   } 

    3.视图类BallView

    BallView是负责画面渲染的视图类,其中声明了一些物理计算时要使用的静态常量,同时还声明了程序中要绘制的图片资源以及要绘制的小球对象列表。BallView类继承自android.view包下SurfaceView类。SurfaceView不同于普通的View,其具有不同的绘制机理,适合用于开发游戏程序。使用SurfaceView需要实现SurfaceHolder.Callback接口,该接口可以对SurfaceView进行编辑等操作,还可以监控SurfaceView的变化。

    BallView类:

     

     
    1. package com.ball;   import java.util.ArrayList;  
    2. import java.util.Random;   import android.content.Context;  
    3. import android.content.res.Resources;   import android.graphics.Bitmap;