Ik ben een spelletje voor school aan het maken, een remake van dat oude qbasic spel Gorilla. Afijn, de gehele scene staat er al, er is alleen 1 ding dat mij behoorlijk irriteert:
Als de player de hoek en zn snelheid gekozen moet het aapje een banaan gooien. Ik heb ervoor gekozen dat dit banaantje wel wordt gemaakt bij et opstarten, maar nog null is:
private static Banaan banaan;
class Banaan heet dat dus, wat gewoon een JFrame met een ImageIcon erop is. Zodra de player de banaan gooit, wordt het banaantje aangemaakt met new Banaan() en krijgt het zn positie met setBounds. Aangezien het bij dit spel niet handig is om een layoutmanager te gebruiken heb ik dat ook maar niet gedaan. Maargoed, het probleem: de banaan verschijnt niet!!!
dit is het stukkie code dat de banaan zou moeten doen verschijnen:
ik heb al dergelijke dingen als frame.repaint() of frame.getContentPane.repaint() toegevoegd, maar dit mocht niet baten. Ook heb ik de volgorge van setBounds en frame.add omgedraaid; hielp ook niet. Maar, het gekke is dat als er een ander object op de frame wordt verplaatst, dan verschijnt het banaantje ineens wel!! [wat dus wil zeggen dat t banaantje gewoon wordt gemaakt en zn goede positie krijgt]
Is er een oplossing dat ervoor zorgt dat het banaantje WEL zichtbaar wordt?
Als de player de hoek en zn snelheid gekozen moet het aapje een banaan gooien. Ik heb ervoor gekozen dat dit banaantje wel wordt gemaakt bij et opstarten, maar nog null is:
private static Banaan banaan;
class Banaan heet dat dus, wat gewoon een JFrame met een ImageIcon erop is. Zodra de player de banaan gooit, wordt het banaantje aangemaakt met new Banaan() en krijgt het zn positie met setBounds. Aangezien het bij dit spel niet handig is om een layoutmanager te gebruiken heb ik dat ook maar niet gedaan. Maargoed, het probleem: de banaan verschijnt niet!!!
dit is het stukkie code dat de banaan zou moeten doen verschijnen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| public void gooibanaan()
{
banaan = new Banaan();
banaan.setBounds(AapAanZet.getLocation().x + 13 + (int)(Math.sin(Math.toRadians(AapAanZet.worpangle)) * 50),
AapAanZet.getLocation().y + 13 - (int)(Math.cos(Math.toRadians(AapAanZet.worpangle)) * 50), 24, 24);
banaan.dx = Math.sin(Math.toRadians(AapAanZet.worpangle)) * AapAanZet.worpspeed;
banaan.dy = -Math.cos(Math.toRadians(AapAanZet.worpangle)) * AapAanZet.worpspeed;
frame.getContentPane().add(banaan);
btimer = new java.util.Timer();
btimer.schedule(new BanaanMover(), 2500, 2500);
} |
ik heb al dergelijke dingen als frame.repaint() of frame.getContentPane.repaint() toegevoegd, maar dit mocht niet baten. Ook heb ik de volgorge van setBounds en frame.add omgedraaid; hielp ook niet. Maar, het gekke is dat als er een ander object op de frame wordt verplaatst, dan verschijnt het banaantje ineens wel!! [wat dus wil zeggen dat t banaantje gewoon wordt gemaakt en zn goede positie krijgt]
Is er een oplossing dat ervoor zorgt dat het banaantje WEL zichtbaar wordt?