java通過方向鍵控制小球移動的小遊戲
本文需求實現瞭java通過方向鍵控制小球移動的具體過程,供大傢參考,具體內容如下
需求分析:
第一 要畫出一個小球
第二 要能通過控制方向鍵控制它的移動
第一部分的實現
1.首先要畫一個大窗體
public class BallMove extends JFrame
在開發Java應用程序時,通常情況下利用JFrame創建大窗口。利用JFrame創建的窗口分別包含一個標題、最小化按鈕、最大化按鈕和關閉按鈕
用主類去繼承JFrame類就可以使用它的方法啦
2.接著用一個類來繼承JPanel 如果說JFrame是一個窗口 JPanel就相當於一個畫板 我們可以在上面添加不同的按鈕 文字等元素
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相當於一支畫筆 它有許多的方法 比如畫圓 畫矩形 我們畫瞭一個半徑為20像素點的小球 在距離x軸y軸各10個像素點的地方
4.此時小球已經畫好瞭 我們隻需要在主方法中調用就可以
首先定義一個MyPanel的對象
MyPanel myPanel = null; myPanel = new MyPanel();//面板
然後利用構造函數將它add添加進入JFrame大框架
this.add(myPanel);
設置框架的大小
this.setSize(400,300);
關閉按鈕的設置
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
顯示設置
this.setVisible(true);
源碼在下面,這樣我們就可以得到一個小球 ,但是它此時還是不會動
沒關系馬上讓它動起來!
第二部分的實現
class MyPanel extends JPanel implements KeyListener
1.首先要實現KeyListener接口 KeyListener可以捕捉鍵盤的輸入並返回輸入的信息
2.其中有一個方法我們必須實現
public void keyPressed(KeyEvent e)
也就是當按鈕按下時的方法
3.方法體中的內容
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.別忘記要重繪
相當於刷新頁面
this.repaint();
好的 關於本次小遊戲就給大傢分享到這裡瞭,你也可以給自己的小球塗上顏色,或者加快速度都可以的,希望大傢多多三連支持哦
源碼如下,大傢可以先玩一玩,再去做,學編程的過程可能並沒有那麼好玩,往往是枯燥的,甚至會讓人喪失信心,但請相信,你一定可以的,每個高手都是從菜雞走過來的,他們厲害隻是因為接觸的時間長罷瞭。共勉!
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) { } }
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。