?? bullet.java
字號:
package chapter_11;
import javax.microedition.lcdui.* ;
import javax.microedition.lcdui.game.* ;
import java.util.Random;
public class Bullet extends Sprite{ //子彈類
boolean alive; //是否出邊界
public int w,h; //子彈像素
double speed=2,mapx,mapy; //子彈速度和屏幕邊界
private double bx,by; //子彈坐標
public double dx,dy; //子彈速度的分向量
private double degree; //子彈角度
public Random ran; //子彈位置
public Bullet(Image img,int w,int h,int feix,int feiy,int mapx,int mapy){ //構造方法
super(img,w,h); //父類構造方法
this.w=w; //設置像素大小
this.h=h; //設置像素大小
this.mapx=mapx;
this.mapy=mapy;
ran=new Random(); //產生隨機數
this.reset_Bullet(feix,feiy);
}
public int get_x(){
return (int)bx;
}
public int get_y(){
return (int)by;
}
public void reset_Bullet(int aget_x,int aget_y){//初始化子彈
alive=true; //子彈未出屏幕
if(ran.nextDouble()>=0.5) //設置子彈出現方位和射出方向
{
bx=ran.nextDouble() * (mapx - w);
if(ran.nextDouble() >= 0.5){
by = 0;
degree = Float11.acos((aget_x - bx) /
Math.sqrt((bx - aget_x) * (bx-aget_x) + (by - aget_y) * (by - aget_y))) +
3.141592654 + 0.5235987757 / 3 * (ran.nextDouble() * 2 - 1.0);
}else{
by = (double)mapy - h;
degree = Float11.acos((bx - aget_x) /
Math.sqrt((bx - aget_x) * (bx-aget_x) + (by - aget_y) * (by - aget_y))) +
6.283185308 + 0.5235987757 / 3 * (ran.nextDouble() * 2 - 1.0);
}
}else{
by=ran.nextDouble() * (mapy - h);
if(ran.nextDouble() >= 0.5){
bx = 0;
degree = Float11.asin((aget_y - by) /
Math.sqrt((bx - aget_x) * (bx - aget_x) + (by-aget_y) * (by-aget_y))) +
3.141592654 + 0.5235987757 / 3 * (ran.nextDouble() * 2 - 1.0);
}else{
bx = (double)mapx - w;
degree = Float11.asin((by - aget_y) /
Math.sqrt((bx - aget_x) * (bx - aget_x) + (by - aget_y) * (by - aget_y))) +
6.283185308 + 0.5235987757 / 3 * (ran.nextDouble() * 2 - 1.0);
}
}
setPosition(get_x(),get_y());
dx = -Math.cos(degree) * speed; //設置X方向上的速度
dy = -Math.sin(degree) * speed; //設置Y方向上的速度s
}
public boolean alived(){
if(bx > mapx - w || bx < 0 || by > mapy - h || by < 0)
return false;
else
return true;
}
public void Bulletmove(){ //子彈移動
bx += dx;
by += dy;
setPosition(get_x(),get_y());
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -