0 0

各位大神,小弟有个关于Java游戏设计方面的基础问题想要请教10

  各位大神好,小弟尝试着写了一个平板弹球的代码,但在控制平板移动方面出现了问题,在按下相应的按键后平板没有移动。希望得到各位的指点,同时也希望各位能告诉我游戏AI设计的大致思路。以下是代码。
import java.awt.*;
import java.awt.event.*;
import javax.swing.Timer;
import java.util.*;
import java.util.List;
public class MultiBall extends Frame implements Runnable,ActionListener,KeyListener{
int d=30;
int x=-1;
int y=-1;
int x2=100;
int dx;
int dy;
int dx2=10;
int Width=300;
int Height=300;
Timer timer;
static List<MultiBall> list=new ArrayList<MultiBall>();
void draw(Graphics g){
g.fillOval(this.x, this.y, this.d, this.d);
move();
}
void draw2(Graphics g){
g.fillRect(this.x2, 100, 50, 20);
}
void move(){
x=x+dx;
y=y+dy;
if(x>(Width-d)|x<-1)
dx=-dx;
if(y>(Width-d)|y<-1)
dy=-dy;
}
MultiBall(int dx,int dy){
this.dx=dx;
this.dy=dy;
}
void lunchWindow(){
this.setBounds(300,300,this.Width,this.Height);
this.setBackground(Color.yellow);
this.setVisible(true);
}
public void paint(Graphics g){
draw2(g);
for(int i=0;i<list.size();i++){
list.get(i).draw(g);
}

}
public void actionPerformed(ActionEvent e){
repaint();
}
public void keyPressed(KeyEvent e){
while(true){
if(e.getKeyCode()==KeyEvent.VK_KP_LEFT)
this.x2=x2-dx2;
if(e.getKeyCode()==KeyEvent.VK_KP_RIGHT)
this.x2=x2+dx2;
}

}
public void keyReleased(KeyEvent e){

}
public void keyTyped(KeyEvent e){

}
public void run(){
timer=new Timer(20,this);
timer.start();
}
public static void main(String arg[]){
MultiBall mbo=new MultiBall(3,2);
mbo.lunchWindow();
Thread thread=new Thread(mbo);
mbo.list.add(new MultiBall(4,3));
mbo.list.add(new MultiBall(3,2));
mbo.list.add(new MultiBall(5,6));
thread.start();

}
}
2014年9月14日 17:23

1个答案 按时间排序 按投票排序

0 0

构造方法里面 添加this.addKeyListener(this);
public void keyPressed(KeyEvent e){
while(true){
if(e.getKeyCode()==KeyEvent.VK_KP_LEFT)
this.x2=x2-dx2;
if(e.getKeyCode()==KeyEvent.VK_KP_RIGHT)
this.x2=x2+dx2;
} }改成
public void keyPressed(KeyEvent e){
if(e.getKeyCode()==KeyEvent.VK_LEFT)
this.x2=x2-dx2;
if(e.getKeyCode()==KeyEvent.VK_RIGHT)
this.x2=x2+dx2;
}

2014年9月16日 12:49

相关推荐

    Java拼图大神级小游戏4.rar

    《Java编程:拼图大神级小游戏开发详解》 在本次的Java课程设计中,我们将会探讨一个基于Java ...通过这个项目,开发者不仅能深入理解Java编程,还能掌握GUI开发、游戏逻辑设计以及软件工程实践等多个方面的能力。

    java小游戏项目(求大神找bug).zip

    java小游戏项目(求大神找bug).zipjava小游戏项目(求大神找bug).zip java小游戏项目(求大神找bug).zipjava小游戏项目(求大神找bug).zip java小游戏项目(求大神找bug).zipjava小游戏项目(求大神找bug).zip...

    Java拼图大神级小游戏3.rar

    这个小游戏不仅展示了基础的Java编程技术,还涵盖了高级的GUI(图形用户界面)设计和事件处理,以及游戏逻辑的实现。以下是关于这个项目的一些关键知识点: 1. **Java编程**:作为项目的基石,Java是一种广泛使用的...

    27天成为Java大神

    在“27天成为Java大神”的学习计划中,你将深入探索Java这门强大且广泛应用的编程语言。Java以其跨平台、面向对象和高效性等特点,在软件开发领域占据着重要地位。以下是一些关键的知识点,它们是成为Java大神的...

    JAVA程序设计教程第2版.pdf

    概述:本资源是一个关于 JAVA 编程的教程,旨在帮助初学者快速掌握 JAVA 编程语言。下面将对该资源的标题、描述、标签和部分内容进行详细解释,并生成相关的知识点。 一、标题:JAVA 程序设计教程第2版.pdf 该标题...

    Java拼图游戏大神级1.rar

    在这款"Java拼图游戏大神级1.rar"项目中,开发者利用了Swing的强大功能来创建一个引人入胜且易于上手的拼图游戏。下面我们将深入探讨相关的Java Swing知识点。 首先,Swing 提供了许多预制的组件,如 JButton、...

    Java中的简单炸弹人游戏及其源代码

    该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码...

    Java集合框架的基本接口.zip

    java基础教程java小白从如何成长为大神,java基础教程java小白从如何成长为大神,java基础教程java小白从如何成长为大神,java基础教程java小白从如何成长为大神,java基础教程java小白从如何成长为大神,java基础...

    27天成为Java大神之Day02

    这个阶段,我们将重点理解Java的基础概念,为后续的高级主题打下坚实的基础。Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现已被Oracle收购)于1995年发布。它以其“一次编写,到处运行”的特性...

    27天成为Java大神之Day01

    "27天成为Java大神之Day01"的课程设计旨在快速引导初学者进入Java的世界,通过高效的学习计划,逐步建立起扎实的编程基础。让我们一起来深入探讨Day01中可能涵盖的重要知识点。 首先,Java的基础语法是入门的第一步...

    Java Swing大神必经之路

    本資源匯總了 Java Swing 的各個方面,包括组件、事件、布局、UNDOfString 等多个知识点。 第1篇 Java Swing大神必经之路1:目录 本篇文章對 Java Swing 的目录进行了详细的介绍,為讀者提供了一个总体的了解 Java ...

    Java中的汽车赛车游戏及其源代码

    该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码...

    关于27天成为Java大神

    "27天成为Java大神"的计划旨在通过高效的学习路径,帮助初学者在短时间内掌握Java的核心概念和技术。以下是对这个学习过程中的关键知识点的详细解释。 1. **Java基础知识**:首先,你需要了解Java的基本语法,包括...

    Java拼图游戏大神级(Swing).rar

    在本项目中,我们关注的是一个使用Java编程语言开发的大师级别的拼图游戏,它基于Swing图形用户界面(GUI)库。这是一个很好的学习资源,因为它涵盖了从基础到高级的Java编程技巧,以及如何构建交互式的桌面应用。...

    Java失落的冒险家游戏及源代码.zip

    该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码...

    Java 基础必备知识

    java的基础入门知识网上有很多,很多大神的博客里也有总结,笔者不认为自己能比大神总结的好。所以在这篇基础文档里里,很多基础知识笔者会收集资料,做一个汇总。当然,同时也会加入笔者自己的理解,说一些笔者学习...

Global site tag (gtag.js) - Google Analytics