Ik ben op dit moment bezig met een project. Daarvoor moet ik 10 ballen laten stuiteren binnen een vierkant en in de vierkant zit ook nog een balkje wat ik kan bewegen als ik het balkje met de muis inhoudt en waar ook de balletjes tegen aan kunnen stuiteren.
Nou heb ik de basis. 2 balltjes die stuiteren tegen de zijkant. Maar er is nog steeds 1 probleem. In totaal moet ik 10 ballen hebben. Ik heb er alvast 2 voor de basis. Ik kan 1 bal alleen maar tegen de Y-as van het balkje laten stuiteren maar ik wil het net zo laten stuiteren als een soort breakout/atkanoid balkje maar dan helemaal rondom ipv van alleen de bovenkant.
Zou iemand hier mij mee kunnen helpen?
Ik zal het script hieronder plaatsen.
Nou heb ik de basis. 2 balltjes die stuiteren tegen de zijkant. Maar er is nog steeds 1 probleem. In totaal moet ik 10 ballen hebben. Ik heb er alvast 2 voor de basis. Ik kan 1 bal alleen maar tegen de Y-as van het balkje laten stuiteren maar ik wil het net zo laten stuiteren als een soort breakout/atkanoid balkje maar dan helemaal rondom ipv van alleen de bovenkant.
Zou iemand hier mij mee kunnen helpen?
Ik zal het script hieronder plaatsen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
| package projectbal;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class Applet1 extends Applet implements Runnable {
int x,x2,y,y2,dx,dx2,dy,dy2,diam,sizex,sizey;
private int xb = 50, yb = 100;
public void init () {
setBackground (Color.white);
x=150;
x2=40;
y=52;
y2=150;
dx=dy=2;
dx=dy2=2;
diam=20;
sizex=300;
sizey=300;
(new Thread (Applet1.this)).start();
addMouseMotionListener (new MuisHandler() );
}
public void run() {
while (true) {
try {
Thread.currentThread().sleep(50);
}
catch (InterruptedException e) {};
x+=dx; y+=dy;
if ((x<=0)||(x+dx+diam>=sizex)) dx=-dx;
if ((y<=0)||(y+dy+diam>=sizey)) dy=-dy;
x2+=dx2; y2+=dy2;
if ((x2<=0)||(x2+dx2+diam>=sizex)) dx2=-dx2;
if ((y2<=0)||(y2+dy2+diam>=sizey)) dy2=-dy2;
x+=dx; y+=dy;
if ((y<=0)||(y+dy+diam>=yb-10)) dy=-dy;
repaint ();
}
}
public void paint (Graphics g) {
g.setColor(Color.black);
g.fillArc(x,y,diam,diam,0,360);
g.fillArc(x2,y2,diam,diam,0,360);
g.setColor (Color.red);
g.fillRect (xb-10,yb-10,75,25);
}
public void setXY (int xb, int yb) {
this .xb=xb;
this .yb=yb;
}
class MuisHandler extends MouseMotionAdapter {
public void mouseDragged (MouseEvent e) {
setXY ( e.getX(), e.getY() );
repaint ();
}
}
} |