<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 © 久城

    主站蜘蛛池模板: 日韩精品无码区免费专区| 亚洲人妖女同在线播放| 亚洲精品一级无码中文字幕| 日本视频免费在线| 女人张腿给男人桶视频免费版 | 亚洲麻豆精品果冻传媒| 久久精品亚洲综合一品| 久久噜噜噜久久亚洲va久| 久久青青草原亚洲AV无码麻豆 | 日韩视频免费在线| 日韩在线天堂免费观看| 国产禁女女网站免费看| 国产免费直播在线观看视频| 免费人成在线观看网站视频 | 免费看黄视频网站| 成年人网站在线免费观看| 在线精品免费视频| xvideos亚洲永久网址| 亚洲精品一级无码中文字幕| 日本亚洲欧洲免费天堂午夜看片女人员 | 亚洲成人免费电影| 性生交片免费无码看人| 永久黄网站色视频免费直播| 免费国产不卡午夜福在线| 久久久久一级精品亚洲国产成人综合AV区 | 日韩精品亚洲aⅴ在线影院| 国产亚洲综合成人91精品| 亚洲av激情无码专区在线播放| 在线电影你懂的亚洲| 亚洲性色AV日韩在线观看| 亚洲精品人成网线在线播放va| 免费观看四虎精品成人| 你是我的城池营垒免费观看完整版| 少妇人妻偷人精品免费视频| 成人免费的性色视频| 国产免费131美女视频| 三上悠亚亚洲一区高清| 亚洲黄色在线观看视频| 亚洲综合校园春色| 美女视频黄频a免费| 亚洲电影在线播放|