Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要青蛙型游戏的帮助吗_Java - Fatal编程技术网

Java 需要青蛙型游戏的帮助吗

Java 需要青蛙型游戏的帮助吗,java,Java,我正在制作一款蛙人类型的游戏,在让程序实现我想要的功能方面已经取得了相当大的进展。然而,我开始认为,为了完成游戏,我必须使用大量的代码,并且必须有一种更简单的方法来实现相同的结果。我不是在寻找答案,只是需要更多的信息 问题1:对于表示移动图标或汽车的图像,我可以使用什么?我目前正在使用JButtons。问题是很难让按钮均匀移动,我想使用24个不同的移动图标,根据我到目前为止学到的知识,我必须为每个图标添加一个新的JButton 问题2:我移动Jbutton图标的方法是使用计时器延迟,然后使用计数

我正在制作一款蛙人类型的游戏,在让程序实现我想要的功能方面已经取得了相当大的进展。然而,我开始认为,为了完成游戏,我必须使用大量的代码,并且必须有一种更简单的方法来实现相同的结果。我不是在寻找答案,只是需要更多的信息

问题1:对于表示移动图标或汽车的图像,我可以使用什么?我目前正在使用JButtons。问题是很难让按钮均匀移动,我想使用24个不同的移动图标,根据我到目前为止学到的知识,我必须为每个图标添加一个新的JButton

问题2:我移动Jbutton图标的方法是使用计时器延迟,然后使用计数器来增加x值。这在很大程度上是可行的,但是有没有更好、更简单的方法在屏幕上移动图标呢

非常感谢任何提示、教程等

下面是我创建的用于获取图标移动的类之一:

public class EnemyJPanel extends JButton {

JButton enem = new JButton();
JButton enem12 = new JButton();
JButton enem13 = new JButton();
JButton enem1 = new JButton("1");
JButton enem2 = new JButton("2");
JButton enem3 = new JButton("3");
JButton enem4 = new JButton("4");
JButton score = new JButton("Score");
JButton enem5 = new JButton("5");
JButton enem6 = new JButton("6");
JButton enem7 = new JButton("7");
JButton enem8 = new JButton("8");
JButton yard = new JButton("50 Yard Line");
  int i = 16;
   int u = 576;
   int d = 16;
   int n = 576;
   int k = 16;
   int l = 16;
   int dummyval = 16;
public EnemyJPanel(){
    super();
      setLayout(null);
      enem1.setBounds(16,300,40,55);
      enem2.setBounds(16,245,40,55);
      enem3.setBounds(16,190,40,55);
      enem4.setBounds(16,135,40,55);
      score.setBounds(16,80,601,55);
      yard.setBounds(16,355,601,55);
      enem5.setBounds(16,410,40,55);
      enem6.setBounds(16,465,40,55);
      enem7.setBounds(16,520,40,55);
      enem8.setBounds(16,575,40,55);
      enem12.setBounds(16,300,40,55);
      enem13.setBounds(16,300,40,55);
      add(enem1);
      add(enem2);
      add(enem3);
      add(enem4);
      add(score);
}
public void addEnemy(){
     enem1.setBounds(16,300,40,55);
      enem2.setBounds(16,245,40,55);
      enem3.setBounds(16,190,40,55);
      enem4.setBounds(16,135,40,55);
      score.setBounds(16,80,601,55);
      add(enem1);
      add(enem2);
      add(enem3);
      add(enem4);
      add(score);
}
      public void enemyMovement(){ 
     i++;u--;d++;n--; // increments lateral movement from a timer in 
     dummyval++; // the dummy value is needed to keep the icons looping 
     dummyval = dummyval + 2;
     enem1.setBounds(i,300,40,55);
     i = i + 2;
     if (dummyval > 176){

     k++; k = k + 2;
         enem12.setBounds(k,300,40,55);
     }
     if (k > 176){
         l++;
         l = l + 2;
         enem13.setBounds(l,300,40,55);
     }
     enem2.setBounds(u,245,40,55);
     enem3.setBounds(d,190,40,55);
     enem4.setBounds(n,135,40,55);
     enem5.setBounds(i,410,40,55);
      enem6.setBounds(u,465,40,55);
      enem7.setBounds(d,520,40,55);
      enem8.setBounds(n,575,40,55);
     if(i > 576){ // resets button
         i = 16;
     }
     if(k > 576){
         k = 16;
     }
     if(u < 16){
         u = 576;
     }
     u = u - 2; // increase lateral speed
      if(d == 576) {
         d = 16;
     }
     if(n < 16){
         n = 576;
     }
     n = n - 5; //increases lateral speed


     }
 }
公共类EnemyJPanel扩展JButton{
JButton enem=新JButton();
JButton enem12=新JButton();
JButton enem13=新JButton();
JButton enem1=新JButton(“1”);
JButton enem2=新JButton(“2”);
JButton enem3=新JButton(“3”);
JButton enem4=新JButton(“4”);
JButton分数=新JButton(“分数”);
JButton enem5=新JButton(“5”);
JButton enem6=新JButton(“6”);
JButton enem7=新JButton(“7”);
JButton enem8=新JButton(“8”);
JButton码=新JButton(“50码线”);
int i=16;
INTU=576;
int d=16;
int n=576;
int k=16;
int l=16;
int dummyval=16;
公共EnemyJPanel(){
超级();
setLayout(空);
enem1.立根数(16300,40,55);
enem2.立根(16245,40,55);
enem3.立根(16190,40,55);
enem4.立根(16135,40,55);
分数.挫折(16,80601,55);
场地立根(1635601,55);
enem5.立根(16410,40,55);
enem6.立根(16465,40,55);
enem7.立根(16520,40,55);
enem8.立根(16575,40,55);
enem12.立根(16300,40,55);
enem13.立根(16300,40,55);
添加(enem1);
添加(enem2);
添加(enem3);
添加(enem4);
加(分);
}
公共无效附录(){
enem1.立根数(16300,40,55);
enem2.立根(16245,40,55);
enem3.立根(16190,40,55);
enem4.立根(16135,40,55);
分数.挫折(16,80601,55);
添加(enem1);
添加(enem2);
添加(enem3);
添加(enem4);
加(分);
}
public void enemyMovement(){
i++;u--;d++;n--;//从中的计时器增加横向移动
dummyval++;//保持图标循环需要伪值
dummyval=dummyval+2;
enem1.立根(i,300,40,55);
i=i+2;
如果(dummyval>176){
k++;k=k+2;
enem12.立根(k,300,40,55);
}
如果(k>176){
l++;
l=l+2;
enem13.立根(l,300,40,55);
}
enem2.立根(u,245,40,55);
enem3.立根(d,190,40,55);
enem4.立根(n,135,40,55);
enem5.立根(i,410,40,55);
enem6.立根(u,465,40,55);
enem7.立根(d,520,40,55);
enem8.立根(n,575,40,55);
如果(i>576){//重置按钮
i=16;
}
如果(k>576){
k=16;
}
if(u<16){
u=576;
}
u=u-2;//增加横向速度
如果(d==576){
d=16;
}
如果(n<16){
n=576;
}
n=n-5;//增加横向速度
}
}

问题的产生是因为您试图单独管理所有“东西”。看起来您可能丢失了有关的一些基本信息 首先,我将创建一个自定义类,类似

class ButtonObject extends JButton
{
    public ButtonObject(String text, int x, int y, int width, int height)
    {
        super(text);
        this.setBounds(x, y, width, height);
    }
}
您可能还想查看并创建新ButtonObject的数组

将帮助您通过阵列中的所有对象

ButtonObject[] enemies = new ButtonObject[10];
for (int i = 0; i < 10; i++)
{
    String text = String.valueOf(i);
    int y = 300 - (i * 55);
    enemies[i] = new ButtonObject(text, 16, y, 40, 55);
}
ButtonObject[]敌人=新的ButtonObject[10];
对于(int i=0;i<10;i++)
{
String text=String.valueOf(i);
int y=300-(i*55);
敌人[i]=新按钮对象(文本,16,y,40,55);
}

可能有一种比按钮更好的方法,但为了简单起见,您现在可能想继续使用按钮。

我已经尝试过类似的数组;但是,我无法添加JButton。该方法允许我这样做吗?只要该方法必须对变量赋值并且不是静态方法(带有关键字
static
的方法),那么该方法就不会限制变量赋值