📄 通过游戏代码学j2me(五).txt
字号:
通过游戏代码学J2ME(五)
package npc7776;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import java.util.*;
/**************************************
* 类功能介绍:控制子弹,将所有子弹的状态放入
* 纪录集当需要刷新或更新时再取出
*************************************/
public class bullet {
Sprite bullet;
Image img;
Vector bullets = new Vector();
public bullet() {
try{
img = Image.createImage("/res/bullet.png") ;
}catch (Exception e){}
bullet = new Sprite(img,8,8);
}
//加入子弹
public void addBullet(int x, int y,int width){
Sprite b = new Sprite(img,8,8);
b.setPosition(x- bullet.getWidth() /2 + width/2,y) ;
bullets.addElement(b) ;
}
//移动和删除子弹
public void move(){
for (int i = 0; i< bullets.size() ; i++){
Sprite bb = (Sprite)bullets.elementAt(i) ;
bb.move(0,-3) ;
if(bb.getY() < 0 ){
bullets.removeElementAt(i) ;
}
}
}
//画子弹
public void drawSelf(Graphics g){
for(int i = 0; i< bullets.size() ;i++){
Sprite bs = (Sprite)bullets.elementAt(i) ;
bs.paint(g) ;
}
}
}
这里比前面的飞机类只不过多了一个Vector类。Vector是使用数组
方式存储数据,此数组元素数大于实际存储的数据以便增加和插入
元素,都允许直接按序号索引元素,这个类我接触的不多,请朋友门
多多指教
public void addBullet(int x, int y,int width){..}这里int x,
int y,是取的飞机的x,y。
b.setPosition(x- bullet.getWidth() /2 + width/2,y),设置子
弹出现位置是从飞机中间的坐标。
move 的方法中,if(bb.getY() < 0 )如果子弹超过屏幕自动消失。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -