bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

關于坦克大戰java代碼的信息

JAVA坦克大戰,這段代碼為什么子彈的坐標在變,卻不能repaint,但是按下任意鍵盤的建卻重繪了呢?

Mypanel的? run方法里要調用repaint方法??? 否則你的repaint方法只會在keyPressed發生的時候才調用

創新互聯自2013年創立以來,先為廬江等服務建站,廬江等地企業,進行企業商務咨詢服務。為廬江企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。

修改一下兩個地方

(1)

// 鍵盤獲取事件的函數

public void keyPressed(KeyEvent arg0) {

// TODO Auto-generated method stub

if (arg0.getKeyCode() == KeyEvent.VK_J) {

?if (hero.shot.size() 5) {

??? ?hero.shott();

?}

}

if (arg0.getKeyCode() == KeyEvent.VK_W) {

?hero.setSDC(hero.getSpeed(), 0, hero.getColor());

?hero.moveUp();

} else if (arg0.getKeyCode() == KeyEvent.VK_S) {

?hero.setSDC(hero.getSpeed(), 1, hero.getColor());

?hero.moveDown();

} else if (arg0.getKeyCode() == KeyEvent.VK_A) {

?hero.setSDC(hero.getSpeed(), 2, hero.getColor());

?hero.moveLeft();

} else if (arg0.getKeyCode() == KeyEvent.VK_D) {

?hero.setSDC(hero.getSpeed(), 3, hero.getColor());

?hero.moveRight();

}

/**

* 這個repaint注釋掉

*/

//this.repaint();

}

(2)

// 線程

/**

* 一秒鐘60幀

*/

public void run() {

// TODO Auto-generated method stub

while(true){

?this.repaint();

?try {

??? ?

??? ?Thread.sleep(1000 / 60);

?} catch (InterruptedException e) {

??? ?// TODO 自動生成的 catch 塊

??? ?e.printStackTrace();

?}

}

}

完整代碼如下:

import?java.awt.*;

import?javax.swing.*;

import?java.util.*;

import?java.awt.event.*;

public?class?aaa?extends?JFrame?{

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

aaa?a1?=?new?aaa();

Thread?t1?=?new?Thread(a1.mp);

t1.start();

}

MyPanel?mp?=?null;

public?aaa()?{

mp?=?new?MyPanel();

this.add(mp);

this.addKeyListener(mp);

this.setSize(500,?500);

this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

class?MyPanel?extends?JPanel?implements?KeyListener,?Runnable?{

MyTank?hero?=?null;

VectorEmenyTank?emeny?=?new?VectorEmenyTank();

int?emsize?=?5;

//?鍵盤獲取事件的函數

public?void?keyPressed(KeyEvent?arg0)?{

//?TODO?Auto-generated?method?stub

if?(arg0.getKeyCode()?==?KeyEvent.VK_J)?{

if?(hero.shot.size()??5)?{

hero.shott();

}

}

if?(arg0.getKeyCode()?==?KeyEvent.VK_W)?{

hero.setSDC(hero.getSpeed(),?0,?hero.getColor());

hero.moveUp();

}?else?if?(arg0.getKeyCode()?==?KeyEvent.VK_S)?{

hero.setSDC(hero.getSpeed(),?1,?hero.getColor());

hero.moveDown();

}?else?if?(arg0.getKeyCode()?==?KeyEvent.VK_A)?{

hero.setSDC(hero.getSpeed(),?2,?hero.getColor());

hero.moveLeft();

}?else?if?(arg0.getKeyCode()?==?KeyEvent.VK_D)?{

hero.setSDC(hero.getSpeed(),?3,?hero.getColor());

hero.moveRight();

}

/**

*?這個repaint注釋掉

*/

//this.repaint();

}

public?void?keyReleased(KeyEvent?arg0)?{

//?TODO?Auto-generated?method?stub

}

public?void?keyTyped(KeyEvent?arg0)?{

//?TODO?Auto-generated?method?stub

}

//?完畢

public?MyPanel()?{

hero?=?new?MyTank(250,?250);

hero.setSDC(5,?2,?2);

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

EmenyTank?em?=?new?EmenyTank((i?+?1)?*?60,?20);

em.setSDC(5,?1,?1);

emeny.add(em);

}

}

//?線程

/**

*?一秒鐘60幀

*/

public?void?run()?{

//?TODO?Auto-generated?method?stub

while(true){

this.repaint();

try?{

Thread.sleep(1000?/?60);

}?catch?(InterruptedException?e)?{

//?TODO?自動生成的?catch?塊

e.printStackTrace();

}

}

}

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

super.paint(g);

//?畫板,坦克得放在畫板后頭

g.fillRect(0,?0,?400,?400);

//?paint敵人坦克

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

EmenyTank?em?=?null;

em?=?emeny.get(i);

this.drawTank(em.getX(),?em.getY(),?g,?em.getDirect(),

em.getColor());

}

//?畫我自己的坦克

this.drawTank(hero.getX(),?hero.getY(),?g,?hero.getDirect(),

hero.getColor());

//?畫出我的子彈

for?(int?i?=?0;?i??hero.shot.size();?i++)?{

Shot?myShot?=?hero.shot.get(i);

if?(myShot?!=?null??myShot.live?==?true)?{

g.draw3DRect(myShot.x,?myShot.y,?2,?2,?false);

}

if?(myShot.live?==?false)?{

hero.shot.remove(myShot);

}

}

}

public?void?drawTank(int?x,?int?y,?Graphics?g,?int?direct,?int?color)?{

//?判斷坦克的顏色(敵我)然后畫出坦克

switch?(color)?{

case?0:

g.setColor(Color.BLUE);

break;

case?1:

g.setColor(Color.YELLOW);

break;

case?2:

g.setColor(Color.GREEN);

break;

}

//?判斷坦克的方向然后再畫出坦克

switch?(direct)?{

case?0:

g.fill3DRect(x,?y,?10,?30,?false);

g.fill3DRect(x?+?26,?y,?10,?30,?false);

g.fill3DRect(x?+?10,?y?+?5,?16,?20,?false);

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

break;

case?1:

g.fill3DRect(x,?y,?10,?30,?false);

g.fill3DRect(x?+?26,?y,?10,?30,?false);

g.fill3DRect(x?+?10,?y?+?5,?16,?20,?false);

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

break;

case?2:

g.fill3DRect(x?+?3,?y?-?3,?30,?10,?false);

g.fill3DRect(x?+?3,?y?+?23,?30,?10,?false);

g.fill3DRect(x?+?8,?y?+?7,?20,?16,?false);

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

break;

case?3:

g.fill3DRect(x?+?3,?y?-?3,?30,?10,?false);

g.fill3DRect(x?+?3,?y?+?23,?30,?10,?false);

g.fill3DRect(x?+?8,?y?+?7,?20,?16,?false);

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

break;

}

}

}

class?EmenyTank?extends?Tank?implements?Runnable?{

public?EmenyTank(int?x,?int?y)?{

//?TODO?Auto-generated?method?stub

super(x,?y);

}

public?void?run()?{

}

}

class?Shot?implements?Runnable?{

protected?int?x;

protected?int?y;

protected?int?direct;

protected?int?speed?=?4;

protected?boolean?live?=?true;

public?void?setX(int?x)?{

this.x?=?x;

this.y?=?y;

}

public?int?getX()?{

return?x;

}

public?int?getY()?{

return?y;

}

public?void?setDirect(int?direct)?{

this.direct?=?direct;

}

public?int?getDirect()?{

return?direct;

}

public?void?setSpeed(int?speed)?{

this.speed?=?speed;

}

public?int?getSpeed()?{

return?speed;

}

//?子彈的上下左右以及走的速度

public?void?run()?{

//?TODO?Auto-generated?method?stub

while?(true)?{

try?{

Thread.sleep(100);

}?catch?(Exception?e)?{

}

switch?(direct)?{

case?0:

y?-=?speed;

break;

case?1:

y?+=?speed;

break;

case?2:

x?-=?speed;

break;

case?3:

x?+=?speed;

break;

}

if?(x??400?||?x??0?||?y??400?||?y??0)?{

this.live?=?false;

break;

}

}

}

}

class?Tank?{

protected?int?x;

protected?int?y;

protected?int?speed?=?5;

protected?int?direct;

protected?int?color;

boolean?live;

public?Tank(int?x,?int?y)?{

this.x?=?x;

this.y?=?y;

}

public?int?getX()?{

return?x;

}

public?int?getY()?{

return?y;

}

public?void?setSDC(int?speed,?int?direct,?int?color)?{

this.speed?=?speed;

this.direct?=?direct;

this.color?=?color;

}

public?int?getSpeed()?{

return?speed;

}

public?int?getDirect()?{

return?direct;

}

public?int?getColor()?{

return?color;

}

}

class?MyTank?extends?Tank?{

public?MyTank(int?x,?int?y)?{

//?TODO?Auto-generated?method?stub

super(x,?y);

}

VectorShot?shot?=?new?VectorShot();

Shot?shota?=?null;

public?void?shott()?{

switch?(this.direct)?{

case?0:

shota?=?new?Shot();

shota.x?=?x?+?18;

shota.y?=?y;

shota.direct?=?0;

shot.add(shota);

break;

case?1:

shota?=?new?Shot();

shota.x?=?x?+?18;

shota.y?=?y?+?30;

shota.direct?=?1;

shot.add(shota);

break;

case?2:

shota?=?new?Shot();

shota.x?=?x?+?3;

shota.y?=?y?+?15;

shota.direct?=?2;

shot.add(shota);

break;

case?3:

shota?=?new?Shot();

shota.x?=?x?+?33;

shota.y?=?y?+?15;

shota.direct?=?3;

shot.add(shota);

break;

}

Thread?t?=?new?Thread(shota);

t.start();

}

public?void?moveUp()?{

if?(y??0)?{

y?-=?speed;

}

}//?我的坦克得在自己的類里定義怎么移動

public?void?moveDown()?{

if?(y??367)?{

y?+=?speed;

}

}

public?void?moveLeft()?{

if?(x??0)?{

x?-=?speed;

}

}

public?void?moveRight()?{

if?(x??365)?{

x?+=?speed;

}

}

}

java坦克大戰源代碼 怎么導入

坦克大戰源代碼應該是個完整的項目吧。

對于完整的帶項目配置文件的java源碼,按步驟操作即可:

File - Import - General

選擇Existing Projects into Workspace,選擇要導入的文件,點擊“finish",OK。

java之坦克大戰

最近學習不喜歡在算法上磕太長時間了,所以我就開始寫小游戲了,也算是給自己一個目標,寫個游戲里面需要的東西很多,就第一項窗口的建造而言,JFreme類的使用中有很多的方法需要記憶,此外對于類與對象的使用也占了很大的部分。

我是觀看教程然后學習制作坦克大戰,最開始是制作窗口,用到了一個類JFrame下面是一些使用方法。

jf.setTitle("我是標題鴨!!!");(制作標題)

jf.setSize(20,10)//設置了一個長為20,高為10的框圖。

jf.setBounds(1,2,20,10)//設置一個左上角頂點在(1,2),長為20,寬為10的窗體。

jf.setLocation(1,2)//設置一個左上角頂點在(1,2)的窗體。

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);(這樣設置會導致你在關閉窗體的同時,終止程序的運行,會帶來一定的便利性。)

jf.setVisible(true);(窗體在默認情況下是不可見的,只在后臺運行,只有像這樣設置可見后,在程序運行的時候,窗體才會出現。)

然后是背景窗口的上色與選項字體的添加, setColor方法:設置顏色, 該方法用于設置畫筆的顏色,例如Color.BLACK:黑色,還需要填充畫布使用 fillRect (int x,int y,int width,int height)繪制并填充矩形?? 4個參數,x、y起點坐標,寬,長。

不得不說有一個明確的目標確實學習的比較快。

新聞名稱:關于坦克大戰java代碼的信息
文章轉載:http://vcdvsql.cn/article24/ddsicje.html

成都網站建設公司_創新互聯,為您提供建站公司手機網站建設網站內鏈品牌網站建設品牌網站設計用戶體驗

廣告

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

成都定制網站建設