一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java通過方向鍵控制小球移動的小游戲

java通過方向鍵控制小球移動的小游戲

2022-02-16 14:49卷揚機 Java教程

這篇文章主要為大家詳細介紹了java通過方向鍵控制小球移動的小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文需求實現了java通過方向鍵控制小球移動的具體過程,供大家參考,具體內容如下

需求分析:

第一 要畫出一個小球

第二 要能通過控制方向鍵控制它的移動

第一部分的實現

1.首先要畫一個大窗體

?
1
public class BallMove extends JFrame

在開發Java應用程序時,通常情況下利用JFrame創建大窗口。利用JFrame創建的窗口分別包含一個標題、最小化按鈕、最大化按鈕和關閉按鈕

用主類去繼承JFrame類就可以使用它的方法啦

2.接著用一個類來繼承JPanel 如果說JFrame是一個窗口 JPanel就相當于一個畫板 我們可以在上面添加不同的按鈕  文字等元素 

?
1
class MyPanel extends JPanel

3.接下來我們就可以在畫板上畫畫啦

?
1
2
3
4
5
6
7
int x = 10;
int y = 10;
    @Override
    public void paint(Graphics g) {
        super.paint(g);
        g.fillOval(x,y,20,20);
    }

利用JPanel中的方法paint 可以畫出小球  Graphics相當于一支畫筆  它有許多的方法 比如畫圓 畫矩形 我們畫了一個半徑為20像素點的小球 在距離x軸y軸各10個像素點的地方

4.此時小球已經畫好了 我們只需要在主方法中調用就可以

首先定義一個MyPanel的對象

?
1
2
MyPanel myPanel = null;
 myPanel = new MyPanel();//面板

然后利用構造函數將它add添加進入JFrame大框架

?
1
this.add(myPanel);

設置框架的大小

?
1
this.setSize(400,300);

關閉按鈕的設置

?
1
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

顯示設置

?
1
this.setVisible(true);

源碼在下面,這樣我們就可以得到一個小球 ,但是它此時還是不會動

沒關系馬上讓它動起來!

第二部分的實現

?
1
class MyPanel extends JPanel implements KeyListener

1.首先要實現KeyListener接口   KeyListener可以捕捉鍵盤的輸入并返回輸入的信息

2.其中有一個方法我們必須實現

?
1
public void keyPressed(KeyEvent e)

也就是當按鈕按下時的方法

3.方法體中的內容

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if(e.getKeyCode()==KeyEvent.VK_DOWN){//向下的鍵
            y++;
        }
        //讓面板重繪
 
         else if(e.getKeyCode()==KeyEvent.VK_UP){//向下的鍵
            y--;
        }
        //讓面板重繪
 
      else if(e.getKeyCode()==KeyEvent.VK_LEFT){//向下的鍵
            x--;
        }
      else if(e.getKeyCode()==KeyEvent.VK_RIGHT){
          x++;
        }

這個很好理解 就是操控小球的x y坐標 從而進行移動

4.別忘記要重繪

相當于刷新頁面

?
1
this.repaint();

好的 關于本次小游戲就給大家分享到這里了,你也可以給自己的小球涂上顏色,或者加快速度都可以的,希望大家多多三連支持哦  

源碼如下,大家可以先玩一玩,再去做,學編程的過程可能并沒有那么好玩,往往是枯燥的,甚至會讓人喪失信心,但請相信,你一定可以的,每個高手都是從菜雞走過來的,他們厲害只是因為接觸的時間長罷了。共勉!

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
 
/**
 * @author shijiu
 */
//演示小球通過鍵盤控制上下左右的移動》java事件控制
public class BallMove extends JFrame{//框架
    MyPanel myPanel = null;
    public static void main(String[] args) {
        BallMove ballMove = new BallMove();
    }
    public BallMove(){
        myPanel = new MyPanel();//面板
        this.add(myPanel);
        this.setSize(400,300);
        this.addKeyListener(myPanel);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
    }
}
//KeyListener 是監聽器  可以監聽鍵盤事件
class MyPanel extends JPanel implements KeyListener {
   //為了小球可以移動 賦個變量
    int x = 10;
    int y = 10;
    @Override
    public void paint(Graphics g) {
        super.paint(g);
        g.fillOval(x,y,20,20);
    }
 
        //有字符輸出時 該方法就會觸發
    @Override
    public void keyTyped(KeyEvent e) {
 
    }
 
    //當某個鍵按下時 該方法會觸發
    @Override
    public void keyPressed(KeyEvent e) {
        System.out.println((char)e.getKeyCode()+"被按下去");
        //根據用戶按下的不同鍵  來處理小球的移動(上下左右)
        //在java中 會給每一個鍵 分配一個值
        if(e.getKeyCode()==KeyEvent.VK_DOWN){//向下的鍵
            y++;
        }
        //讓面板重繪
 
         else if(e.getKeyCode()==KeyEvent.VK_UP){//向下的鍵
            y--;
        }
        //讓面板重繪
 
      else if(e.getKeyCode()==KeyEvent.VK_LEFT){//向下的鍵
            x--;
        }
      else if(e.getKeyCode()==KeyEvent.VK_RIGHT){
          x++;
        }
        //讓面板重繪
        this.repaint();
    }
 
    //當某個鍵釋放了(松開) 該方法會觸發
    @Override
    public void keyReleased(KeyEvent e) {
 
    }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/weixin_52357736/article/details/120699373

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 男人天堂网站在线 | 四虎成人影院网址 | 先锋资源av | 久久水蜜桃亚洲AV无码精品偷窥 | 亚洲系列国产系列 | 日韩成人在线免费视频 | 日韩亚洲国产激情在线观看 | 无码精品AV久久久奶水 | 天天综合色天天综合色sb | 成人永久免费福利视频网站 | 香蕉成人国产精品免费看网站 | 亚洲人成综合在线播放 | 国产成人高清精品免费5388密 | 国产草| 深夜影院深a久久 | 古代翁熄乩伦小说h | 色老板成人永久免费视频 | 波多野结衣xxxx性精品 | 五月天精品在线 | 欧美日韩高清观看一区二区 | 欧美a级v片在线观看一区 | 99最新网址 | 日本视频一区在线观看免费 | 亚洲第一男人天堂 | 亚洲激情婷婷 | 亚洲日本在线观看网址 | 美女舒服好紧太爽了视频 | 欧美亚洲高清日韩成人 | 日韩一区二区中文字幕 | 成年人免费观看的视频 | 日韩一区二区三区四区不卡 | 91制片厂制作果冻传媒破解 | 变态 另类 国产 亚洲 | 国产无限免费观看黄网站 | 息与子中文字幕在线 | 99久久国产亚洲综合精品 | 色噜噜 男人的天堂在线观看 | spy2wc48美女撒尿 | 天海翼最新| 日韩在线视频免费不卡一区 | 5g影院天天影院天天爽影院网站 |