2013-04-27 97 views
0

我有这个程序,我希望点击时球的移动速度更快。这里有两类:无法让我的java程序工作

import processing.core.*; 
public class Ball { 

int xPos = 0; 
int xDir = 1; 
int speed = 1; 
PApplet parent; 


Ball (int _x, PApplet p){ 
xPos = _x; 
parent = p; 
} 

void move() { 
xPos = xPos + xDir * speed; 
if (xPos>400-20 || xPos<20) 
{ 
xDir =-xDir; 
    } 
} 

void speedUp() { 
    speed=speed+1; 
} 

void display() { 
parent.ellipse(xPos, 200, 40, 40); 
} 

void run(){ 
     move(); 
     display(); 
    } 
} 

import processing.core.*; 
public class Game extends PApplet{ 

public static void main(String args[]){ 
    PApplet.main(new String[] { "--present", "Game" }); 
} 

Ball b1 = new Ball(xPos,this); 

public void setup() 
{ 
    size (400, 400); 
    smooth(); 
    background(0); 
    noStroke(); 
    fill(255); 
} 

public void draw() 
{ 
    background(0); 
    b1.run(); 
} 

public void mousePressed() 
    { 
    if (dist(mouseX, mouseY, xPos, 200)<=20) 
    { 
     b1.speedUp(); 
    } 
    } 
} 

我不能找到一种方法,参考XPOS在我的游戏客户端,以便当我点击球,将加快速度。我正在使用处理,尽管我不太熟悉它。但这是我项目的要求。绝望地需要帮助!

+1

'getXPos()'可能是添加到球的好方法... – 2013-04-27 14:34:07

回答

0
Ball b1 = new Ball(xPos,this); 

你在父小程序中有xpos吗?否则你必须通过一些像10这样的起始数字并在Ball中展示一个getXPos()。

另外我看到你在draw方法中调用run方法。谁打电话?如果只有在重新粉刷的时候,球才不会变成动画。需要制作一个线,让球每秒钟左右移动。

注意这应该是显而易见的:即使您在Ball中添加getXPos(),也不能在Ball的构造函数中使用它。所以你必须用其他价值来种植它。