色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

java實(shí)現(xiàn)彈球小游戲

瀏覽:93日期:2022-08-10 13:24:55

GUI實(shí)現(xiàn)彈球小游戲,供大家參考,具體內(nèi)容如下

先看一下游戲效果圖。

java實(shí)現(xiàn)彈球小游戲

java實(shí)現(xiàn)彈球小游戲

一個簡單的Demo。也比較簡單,新手試著做一做完善改進(jìn)。

源代碼

import Com.Style.FontStyle;import javax.swing.*;import java.awt.*;import java.awt.event.*;/** * @Author: 冀十三 * @DescIption: 彈球小游戲 * @Date:2021--06--10--17:08 */public class Demo extends JFrame { //創(chuàng)建游戲窗口 public Demo() {init(); } //桌面大小 private final int TABLE_WIDTH = 450; private final int TABLE_HEIGHT = 600; //球大小 private final int BALL_SIZE = 15; //球拍大小 private final int RACKET_WIDTH = 120; private final int RACKET_HEIGHT = 20; //記錄小球坐標(biāo) private double BallX = 100; private double BallY = 200; //記錄球拍坐標(biāo) private double RACKET_X = 150; private final double RACKET_Y = 380; //記錄小球速度 private double speedX = 10; private double speedY = 20; //記錄游戲是否結(jié)束 private boolean isOver = false; //聲明一個積分器 int score= 0; //聲明一個計時器。 ActionListener run = new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) { //更新小球坐標(biāo)讓小球動起來 BallY+=speedY; BallX+=speedX; //重繪界面 mycanvas.repaint(); //碰到兩邊的時候 if (BallX<=0||BallX>=TABLE_WIDTH-BALL_SIZE){speedX=-speedX; } //碰到上邊界的時候 if(BallY<=0){speedY=-speedY; } //接住小球的時候 if ( BallY>=(RACKET_Y-BALL_SIZE)&&BallX>RACKET_X&&BallX<(RACKET_X+RACKET_WIDTH)){//得10分score+=10;speedY=-speedY; } if ((BallY>(RACKET_Y-BALL_SIZE)&&(BallX<RACKET_X||BallX>RACKET_X+RACKET_WIDTH))){timer.stop();isOver=true;mycanvas.repaint(); }} };private Timer timer = new Timer(60, run);//內(nèi)部類繼承Canvas充當(dāng)畫布private class myCanvas extends Canvas { public void paint(Graphics g) {//繪制內(nèi)容//如果游戲結(jié)束if (isOver) { //給畫筆顏色 g.setColor(new Color(0xFF9A1B44, true)); //給畫筆字體 g.setFont(new Font('宋體', FontStyle.BOLD, 25)); g.drawString('Game Over!', 120, TABLE_HEIGHT / 4); g.drawString('成績'+score+'分', 120, TABLE_HEIGHT / 3); g.drawString('按空格再來一次', 120, TABLE_HEIGHT / 2);} else { //否則游戲中 //繪制小球 g.setColor(new Color(0xFF09FAA6, true)); g.fillOval((int) BallX, (int) BallY, BALL_SIZE, BALL_SIZE); //畫一個積分系統(tǒng) //上色 g.setColor(new Color(0xE8DC0C77,true)); //給畫筆字體 g.setFont(new Font('宋體', FontStyle.BOLD, 25)); g.drawString('得分:'+score, 25, 25); //繪制球拍 g.setColor(new Color(0xFF0E51D7, true)); g.fillRect((int) RACKET_X, (int) RACKET_Y, RACKET_WIDTH, RACKET_HEIGHT); timer.start();} }}//創(chuàng)建繪畫區(qū)myCanvas mycanvas = new myCanvas();//窗口初始化public void init() { JFrame jFrame = new JFrame(); jFrame.setTitle('彈球小游戲');//窗口名稱 jFrame.pack();//自適應(yīng)布局 jFrame.setVisible(true);//可見 jFrame.add(mycanvas); jFrame.setBounds(500, 200, TABLE_WIDTH, TABLE_HEIGHT); jFrame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);//關(guān)閉 mycanvas.setPreferredSize(new Dimension(TABLE_WIDTH, TABLE_HEIGHT));//畫布大小 jFrame.setResizable(false);//大小不可變 KeyListener keyListener = new KeyAdapter() {//重寫鍵盤被按壓的方法@Overridepublic void keyPressed(KeyEvent e) { //接收按下的是哪個鍵 int key = e.getKeyCode(); if (key == KeyEvent.VK_LEFT) {if (RACKET_X >0) { RACKET_X -= 30;} } if (key == KeyEvent.VK_RIGHT) {if (RACKET_X < (TABLE_WIDTH - RACKET_WIDTH )) { RACKET_X += 30;} } if (key == KeyEvent.VK_SPACE) {if (isOver=true) { Demo.main(null);} }} }; //窗口獲取鍵盤監(jiān)聽 jFrame.addKeyListener(keyListener); //鍵盤獲取鍵盤監(jiān)聽 mycanvas.addKeyListener(keyListener);}public static void main(String[] args) { new Demo();}}

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

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 国产成人免费高清在线观看 | 亚洲精品一区二区久久 | 日韩欧美在 | 国产视频一二三 | 欧美日本一区 | 国产在线成人精品 | 国产私拍福利精品视频推出 | 成人毛片免费观看视频大全 | 91久久国产精品视频 | 毛片在线播放a | 伊人狼人影院 | 三级视频网站在线观看播放 | 成人欧美精品一区二区不卡 | 亚洲精品成人久久久影院 | 日韩三级视频在线 | 久久九九有精品国产56 | 草草影院在线播放 | 狠狠色丁香婷婷综合小时婷婷 | 怡红院宜春院 | 免费一级淫片aaa片毛片a级 | 91视频一区二区 | 三级全黄视频 | 午夜精| 国产美女一区精品福利视频 | 99精品热女视频专线 | 国产页| 亚洲欧美在线精品一区二区 | 日韩在线中文字幕 | 性xxxx奶大欧美高清 | 日韩在线播放中文字幕 | 亚洲欧美成人综合在线 | 亚色成人| 国产性精品 | 外国三级毛片 | 久久最新免费视频 | 欧美综合在线观看 | 91精品免费高清在线 | 美国一级毛片视频 | 日本免费人成黄页网观看视频 | 欧美 日韩 国产 成人 在线观看 | 日韩一级片免费在线观看 |