我在开发代码时遇到了一些困难。由于我对Java不太先进,所以我需要一些帮助。我正在尝试使用线程开发迷你网球游戏。这个游戏的目的是用球拍捕捉在窗户上移动的球,桨可以用键盘上的左右按钮控制。
这些球应该在窗口上呈对角线移动,当它们接触到任何角落(底部以外)时,它们应该像光线反射一样改变方向。除此之外,当球碰到一个障碍物时,他们也应该改变方向。
窗口底部的拨片可以用左右键控制。运动员的任务是接球。用户接住的球的数量将显示在得分部分,球的总数将显示在底部角落。
用户可能需要保存游戏状态。当用户点击“保存游戏”按钮时;球的位置和得分应该保存到文件中。当用户点击打开按钮时,应该重新加载游戏状态。
我的源代码文件是:
public class BallPanel extends JPanel implements Runnable {
int RED, GREEN, BLUE;
int Xdirection = 1, Ydirection = 1;
boolean pleaseWait = false;
BallPanel(int X, int Y){
locateBall(X, Y, 30, 30);
/* Random r = new Random();
RED = r.nextInt(255);
GREEN = r.nextInt(255);
BLUE = r.nextInt(255);
*/
}
public void paint(Graphics g){
int panelWidth = this.getWidth();
int panelHeight = this.getHeight();
// g.setColor( new Color(RED, GREEN, BLUE ));
g.setColor(Color.ORANGE);
g.fillOval(panelWidth/2, panelHeight/2,panelWidth/2, panelHeight/2);
}
public void locateBall(int x, int y, int width, int height){
setBounds(x, y, width, height);
repaint();
}
public void run() {
int width = this.getWidth();
int height = this.getHeight();
Random r = new Random();
while(true){
if(!pleaseWait){
int lastX = this.getX();
int lastY = this.getY();
if (lastX > 675) Xdirection = -1;
if (lastY > 485) Ydirection = -1;
if (lastX < -5) Xdirection = 1;
if (lastY < -5) Ydirection = 1;
/* if(lastX > 280 && lastY > 170){
Xdirection = -1;
Ydirection = -1;
}
*/
locateBall(lastX + Xdirection*r.nextInt(3),
lastY + Ydirection*r.nextInt(3),
width, height );
}
try{
Thread.sleep(5);
}catch(Exception e){};
}
}
}
public class BallWindow extends JFrame implements ActionListener{
JButton btnStop = new JButton("STOP");
JButton btnSave = new JButton("SAVE");
Vector<BallPanel> ballVector = new Vector<BallPanel>();
JPanel p1 = createPanel(280, 200, 200, 20, Color.gray);
JPanel p2 = createPanel(280, 300, 200, 20, Color.gray);
JPanel bottomp = createPanel(345, 540, 70, 15, Color.black);
JPanel lborder = createPanel(10, 10, 2, 560, Color.black);
JPanel rborder = createPanel(720, 10, 2, 560, Color.black);
JPanel tborder = createPanel(10, 10, 710, 2, Color.black);
public BallWindow() {
setLayout(null);
btnStop.setBounds(12, 15, 100, 30);
btnStop.addActionListener(this);
add(btnStop);
btnSave.setBounds(12, 50, 100, 30);
//btnSave.addActionListener(this);
add(btnSave);
Random r = new Random();
for(int i=0; i<7; i++){
BallPanel bp = new BallPanel(r.nextInt(740), r.nextInt(590));
Thread t = new Thread(bp);
ballVector.add(bp);
t.start();
add(bp);
}
add(p1);
add(p2);
add(bottomp);
add(lborder);
add(rborder);
add(tborder);
setSize(740, 590);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
repaint();
}
JPanel createPanel(int x, int y, int width, int height, Color pColor){
JPanel temp = new JPanel();
temp.setBackground(pColor);
temp.setBounds(x, y, width, height);
return temp;
}
public static void main(String[] args) {
new BallWindow();
}
public void actionPerformed(ActionEvent arg0) {
for (BallPanel ball : ballVector) {
ball.pleaseWait = !ball.pleaseWait;
}
if( btnStop.getText().equalsIgnoreCase("STOP"))
btnStop.setText("START");
else
btnStop.setText("STOP");
// if(arg0.getSource())
}
}
我被障碍部分和关键听众卡住了。任何类型的帮助都将不胜感激。
看看http://zetcode.com/tutorials/javagamestutorial/吧
你应该特别检查一下基础和动画部分。这将有助于清理动画和线程的东西,你正在做的。它还展示了如何实现java游戏的一般模式。
本教程将教你如何使用 Kivy 编写一款乒乓球游戏。我们将从一个基本的应用程序开始,描述创建这个游戏的每个步骤。 Kivy 是用 Python 和 Cython 编写的,基于 OpenGL ES 2,支持各种输入设备并拥有丰富的部件库。使用相同的代码,你可直接实现多平台应用,包括 Windows、macOS、Linux、Android 和 iOS。所有 Kivy 部件都支持多点触控。
我是库伯内特斯的新手,我正在学习。我有我的视窗8机器,我在那里安装了瓦格兰特。使用流浪者,我运行ubuntu虚拟机,在虚拟机中,我运行3个docker容器。 流浪者档案: 容器 in Ubuntu VM : 在同一个VM中,现在我安装了迷你库贝和库贝特,如此链接中所述 迷你库贝版本: kubectl版本: 迷你库贝在我的 ubuntu VM 中成功启动。我已经创建了 文件。 使用这个yml文件,我
迷你任务(MiniTES)汉化版是一款网页放置游戏,运行于 web 浏览器。 攻略 此攻略仅原版剧情、非常简单; 升级有助于顺利展开剧情,挂机即可; 一些道具需要移动主角到地图各点: 银汐滇池:塞尔拉克 传说。 麦德拉斯:鹤立澳湾 传说。 亜达新村:瑞代尔堡 传说。 黑曜草原:鄂尔科特 传说。 死亡泽塔:奎姆森宫 传说。 天景豪苑:法林深坑 传说。 巴雷斯特:火云雾海 传说。 三角洲头:西鲁瓦恩
本文向大家介绍python使用pygame实现笑脸乒乓球弹珠球游戏,包括了python使用pygame实现笑脸乒乓球弹珠球游戏的使用技巧和注意事项,需要的朋友参考一下 今天我们用python和pygame实现一个乒乓球的小游戏,或者叫弹珠球游戏。 笑脸乒乓球游戏功能介绍 乒乓球游戏功能如下: 乒乓球从屏幕上方落下,用鼠标来移动球拍,使其反弹回去,并获得得分,如果没有接到该球,则失去一条命。玩家有一
问题内容: 我是在Python中创建一个简单的迷你语言解析器之后,在接近问题域的地方进行编程。 无论如何,我想知道这里的人会怎么做-在Python中执行此类操作的首选方式是什么? 我将不提供我所追求的具体细节,因为目前我只是在研究整个领域在Python中有多容易。 感谢您的输入! 问题答案: Pyparsing非常适合编写“小语言”。我在PyCon‘06上做了一个有关编写简单冒险游戏引擎的演示,其
本文向大家介绍python3.6使用tkinter实现弹跳小球游戏,包括了python3.6使用tkinter实现弹跳小球游戏的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python3.6实现弹跳小球游戏的具体代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。