Ik ben nog niet zo heel erg bedreven in java, heb mijn eerste kwartiel achter de rug, en ik moet een soort interface maken met beeld, geluid en animatie. ALles gaat goed tot ik aan de animatie begin.
Het is de bedoeling dat een regel tekst van links naar rechts beweegt. Ik wilde dat doen met een teller, die om de 0.2 sec + 1 bij waarde "teller" voert, om de waarde teller dan als horizontale begincoordinaat vi jde regel te gebruiken en deze later weer te resetten. Het probleem is, dat bij de functie repaint ALLE objecten uit public paint ge-repaint worden, en dat is een beetje irritant.
Daarom dacht, dan maak ik een extra class, met daarin alleen die zin, wat ik nu heb is:
Maar die public paint in de animatie classe doet helemaal niets. (ik heb de coordinaat pixels even vast gezet, dus niet als variable "teller" bij de regel die moet bewegen, welcome at the Farting..., om te controleren of hij iets liet zien)
Weet iemand misschien waarom niet? Ik denk dat je geen 2 paint functies kan hebben, maar ik zou niet weten hoe je het anders moet doen...
Het is de bedoeling dat een regel tekst van links naar rechts beweegt. Ik wilde dat doen met een teller, die om de 0.2 sec + 1 bij waarde "teller" voert, om de waarde teller dan als horizontale begincoordinaat vi jde regel te gebruiken en deze later weer te resetten. Het probleem is, dat bij de functie repaint ALLE objecten uit public paint ge-repaint worden, en dat is een beetje irritant.
Daarom dacht, dan maak ik een extra class, met daarin alleen die zin, wat ik nu heb is:
Java:
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
| import java.awt.*; import java.applet.*; import java.awt.event.*; import java.applet.Applet; public class H20 extends Applet implements ActionListener { private Image image, imageF, FMI; private Button play, loop, stop, fart; private AudioClip sound, sfx; private int counter; public void init() { image = getImage(getDocumentBase(), "milk.gif"); imageF = getImage(getDocumentBase(), "fart.gif"); FMI = getImage(getDocumentBase(), "FMI.gif"); play = new Button("Play"); add(play); play.addActionListener(this); loop = new Button("Loop"); add(loop); loop.addActionListener(this); stop = new Button("Stop"); add(stop); stop.addActionListener(this); fart = new Button("Fart!"); add(fart); fart.addActionListener(this); sound = getAudioClip(getDocumentBase(), "music.wav"); sfx = getAudioClip(getDocumentBase(), "sfx.wav"); } public void actionPerformed(ActionEvent event) { if (event.getSource() == play) sound.play(); if (event.getSource() == loop) sound.loop(); if (event.getSource() == stop) sound.stop(); if (event.getSource() == fart) { counter = 1; sfx.play(); repaint(); } } public void paint(Graphics g) { g.drawImage(FMI, 150, 130, 300, 50, this); if (counter == 0) { g.drawImage(image, 20, 20, 100, 100, this); } if (counter == 1) { g.drawImage(imageF, 20, 20, 168, 100, this); try { Thread.sleep (600); } catch (InterruptedException e) { } counter = 0; repaint(); } } public class animatie { public int teller = 20; public void init() { teller++; if(teller == 200) { teller = 20; } repaint(); } public void paint(Graphics g) { g.drawString("Welcome at the Farting Milkshake Interface, aka FMI", 20, 200); } } } |
Maar die public paint in de animatie classe doet helemaal niets. (ik heb de coordinaat pixels even vast gezet, dus niet als variable "teller" bij de regel die moet bewegen, welcome at the Farting..., om te controleren of hij iets liet zien)
Weet iemand misschien waarom niet? Ik denk dat je geen 2 paint functies kan hebben, maar ik zou niet weten hoe je het anders moet doen...
[ Voor 16% gewijzigd door curry684 op 02-11-2003 21:28 ]