2013-04-27 132 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的構造函數中使用它。所以你必須用其他價值來種植它。