日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java怎么重新开始游戏_添加开始,停止,重置按钮到简单的Java游戏

發布時間:2023/12/16 java 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java怎么重新开始游戏_添加开始,停止,重置按钮到简单的Java游戏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我是一名新編碼員 . 我無法為我正在處理的這段示例代碼添加一個啟動和停止按鈕 . 我敢肯定我必須在游戲課上混淆 Thread.sleep(10); . 該代碼在程序運行時啟動游戲 . 有沒有辦法我可以添加啟動按鈕來啟動線程 . 我已經創建了j按鈕 . 謝謝 .

游戲類

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.RenderingHints;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

@SuppressWarnings("serial")

public class Game extends JPanel {

Ball ball = new Ball(this);

Racquet racquet = new Racquet(this);

public Game() {

addKeyListener(new KeyListener() {

@Override

public void keyTyped(KeyEvent e) {

}

@Override

public void keyReleased(KeyEvent e) {

racquet.keyReleased(e);

}

@Override

public void keyPressed(KeyEvent e) {

racquet.keyPressed(e);

}

});

setFocusable(true);

}

private void move() {

ball.move();

racquet.move();

}

@Override

public void paint(Graphics g) {

super.paint(g);

Graphics2D g2d = (Graphics2D) g;

g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,

RenderingHints.VALUE_ANTIALIAS_ON);

ball.paint(g2d);

racquet.paint(g2d);

}

public void gameOver() {

JOptionPane.showMessageDialog(this, "Game Over", "Game Over", JOptionPane.YES_NO_OPTION);

System.exit(ABORT);

}

public static void main(String[] args) throws InterruptedException {

JFrame frame = new JFrame("Mini Tennis");

Game game = new Game();

frame.add(game);

frame.setSize(300, 400);

frame.setVisible(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

while (true) {

game.move();

game.repaint();

Thread.sleep(10);

}

}

}

球類

import java.awt.Graphics2D;

import java.awt.Rectangle;

public class Ball {

private static final int DIAMETER = 30;

int x = 0;

int y = 0;

int xa = 1;

int ya = 1;

private Game game;

public Ball(Game game) {

this.game= game;

}

void move() {

if (x + xa < 0)

xa = 1;

if (x + xa > game.getWidth() - DIAMETER)

xa = -1;

if (y + ya < 0)

ya = 1;

if (y + ya > game.getHeight() - DIAMETER)

game.gameOver();

if (collision()){

ya = -1;

y = game.racquet.getTopY() - DIAMETER;

}

x = x + xa;

y = y + ya;

}

private boolean collision() {

return game.racquet.getBounds().intersects(getBounds());

}

public void paint(Graphics2D g) {

g.fillOval(x, y, DIAMETER, DIAMETER);

}

public Rectangle getBounds() {

return new Rectangle(x, y, DIAMETER, DIAMETER);

}

}

球拍類

import java.awt.Graphics2D;

import java.awt.Rectangle;

import java.awt.event.KeyEvent;

public class Racquet {

private static final int Y = 330;

private static final int WIDTH = 60;

private static final int HEIGHT = 10;

int x = 0;

int xa = 0;

private Game game;

public Racquet(Game game) {

this.game = game;

}

public void move() {

if (x + xa > 0 && x + xa < game.getWidth() - WIDTH)

x = x + xa;

}

public void paint(Graphics2D g) {

g.fillRect(x, Y, WIDTH, HEIGHT);

}

public void keyReleased(KeyEvent e) {

xa = 0;

}

public void keyPressed(KeyEvent e) {

if (e.getKeyCode() == KeyEvent.VK_LEFT)

xa = -1;

if (e.getKeyCode() == KeyEvent.VK_RIGHT)

xa = 1;

}

public Rectangle getBounds() {

return new Rectangle(x, Y, WIDTH, HEIGHT);

}

public int getTopY() {

return Y;

}

}

總結

以上是生活随笔為你收集整理的java怎么重新开始游戏_添加开始,停止,重置按钮到简单的Java游戏的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。