Hjälp för att få en boll att studsa

Permalänk
Medlem

Hjälp för att få en boll att studsa

hej, jag har börjat min karriär som programmerare och med det så menar jag att jag har fattat ett intresse för programmering men jag har stött på ett problem. jag har gjort en simpel kod där en boll rullar på en linje. här är den koden:

//Minboll import java.awt.Graphics; import java.awt.Color; import java.applet.Applet; public class Minboll extends Applet{ public void init(){ setBackground(Color.yellow); setForeground(Color.black); } public void paint(Graphics g){ for (int i = 1; i <400; i++){ for (int j = 0; j < 10000000; j++){ } g.setColor(getBackground()); g.drawOval(10+i, 50, 80, 80); g.setColor(getForeground()); g.fillOval(11+i, 50, 80, 80); g.drawLine(50, 130, 500, 130); } } }

Min HTML ser ut såhär:

<HTML> <HEAD> </HEAD> <BODY> <APPLET CODE = "Minboll.class" WIDTH = 500 LENGTH = 150> </APPLET> <BODY> </HTML>

Nu vill jag att den här bollen börjar på samma ställe men åker upp itaket för att sedan studsa mot det för att åka ner och studsa på linjen för att åka upp i taket igen. men jag har ett problem för jag har ingen aning om hur man gör. jag uppskattar all hjälp jag kan få.
Om ni skriver en kod så skulle jag uppskatta om ni förklarar vad koden gör så att jag kan använda den i framtiden själv.
Tack i förväg

Permalänk
Medlem

Hur man skriver det exakt i java (vilket ja tror de tär du anävnder) vet jag inte, Men du bör kunna lösa det med infon du nu får av mig.

NY VARIABEL = ySpeed : Number = 2;

i updaten lägger du

DinBoll.position.y -= ySpeed;

Detta gör att du tar bort 2 pixlar från yPositionen varje frame, vilket gör att den far uppåt. Om du ökar värdet för variablen så går det snabbare, och tar du bort går det långsammare.

if(DinBoll.position.y <= 0)
{
ySpeed *= -1;
}

Denna satsen gör att bollens yhastighet inverteras när den slår i taket, vilket innebär att den börjar fara neråt istället.

if(DinBoll.position.x >= LinjensYposition)
{
ySpeed *= -1;
}

Detsamma fast när den slår i linjen.

Sedan gör du samma fast med X värdet så att den inte studsar utanför skärmen.

Hoppas det funkar för dig!

Visa signatur

Corsair Obsidian 250D | i5 7600K | Gigabyte Z270N WiFi | Samsung 960 EVO 250GB | Fractal Design Integra M 650W | Corsair Hydro H90 |Kingston 8GB 2133M DDR4 CL14 | Asus GeForce GTX 970 4GB STRIX DC2 OC MAX |