?? 通過游戲代碼學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 + -