📄 bullets.java
字号:
package Src;
/*
* 子弹类的实现
*/
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import java.util.*;
public class Bullets extends Sprite {
private int[][] num;//多子弹定义
private Random random;//随机的子弹运动方向
private int thisx,thisy;//获得屏幕的位置大小
private int Num;//子弹数量
private int Defspeed;//默认速度,当轴上速度为0时用
Bullets(Image e,int x,int y)
{
super(e,x,y);
super.setRefPixelPosition(x/2, y/2);
random=new Random();
Defspeed=2;
}
public void intonum(int Num,int x,int y)
{
this.Num=Num;
this.thisx=x;
this.thisy=y;
num=new int[this.Num][4];
for(int i=0;i<this.Num;i++)
{
num[i][0]=(random.nextInt()&0x7fffffff)%thisx/2;
num[i][1]=(random.nextInt()&0x7fffffff)%thisy/2;
num[i][2]=(random.nextInt()&0x7fffffff)%3;
num[i][3]=(random.nextInt()&0x7fffffff)%3;
}
}
public void fly()
{
for(int i=0;i<Num;i++)
{
if(num[i][0]>=thisx)//判断到右边窗口拉
{
num[i][2]=num[i][2]*(-1);
}
if(num[i][1]>=thisy)//判断到下边窗口拉
{
num[i][3]=num[i][3]*(-1);
}
if(num[i][0]<=0)//判断到左边窗口拉
{
num[i][2]=num[i][2]*(-1);
}
if(num[i][1]<=0)//判断到上边窗口拉
{
num[i][3]=num[i][3]*(-1);
}
if(num[i][2]==0)
{
num[i][2]=Defspeed;
}
if(num[i][3]==0)
{
num[i][3]=Defspeed;
}
num[i][0]+=num[i][2];
num[i][1]+=num[i][3];
}
}
public void draw(Graphics g)
{
for(int i=0;i<Num;i++)
{
super.setPosition(num[i][0], num[i][1]);
paint(g);
}
}
public boolean collidesWith(Sprite plane)
{
for(int i=0;i<Num;i++)
{
this.setPosition(num[i][0], num[i][1]);
if (this.collidesWith(plane,true))
{
return true;
}
}
return false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -