Okay!! Thanks! Can you please explain these codes in your ball class for me ? (is given below):
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Ball here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Ball extends Actor
{
/**
* Act - do whatever the Ball wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
//double power = 30;
//private double angle = 30;
private double h0 = 1;
private double h = h0;
private double tStart;
private double xStart;
private double yStart;
private double g = 30;
private double SCALE = 7;
double v0y;
double v0x;
private boolean first = true;
public Ball(int angle, int power)
{
v0y = power * Math.sin(Math.toRadians(angle));
v0x = power * Math.cos(Math.toRadians(angle));
}
public void act()
{
if(first)
{
first = !first;
tStart = System.currentTimeMillis();
xStart = getX();
yStart = getY();
} else {
double t = (System.currentTimeMillis() -tStart) / 1000;
h = h0 +(v0y*t) - ( (g*t*t) / 2);
setLocation((int)(xStart + SCALE * (v0x*t)),(int)(yStart - SCALE *h));
}
removeBall();
}
public void removeBall()
{
World background = getWorld();
if (getY() > background.getHeight())
{
background.removeObject(this);
}
}
}
Question 1:
Why do we need "private double" here?
2:
"private boolean first = true"- what is this for?
3:
first = !first;
tStart = System.currentTimeMillis();-
what does those codes mean? and what does "TimeMillis" do here?
@jabirfatah91, (1) 'private' is not neccessary, but will restrict access from other classes; 'double' is used for more precise movement. (2) with 'first' initially set to 'true', the code block that is executed on the condition 'if (first)' will execute. (3a) Since 'first' is changed within the block to 'false' (by 'first = !first;'), the block is destined to only run once (the first time the act method is executed). (3b) 'System.currentTimeMillis()' is a system command to return the 'long' value of the current system time. Each unit of time returned is equivalent to 1/1000th of a second.
A new version of this scenario was uploaded on Sun Nov 11 18:06:39 UTC 2012
Keypress
Wind = w - e
Power = up - down
Angle = left - right
Fire = space
Everything is not done yet. A target, and a display showing current power and score will be implemented soon.
A new version of this scenario was uploaded on Sun Nov 11 18:39:50 UTC 2012
A new version of this scenario was uploaded on Sun Nov 11 21:28:55 UTC 2012
Target added
A new version of this scenario was uploaded on Mon Nov 12 00:17:19 UTC 2012
A new version of this scenario was uploaded on Mon Nov 12 12:28:12 UTC 2012
A new version of this scenario was uploaded on Mon Nov 12 14:41:42 UTC 2012
2012/11/9
2012/11/10
2012/11/10
2012/11/10