云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 手机壁纸

手机壁纸

  • 62 次阅读
  • 3 次下载
  • 2025/7/12 8:43:46

public SingleBall(int x,int y,int size,int direction,Bitmap bitmap,int xSpan,int ySpan)//构造器 {

this.x=x;//初始化坐标位置 this.y=y;

this.size=size;//初始化球的尺寸

this.bitmap=bitmap;//初始化球的位图 this.direction=direction;//球的运动方向 this.xSpan=xSpan;//初始化x方向的步进 this.ySpan=ySpan;//初始化y方向的步进 }

void drawSelf(Canvas canvas, Paint paint) //绘制单个球的方法 {

canvas.drawBitmap(bitmap, x,y, paint); }

void go()//单个球运动的方法 {

int tempX,tempY;//球的目标位置 switch(direction) {

case DIRECTION_YS://如果在向右上方运动 tempX=x+xSpan;//计算目标位置坐标 tempY=y-ySpan;

if(isCollideWithRight(tempX,tempY))//到达屏幕右侧 {

direction=DIRECTION_ZS;//改变运动方向为左上 }

else if(isCollideWithUp(tempX,tempY))//到达屏幕上侧 {

direction=DIRECTION_YX;//改变运动方向为右下 }

else//如果没有碰撞 {

x=tempX;//更新坐标位置 y=tempY; } break;

case DIRECTION_ZS://如果在向左上方运动 tempX=x-xSpan;//计算目标位置坐标 tempY=y-ySpan;

if(isCollideWithLeft(tempX,tempY))//到达屏幕左侧 {

direction=DIRECTION_YS;//改变运动方向为右上 }

else if(isCollideWithUp(tempX,tempY))//到达屏幕上侧

{

direction=DIRECTION_ZX;//改变运动方向为左下 }

else//如果没有碰撞 {

x=tempX;//更新坐标位置 y=tempY; } break;

case DIRECTION_ZX://如果在向左下方运动 tempX=x-xSpan;//计算目标位置坐标 tempY=y+ySpan;

if(isCollideWithLeft(tempX,tempY))//到达屏幕左侧 {

direction=DIRECTION_YX;//改变运动方向为右下 }

else if(isCollideWithDown(tempX,tempY))//到达屏幕下侧 {

direction=DIRECTION_ZS;//改变运动方向为左上 }

else//如果没有碰撞 {

x=tempX;//更新坐标位置 y=tempY; } break;

case DIRECTION_YX://如果在向右下方运动 tempX=x+xSpan;//计算目标位置坐标 tempY=y+ySpan;

if(isCollideWithRight(tempX,tempY))//到达屏幕右侧 {

direction=DIRECTION_ZX;//改变运动方向为左下 }

else if(isCollideWithDown(tempX,tempY))//到达屏幕下侧 {

direction=DIRECTION_YS;//改变运动方向为右上 }

else//如果没有碰撞 {

x=tempX;//更新坐标位置 y=tempY; } break; }

}

boolean isCollideWithRight(int tempX,int tempY)//判断是否与屏右侧碰撞的方法 {

return !(tempX>0&&tempX

boolean isCollideWithUp(int tempX,int tempY)//判断是否与屏上侧碰撞的方法 {

return !(tempY>0); }

boolean isCollideWithLeft(int tempX,int tempY)//判断是否与屏左侧碰撞的方法 {

return !(tempX>0); }

boolean isCollideWithDown(int tempX,int tempY)//判断是否与屏下侧碰撞的方法 {

return !(tempY>0&&tempY

package com.bn.ex12f; /*

* 控制所有球的类 */

import java.util.ArrayList;

import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Paint;

public class AllBalls {

ArrayList alSingleBall=new ArrayList();//单个球列表 Bitmap[] ballsBitmap;//位图数组 int[] ballsSize;//球尺寸数组

int[] ballsXSpan;//球x方向步进数组 int[] ballsYSpan;//球y方向步进数组

public AllBalls(int[] ballsSize,Bitmap[] ballsBitmap,int[] ballsXSpan,int[] ballsYSpan)//构造器 {

this.ballsSize=ballsSize;//成员变量赋值

this.ballsBitmap=ballsBitmap;//成员变量赋值 this.ballsXSpan=ballsXSpan;//成员变量赋值 this.ballsYSpan=ballsYSpan;//成员变量赋值

for(int i=0;i

int x=(int) (Math.random()*(Constant.SCREEN_WIDTH-ballsSize[i]));//随机生成单个球的初始位置

int y=(int) (Math.random()*(Constant.SCREEN_HEIGHT-ballsSize[i])); int direction=(int) Math.random()*4;//随机生成单个球的运动方向 alSingleBall.add//创建单个球对象,并加入列表 (

new

SingleBall(x,y,ballsSize[i],direction,ballsBitmap[i],ballsXSpan[i],ballsYSpan[i])

); } }

public void drawSelf(Canvas canvas, Paint paint)//绘制所有球的方法 {

for(SingleBall sb:alSingleBall)//循环单个球列表 {

sb.drawSelf(canvas, paint);//绘制单个球 } }

public void go()//使所有球运动的方法 {

for(SingleBall sb:alSingleBall)//循环单个球列表 {

sb.go();//使单个球运动 } } }

package com.bn.ex12f; /*

* 控制所有球运动的线程 */

public class BallGoThread extends Thread { AllBalls allBalls;//声明AllBalls的引用

public BallGoThread(AllBalls allBalls)//构造器 {

this.allBalls=allBalls;//成员变量赋值 }

boolean ballGoFlag=true;//循环标志位 @Override

public void run()//重写run方法

{

while(ballGoFlag)//while循环 {

allBalls.go();//调用使所有球运动的方法 try {

Thread.sleep(Constant.MOVE_TIME);//一段时间后再运动 }

catch(Exception e) } } }

{

e.printStackTrace();//打印异常 }

搜索更多关于: 手机壁纸 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

public SingleBall(int x,int y,int size,int direction,Bitmap bitmap,int xSpan,int ySpan)//构造器 { this.x=x;//初始化坐标位置 this.y=y; this.size=size;//初始化球的尺寸 this.bitmap=bitmap;//初始化球的位图 this.direction=direction;//球的运动方向 this.xSpan=xSpan;//初始化x方向的步进 this.ySpan=ySpan;//初始化y方向的步进 } void drawSelf(Canvas canv

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com