📄 tankgame611.java
字号:
package tankgame611;
import java.awt.*;
import java.awt.Image;
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.MediaTracker;
public class TankGame611 extends Applet {
int myTankWidth,myTankHeight;
int enemyTankWidth, enemyTankHeight;
int myTankX,myTankY;
int enemyTankX,enemyTankY;
Image bufferImage;
Image myTankImg[];
Image enemyTankImg[];
Graphics bufferGraphic;
MediaTracker MT;
PlayTankSprite myTankSprite;
EnemyTankSprite enemyTankSprite;
public void init() {
MT=new MediaTracker(this);
myTankImg=new Image[4];
enemyTankImg=new Image[4];
for(int i=0;i<4;i++){
myTankImg[i]=getImage(getDocumentBase(),"pic/Tank"+i+".png");
enemyTankImg[i]=getImage(getDocumentBase(),"pic/ETank"+i+".png");
MT.addImage(myTankImg[i],0);
MT.addImage(enemyTankImg[i],0);
}
try {
MT.waitForAll();
}
catch(InterruptedException E) {
}
myTankWidth=myTankImg[0].getWidth(this);
myTankHeight=myTankImg[0].getHeight(this);
myTankX=(this.getWidth()-myTankWidth)/2;
myTankY=(this.getHeight()-myTankHeight)/2;
enemyTankWidth=enemyTankImg[0].getWidth(this);
enemyTankHeight=enemyTankImg[0].getHeight(this);
enemyTankX=this.getWidth()-enemyTankWidth;
enemyTankY=enemyTankHeight;
//建立缓冲画面
bufferImage=this.createImage(this.getWidth(),this.getHeight());
bufferGraphic=bufferImage.getGraphics();
this.setFocusable(true);
this.resize(this.getWidth(),this.getHeight());
myTankSprite=new PlayTankSprite(myTankImg,myTankX,myTankY,this);
enemyTankSprite=new EnemyTankSprite(enemyTankImg,enemyTankX,enemyTankY,this);
enemyTankSprite.setTankDirection(0);
}
public void start(){
myTankSprite.startRunning();
enemyTankSprite.startRunning();
}
public void stop(){
myTankSprite.stopRunning();
enemyTankSprite.stopRunning();
}
public void paint(Graphics g){
bufferGraphic.clearRect(0,0,this.getWidth(),this.getHeight());
myTankSprite.drawSprite(bufferGraphic,myTankSprite.getTankDirection());
enemyTankSprite.drawSprite(bufferGraphic, enemyTankSprite.getTankDirection());
g.drawImage(bufferImage,0,0,this);
}
public void update(Graphics g){
paint(g);
}
}
//direction:0=左;1=右;2=上;3=下
/* public void updatePos(int direction){
//移动坦克//
switch(direction){
case 0:
myTankX=myTankSprite.getX()-speed;
//设定坦克的边界动作//
if(myTankX<1)myTankX=1;
break;
case 1:
myTankX=myTankSprite.getX()+speed;
if(myTankX>AppletWidth-myTankWidth-1)
myTankX=AppletWidth-myTankWidth-1;
break;
case 2:
myTankY=myTankSprite.getY()-speed;
//设定坦克的边界动作//
if(myTankY<1)myTankY=1;
break;
case 3:
myTankY=myTankSprite.getY()+speed;
if(myTankY>AppletHeight-myTankHeight-1)
myTankY=AppletHeight-myTankHeight-1;
break;
}
//////设定坦克图像的正确位置/////
myTankSprite.setPos(myTankX,myTankY);
}
///////实现键盘事件控制的内部类/////
class keyAction extends KeyAdapter{
public void keyPressed(KeyEvent e){
if(e.getKeyCode()==e.VK_SPACE){
//发射子弹//
}
if(e.getKeyCode()==e.VK_LEFT){
myTankDirection=0;
getActiveMyTank=true;
}
if(e.getKeyCode()==e.VK_RIGHT){
myTankDirection=1;
getActiveMyTank=true;
}
if(e.getKeyCode()==e.VK_UP){
myTankDirection=2;
getActiveMyTank=true;
}
if(e.getKeyCode()==e.VK_DOWN){
myTankDirection=3;
getActiveMyTank=true;
}
///重绘图像///
if(getActiveMyTank=true){
updatePos(myTankDirection);
}
repaint();
}
public void keyReleased(KeyEvent e){
getActiveMyTank=false;
}
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -