<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    坦克游戲——實現坦克的移動和子彈的發射

    Posted on 2006-09-02 11:07 久城 閱讀(1870) 評論(5)  編輯  收藏 所屬分類: JavaTest

    感慨:

    偶的坦克終于可以移動,可以發射子彈了~~

    不過從昨天軟件開發與實踐的老師的角度去說~我這樣做是不對的~開發一個程序之前需要做好構架,而我則是想到哪做哪..做錯了再改!哈哈!..還有待學習..

    代碼:

    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;

    class YouXi extends JFrame
    {
    ?Container c;
    ?Draw_table d_table;? //中間的畫板
    ?Mypanel panel_east;? //右邊的面板
    ?private static Icon[] faces;
    ?YouXi()
    ?{
    ??super("傻瓜坦克??????????????????????????????????????????????????????????????????????? 版權所有:久城");
    ??c = getContentPane();
    ??c.setLayout(new BorderLayout());
    ??panel_east = new Mypanel();
    ??panel_east.setLayout(new GridLayout(6,1,20,20));
    ??
    ??faces= new Icon[]{new ImageIcon("d:\11.jpg","")};
    ??JButton button1 = new JButton("重新開始");
    ??JButton button2 = new JButton(new String ("傻瓜坦克"),new ImageIcon(getClass().getResource("11.jpg")));
    ??JTextField text1 = new JTextField("realsmy");
    ??JTextField text2 = new JTextField("0");
    ??JLabel lb1 = new JLabel("玩? 家");
    ??JLabel lb2 = new JLabel("殺人數");
    ??text1.setEditable(false);
    ??text2.setEditable(false);
    ??panel_east.add(button2);
    ??panel_east.add(lb1);
    ??panel_east.add(text1);
    ??panel_east.add(lb2);
    ??panel_east.add(text2);
    ??panel_east.add(button1);
    ??//添加鍵盤監聽,不知道加到哪好,隨表找個按鈕加上去了哈哈!
    ??button2.addKeyListener(new KeyAdapter()
    ???{
    ??????? public void keyPressed(KeyEvent e)
    ????{
    ????? if(e.getKeyCode()==KeyEvent.VK_ENTER)
    ????? {??
    ?????? if(d_table.fangxiang == 1)
    ?????? {
    ???????d_table.zx = d_table.x+50;
    ???????d_table.zy = d_table.y+10;
    ???????d_table.key_fangxiang = 1;
    ?????? }
    ?????? if(d_table.fangxiang == 2)
    ?????? {
    ???????d_table.zx = d_table.x+10;
    ???????d_table.zy = d_table.y+50;
    ???????d_table.key_fangxiang = 2;
    ?????? }
    ?????? if(d_table.fangxiang == 3)
    ?????? {
    ???????d_table.zx = d_table.x-10;
    ???????d_table.zy = d_table.y+10;
    ???????d_table.key_fangxiang = 3;
    ?????? }
    ?????? if(d_table.fangxiang == 4)
    ?????? {
    ???????d_table.zx = d_table.x+10;
    ???????d_table.zy = d_table.y-10;
    ???????d_table.key_fangxiang = 4;
    ?????? }
    ?????? d_table.key = true;
    ????? }
    ????? if(e.getKeyCode()==KeyEvent.VK_UP){
    ??????d_table.y-=10;
    ??????d_table.fangxiang = 4;
    ????? }
    ????? if(e.getKeyCode()==KeyEvent.VK_DOWN){
    ??????d_table.y += 10;
    ??????d_table.fangxiang = 2;
    ????? }
    ????? if(e.getKeyCode()==KeyEvent.VK_LEFT){
    ??????d_table.x -= 10;
    ??????d_table.fangxiang = 3;
    ????? }
    ????? if(e.getKeyCode()==KeyEvent.VK_RIGHT){
    ??????d_table.x +=10;
    ??????d_table.fangxiang = 1;
    ????? }

    ???? }
    ???}
    ????);
    ??d_table = new Draw_table();
    ??d_table.setBackground(Color.red);
    ??c.add(panel_east,BorderLayout.EAST);
    ??c.add(d_table,BorderLayout.CENTER);
    ??setSize(600,600);
    ??setLocation(200,100);
    ??setVisible(true);
    ?}

    ?public static void main(String args[])
    ?{
    ??YouXi yx = new YouXi();
    ??yx.setDefaultCloseOperation(EXIT_ON_CLOSE);
    ?}
    }

    //定義畫板類
    class Draw_table extends Canvas// implements runnable
    {
    ?static boolean key = false;
    ?static int x=20,y=20;??????? //坦克坐標
    ?static int zx,zy;??????????? //子彈起點坐標
    ?static int fangxiang = 1;??????? //定義車頭方向
    ?static int key_fangxiang = 1;? //定義子彈方向
    ?int k = 1;
    ?public void paint(Graphics g)
    ?{
    ??if(fangxiang == 1)
    ??{
    ???g.setColor(Color.black);
    ???g.fillRect(x,y,50,30);?? //車身
    ???g.fillRect(x+50,y+10,10,10);//車頭=子彈
    ???g.setColor(Color.blue);
    ???g.fillOval(x+15,y+5,20,20);
    ??}
    ??if(fangxiang == 2)
    ??{
    ???g.setColor(Color.black);
    ???g.fillRect(x,y,30,50);?? //車身
    ???g.fillRect(x+10,y+50,10,10);//車頭=子彈
    ???g.setColor(Color.blue);
    ???g.fillOval(x+5,y+15,20,20);
    ??}
    ??if(fangxiang == 3)
    ??{
    ???g.setColor(Color.black);
    ???g.fillRect(x,y,50,30);?? //車身
    ???g.fillRect(x-10,y+10,10,10);//車頭=子彈
    ???g.setColor(Color.blue);
    ???g.fillOval(x+15,y+5,20,20);
    ??}
    ??if(fangxiang == 4)
    ??{
    ???g.setColor(Color.black);
    ???g.fillRect(x,y,30,50);?? //車身
    ???g.fillRect(x+10,y-10,10,10);//車頭=子彈
    ???g.setColor(Color.blue);
    ???g.fillOval(x+5,y+15,20,20);
    ??}
    ??if(k==1)
    ??{
    ???try{Thread.sleep(200);}catch(Exception e){}
    ??}
    ???if(key == true)
    ???{
    ????//new Thread(new draw_table()).start();
    ????//key = false;
    ????//new Zidan_thread().start();
    ????k = 0;
    ????zidan();
    ???}
    ???repaint();
    ?}
    ?public void zidan()
    ?{
    ??Graphics g = getGraphics();
    ??g.setColor(Color.yellow);
    ??g.fillRect(zx, zy, 10, 10);
    ??if(key_fangxiang == 1)
    ??{
    ???zx+=10;
    ??}
    ??if(key_fangxiang == 2)
    ??{
    ???zy+=10;
    ??}
    ??if(key_fangxiang == 3)
    ??{
    ???zx-=10;
    ??}
    ??if(key_fangxiang == 4)
    ??{
    ???zy-=10;
    ??}
    ??try{Thread.sleep(200);}catch(Exception e){}
    ?}
    ?//public void run()
    ?//{
    ?//?zidan();
    ?//}
    }
    //面板類定義
    class Mypanel extends JPanel
    {
    ?public Insets insets()
    ?{
    ??return new Insets(60,10,200,10);
    ?}
    }



    歡迎來訪!^.^!
    本BLOG僅用于個人學習交流!
    目的在于記錄個人成長.
    所有文字均屬于個人理解.
    如有錯誤,望多多指教!不勝感激!

    Feedback

    # re: 坦克游戲——實現坦克的移動和子彈的發射  回復  更多評論   

    2006-09-08 10:22 by songwenyuan
    大哥
    MIDlet類呢
    你有繼承嗎

    # re: 坦克游戲——實現坦克的移動和子彈的發射  回復  更多評論   

    2006-09-09 11:28 by 久城
    MIDlet類?..這是我的一個javatest,還沒有更深的理解,MIDlet類是做什么的?在API中怎么查不到?...

    # re: 坦克游戲——實現坦克的移動和子彈的發射  回復  更多評論   

    2006-10-12 00:48 by 黑蝙蝠
    樓上的樓上的大哥 midlet是j2me中的類 做單機沒用到midlet類

    # re: 坦克游戲——實現坦克的移動和子彈的發射  回復  更多評論   

    2008-06-08 14:05 by aaaa
    J2ME就是JAVA手機游戲開發編程,MIDLET類是J2ME的主類(入口類),你寫的代碼太亂,沒條理,需要看很久才能明白是什么作用。做程序員寫代碼是給別人看的,你的變量還有格式就必須清晰明了,如果你寫個代碼你的頭頭看半天才看懂,估計你得挨頓批了~~~你中間有必要每寫個方向就繪制一次嗎?你不會用數組嗎?本來10幾行代碼搞定,你寫了幾十行,浪費了資源。我敢肯定你還沒學過編程環境吧,連入口和使用哪種手機都自己寫,太神奇了!!~~

    # re: 坦克游戲——實現坦克的移動和子彈的發射  回復  更多評論   

    2008-09-09 20:34 by dsfs
    MIDlet類?..這是我的一個javatest,還沒有更深的理解,MIDlet類是做什么的?在API中怎么查不到?...

    I 服了 you

    Copyright © 久城

    主站蜘蛛池模板: 波霸在线精品视频免费观看| 国产精品无码亚洲精品2021| 久久久99精品免费观看| 自拍偷自拍亚洲精品情侣| 久99久无码精品视频免费播放| 国产亚洲人成网站在线观看| 中国国语毛片免费观看视频| 亚洲国产精品无码成人片久久| 在线观看免费黄网站| 亚洲bt加勒比一区二区| 亚洲精品在线免费观看视频| 涩涩色中文综合亚洲| 亚洲AV无码成H人在线观看| 国产精品免费久久| 久久精品国产亚洲AV香蕉| 一级女人18毛片免费| 亚洲AV色欲色欲WWW| 国产亚洲美女精品久久久| 玖玖在线免费视频| 亚洲国产成人精品电影| 免费黄色毛片视频| jizz18免费视频| 久久久久亚洲AV成人片| 成人免费视频一区| caoporm碰最新免费公开视频| 亚洲一区精品中文字幕| 午夜毛片不卡免费观看视频| 日本高清免费中文在线看| 亚洲AV成人片色在线观看高潮| 美女被免费喷白浆视频| 成人免费网站视频www| 亚洲午夜在线电影| 国产精品视_精品国产免费| 你懂的免费在线观看网站| 亚洲粉嫩美白在线| 77777亚洲午夜久久多人| 一区二区无码免费视频网站| 久久国产精品免费一区二区三区| 亚洲综合激情视频| 亚洲精品和日本精品| av无码久久久久不卡免费网站|