99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

java坦克代碼 java tank

(100分)Java寫“坦克大戰”

package com.bjsxt.tank;

創新互聯建站-專業網站定制、快速模板網站建設、高性價比休寧縣網站開發、企業建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式休寧縣網站制作公司更省心,省錢,快速模板網站建設找我們,業務覆蓋休寧縣地區。費用合理售后完善,十余年實體公司更值得信賴。

import java.awt.Color;

import java.awt.Frame;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import java.util.Properties;

/**

* 這個類的作用是坦克游戲的主窗口

* @author mashibing

*

*/

public class TankClient extends Frame {

/**

* 整個坦克游戲的寬度

*/

public static final int GAME_WIDTH = 800;

public static final int GAME_HEIGHT = 600;

Tank myTank = new Tank(50, 50, true, Direction.STOP, this);

Wall w1 = new Wall(100, 200, 20, 150, this), w2 = new Wall(300, 100, 300, 20, this);

ListExplode explodes = new ArrayListExplode();

ListMissile missiles = new ArrayListMissile();

ListTank tanks = new ArrayListTank();

Image offScreenImage = null;

Blood b = new Blood();

public void paint(Graphics g) {

/*

* 指明子彈-爆炸-坦克的數量

* 以及坦克的生命值

*/

g.drawString("missiles count:" + missiles.size(), 10, 50);

g.drawString("explodes count:" + explodes.size(), 10, 70);

g.drawString("tanks count:" + tanks.size(), 10, 90);

g.drawString("tanks life:" + myTank.getLife(), 10, 110);

if(tanks.size() = 0) {

for(int i=0; iInteger.parseInt(PropertyMgr.getProperty("reProduceTankCount")); i++) {

tanks.add(new Tank(50 + 40*(i+1), 50, false, Direction.D, this));

}

}

for(int i=0; imissiles.size(); i++) {

Missile m = missiles.get(i);

m.hitTanks(tanks);

m.hitTank(myTank);

m.hitWall(w1);

m.hitWall(w2);

m.draw(g);

//if(!m.isLive()) missiles.remove(m);

//else m.draw(g);

}

for(int i=0; iexplodes.size(); i++) {

Explode e = explodes.get(i);

e.draw(g);

}

for(int i=0; itanks.size(); i++) {

Tank t = tanks.get(i);

t.collidesWithWall(w1);

t.collidesWithWall(w2);

t.collidesWithTanks(tanks);

t.draw(g);

}

myTank.draw(g);

myTank.eat(b);

w1.draw(g);

w2.draw(g);

b.draw(g);

}

public void update(Graphics g) {

if(offScreenImage == null) {

offScreenImage = this.createImage(GAME_WIDTH, GAME_HEIGHT);

}

Graphics gOffScreen = offScreenImage.getGraphics();

Color c = gOffScreen.getColor();

gOffScreen.setColor(Color.BLACK);

gOffScreen.fillRect(0, 0, GAME_WIDTH, GAME_HEIGHT);

gOffScreen.setColor(c);

paint(gOffScreen);

g.drawImage(offScreenImage, 0, 0, null);

}

/**

* 本方法顯示坦克主窗口

*

*/

public void lauchFrame() {

int initTankCount = Integer.parseInt(PropertyMgr.getProperty("initTankCount"));

for(int i=0; iinitTankCount; i++) {

tanks.add(new Tank(50 + 40*(i+1), 50, false, Direction.D, this));

}

//this.setLocation(400, 300);

this.setSize(GAME_WIDTH, GAME_HEIGHT);

this.setTitle("TankWar");

this.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

this.setResizable(false);

this.setBackground(Color.GREEN);

this.addKeyListener(new KeyMonitor());

setVisible(true);

new Thread(new PaintThread()).start();

}

public static void main(String[] args) {

TankClient tc = new TankClient();

tc.lauchFrame();

}

private class PaintThread implements Runnable {

public void run() {

while(true) {

repaint();

try {

Thread.sleep(50);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

private class KeyMonitor extends KeyAdapter {

public void keyReleased(KeyEvent e) {

myTank.keyReleased(e);

}

public void keyPressed(KeyEvent e) {

myTank.keyPressed(e);

}

}

}

java 坦克 打第一輛坦克沒有爆炸效果

你提供的代碼不完全,無法深入分析,但是照你說的有顯示“進入畫圖”,那么,很可能if(g.drawImage(image1, b.x, b.y, 30, 30, this))這個返回值為false,我剛查了下API,它的返回值說明Returns:

false if the image pixels are still changing; true otherwise.另外這個方法有這么樣的說明This method returns immediately in all cases, even if the entire image has not yet been scaled, dithered, and converted for the current output device. If the current output representation is not yet complete, then drawImage returns false. 也就是說,現行輸出未完成,圖像像素仍在變化的時候,你就調用了這方法,那么會返回false。你檢查一下代碼,在你調用這段代碼前,你的初始化工作做好了沒。另外,最好就是像1樓說的,把圖畫到一個bufferImage里,再把bufferImage畫到屏幕上

JAVA 坦克大戰

import?java.awt.*;

import?javax.swing.*;

public?class?Tank?extends?JFrame?{

mypane?mp=null;

Obj[]?objs=new?Obj[0];

public?Tank()?{

setTitle("坦克大戰");

setSize(800,600);

pro();

add(new?mypane(objs));

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setLocationRelativeTo(null);

//在這里添加鍵盤事件、鼠標事件、讓坦克移動,修改objs數組對象讓他們移動

setVisible(true);

}

private?void?pro(){

Obj[]?tmp=new?Obj[objs.length+1];

System.arraycopy(objs,0,tmp,0,objs.length);

tmp[tmp.length-1]=new?Obj(1,1,0,1);

objs=tmp;

int?num=(int)(Math.random()*5)+1;

for(int?i=0;inum;i++){

int?x=(int)(Math.random()*getWidth())+1;

int?y=(int)(Math.random()*getHeight())+1;

int?dir=(int)(Math.random()*4);

Obj[]?dst=new?Obj[objs.length+1];

System.arraycopy(objs,0,dst,0,objs.length);

dst[dst.length-1]=new?Obj(x,y,1,dir);

objs=dst;

}

}

public?static?void?main(String[]?args)?{

new?Tank();

}

}

class?Obj{

int?x,y;//坦克坐標

int?type;

int?dir;

public?Obj(int?x,int?y,int?type,int?dir){

this.x=x;

this.y=y;

this.type=type;

this.dir=dir;

}

}

class?mypane?extends?JPanel{

Obj[]?objs;

public?mypane(Obj[]?objs){

this.objs=objs;

}

public?void?paint(Graphics?g)?{

super.paint(g);

for(int?i=0;iobjs.length;i++){

Obj?obj=objs[i];

drawtank(obj.x,obj.y,?g,?obj.type,?obj.dir);

}

g.dispose();

}

public?void?drawtank(int?x,int?y,Graphics?g,?int?type,int?direct)?{

/*type?為坦克類型,敵方,我方*/

switch(type)?{

case?0://我方坦克,設置為紅色

g.setColor(Color.red);

break;

case?1://敵方坦克,設置為藍色

g.setColor(Color.blue);

break;

}

switch(direct)?{

case?0://坦克方向朝上

g.drawRect(0+x,?0+y,?5,?30);

g.drawRect(5+x,?5+y,?10,20);

g.drawRect(15+x,0+y,?5,30);

g.drawLine(10+x,?15+y,?10+10+x,?15+y);

break;

case?1://坦克方向朝右

g.drawRect(0+x,?0+y,?30,?5);

g.drawRect(5+x,?5+y,?20,?10);

g.drawRect(0+x,?15+y,?30,?5);

g.drawLine(15+x,?10+y,?30+15+x,?10+10+y);

break;

case?2://方向向下

g.drawRect(0+x,?0+y,?5,?30);

g.drawRect(5+x,?5+y,?10,20);

g.drawRect(15+x,0+y,?5,30);

g.drawLine(10+x,?15+y,?10+10+x,?30+15+y);

break;

case?3://方向向左

g.drawRect(0+x,?0+y,?30,?5);

g.drawRect(5+x,?5+y,?20,?10);

g.drawRect(0+x,?15+y,?30,?5);

g.drawLine(15+x,?10+y,?15+x,?10+10+y);

break;

}

}

}

網站題目:java坦克代碼 java tank
本文來源:http://www.yijiale78.com/article32/ddgejpc.html

成都網站建設公司_創新互聯,為您提供云服務器面包屑導航標簽優化品牌網站建設軟件開發手機網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站托管運營