最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2021年10月12日 14:21:45   作者:卷揚機  
這篇文章主要為大家詳細介紹了java通過方向鍵控制小球移動的小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

需求分析:

第一 要畫出一個小球

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

第一部分的實現(xiàn)

1.首先要畫一個大窗體

public class BallMove extends JFrame

在開發(fā)Java應(yīng)用程序時,通常情況下利用JFrame創(chuàng)建大窗口。利用JFrame創(chuàng)建的窗口分別包含一個標(biāo)題、最小化按鈕、最大化按鈕和關(guān)閉按鈕

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

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

class MyPanel extends JPanel

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

int x = 10;
int y = 10;
    @Override
    public void paint(Graphics g) {
        super.paint(g);
        g.fillOval(x,y,20,20);
    }

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

4.此時小球已經(jīng)畫好了 我們只需要在主方法中調(diào)用就可以

首先定義一個MyPanel的對象

MyPanel myPanel = null;
 myPanel = new MyPanel();//面板

然后利用構(gòu)造函數(shù)將它add添加進入JFrame大框架

this.add(myPanel);

設(shè)置框架的大小

this.setSize(400,300);

關(guān)閉按鈕的設(shè)置

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

顯示設(shè)置

this.setVisible(true);

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

沒關(guān)系馬上讓它動起來!

第二部分的實現(xiàn)

class MyPanel extends JPanel implements KeyListener

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

2.其中有一個方法我們必須實現(xiàn)

public void keyPressed(KeyEvent e)

也就是當(dāng)按鈕按下時的方法

3.方法體中的內(nèi)容

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坐標(biāo) 從而進行移動

4.別忘記要重繪

相當(dāng)于刷新頁面

this.repaint();

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

源碼如下,大家可以先玩一玩,再去做,學(xué)編程的過程可能并沒有那么好玩,往往是枯燥的,甚至?xí)屓藛适判?,但請相信,你一定可以的,每個高手都是從菜雞走過來的,他們厲害只是因為接觸的時間長罷了。共勉!

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 是監(jiān)聽器  可以監(jiān)聽鍵盤事件
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);
    }
 
        //有字符輸出時 該方法就會觸發(fā)
    @Override
    public void keyTyped(KeyEvent e) {
 
    }
 
    //當(dāng)某個鍵按下時 該方法會觸發(fā)
    @Override
    public void keyPressed(KeyEvent e) {
        System.out.println((char)e.getKeyCode()+"被按下去");
        //根據(jù)用戶按下的不同鍵  來處理小球的移動(上下左右)
        //在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();
    }
 
    //當(dāng)某個鍵釋放了(松開) 該方法會觸發(fā)
    @Override
    public void keyReleased(KeyEvent e) {
 
    }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring?Security自定義認證邏輯實例詳解

    Spring?Security自定義認證邏輯實例詳解

    這篇文章主要給大家介紹了關(guān)于Spring?Security自定義認證邏輯的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-01-01
  • 詳解Java數(shù)字簽名提供XML安全

    詳解Java數(shù)字簽名提供XML安全

    在本篇文章中我們給大家整理了關(guān)于Java數(shù)字簽名提供XML安全的知識點內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2018-08-08
  • QQ好友列表樹形列表java代碼實現(xiàn)代碼

    QQ好友列表樹形列表java代碼實現(xiàn)代碼

    這篇文章主要為大家詳細介紹了QQ好友列表樹形列表簡單實現(xiàn)方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 淺析Java 反射機制的用途和缺點

    淺析Java 反射機制的用途和缺點

    這篇文章給大家分析了Java 反射機制的用途和缺點以及相關(guān)知識點內(nèi)容,有興趣的朋友可以參考學(xué)習(xí)下。
    2018-07-07
  • 詳解Java分布式系統(tǒng)中session一致性問題

    詳解Java分布式系統(tǒng)中session一致性問題

    這篇文章主要介紹了Java分布式系統(tǒng)中session一致性問題,對分布式系統(tǒng)感興趣的同學(xué),要仔細看一下
    2021-04-04
  • java 根據(jù)身份證號碼判斷出生日期、性別、年齡的示例

    java 根據(jù)身份證號碼判斷出生日期、性別、年齡的示例

    這篇文章主要介紹了java 根據(jù)身份證號碼判斷出生日期、性別、年齡的示例,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-10-10
  • Maven依賴沖突原因以及解決方法

    Maven依賴沖突原因以及解決方法

    依賴沖突是指項目依賴的某一個 jar 包,有多個不同的版本,因而造成類包版本沖突依賴沖突很經(jīng)常是類包之間的間接依賴引起的,本文將給大家介紹Maven依賴沖突原因以及解決方法,需要的朋友可以參考下
    2023-12-12
  • java實現(xiàn)網(wǎng)站微信掃碼支付

    java實現(xiàn)網(wǎng)站微信掃碼支付

    這篇文章主要為大家詳細介紹了java實現(xiàn)網(wǎng)站微信掃碼支付,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 用Java制作用戶登錄界面超詳細圖文教程

    用Java制作用戶登錄界面超詳細圖文教程

    很多人學(xué)習(xí)Java的第一個任務(wù)是使用Java設(shè)計客戶端登錄界面中,希望我的學(xué)習(xí)方法與總結(jié)能幫助到需要的朋友,這篇文章主要給大家介紹了關(guān)于用Java制作用戶登錄界面的相關(guān)資料,需要的朋友可以參考下
    2024-06-06
  • 在已有spring的基礎(chǔ)上集成hibernate的實例講解

    在已有spring的基礎(chǔ)上集成hibernate的實例講解

    下面小編就為大家?guī)硪黄谝延衧pring的基礎(chǔ)上集成hibernate的實例講解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11

最新評論

怀柔区| 罗田县| 南丹县| 竹山县| 奎屯市| 永定县| 西安市| 北票市| 峡江县| 布拖县| 改则县| 库伦旗| 正定县| 乌苏市| 哈密市| 石景山区| 庐江县| 临湘市| 惠水县| 共和县| 甘孜| 苏尼特左旗| 岑溪市| 分宜县| 阳信县| 全椒县| 萍乡市| 高淳县| 雷山县| 乌兰县| 崇左市| 平遥县| 内江市| 平山县| 班戈县| 内黄县| 大名县| 凌云县| 南投市| 景东| 锦屏县|