PSN jschut_82 | Xbox: JSchut82
Verwijderd
Ah, dat is inderdaad een vervelend probleem. Het systeem wat je hiervoor moet gebruiken heet double-buffering.
Het prencipe: je hebt een venster waar je het spel in ziet, en ieder frame dat je maakt zet je niet in dit scherm maar creeer je 'achter de schermen' in een buffer.
Zodra het plaatje in de buffer dan klaar is plaats je de buffer op het scherm.
de code:
ten eerste moet je een methode aanmaken die een standaard functie van Java overneemt. Java roept namelijk bij repaint() zelf de methode update() aan, en deze zorgt ervoor dat het scherm leeg wordt gemaakt en vervolgens er weer op wordt getekend wat er op dat moment nodig is.
100% zeker weten doe ik het niet, maar dacht het iets was als:
hierbij mag je update niet aanroepen, maar doe je gewoon this.repaint() zoals je gewend bent. (repaint() roept update aan.)
ps. gewoon this.paint() mag ook niet.
vervolgens moet je een Image2D maken, maar hoe dat precies gaat weet ik niet meer, moet je ffies in de help kijken.
Het prencipe: je hebt een venster waar je het spel in ziet, en ieder frame dat je maakt zet je niet in dit scherm maar creeer je 'achter de schermen' in een buffer.
Zodra het plaatje in de buffer dan klaar is plaats je de buffer op het scherm.
de code:
ten eerste moet je een methode aanmaken die een standaard functie van Java overneemt. Java roept namelijk bij repaint() zelf de methode update() aan, en deze zorgt ervoor dat het scherm leeg wordt gemaakt en vervolgens er weer op wordt getekend wat er op dat moment nodig is.
100% zeker weten doe ik het niet, maar dacht het iets was als:
code:
1
2
3
4
| public void update()
{
this.paint();
} |
hierbij mag je update niet aanroepen, maar doe je gewoon this.repaint() zoals je gewend bent. (repaint() roept update aan.)
ps. gewoon this.paint() mag ook niet.
vervolgens moet je een Image2D maken, maar hoe dat precies gaat weet ik niet meer, moet je ffies in de help kijken.
ik heb ernaar gekeken en kheb het geprobeerd te gebruiken maar als ik het op deze manier doe dan blijft mee eerste scherm staan kan iemand het me duidelijk uitleggen
wel alvast bedankt voor de serieuze reacties
wel alvast bedankt voor de serieuze reacties
PSN jschut_82 | Xbox: JSchut82
het idee erachter id dat je eerst een offscreen image maakt in plaats van de hele tijd op het scherm te tekenen. Daarom moet je de methode update overloaden zodat hij niet constant het scherm wit maakt maar telkens als jouw offscreen image klaar is hem over je oude image heen kopieert
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
ja dan wordt zeker het hele scherm gerepainted. je moet ervoor zorgen dat alleen het gebied waar het balletje zich in begeeft opnieuw wordt getekend
Verwijderd
je repaint het wel, maar je legt daarna als het ware de andere tekening erover heen waardoor je geen knipperen zit.
het is dat spel arcanoid wat ik aan het namaken ben
er moeten dus een aatal dingen veranderd worden en alleen die dingen knipperen
er moeten dus een aatal dingen veranderd worden en alleen die dingen knipperen
PSN jschut_82 | Xbox: JSchut82
Bedankt voor de hulp
maar nu het volgende probleem door het bufferen word het appletje erg sloom hij gaa nu niet meer vloeiend heeft iemand hier een oplossing voor
maar nu het volgende probleem door het bufferen word het appletje erg sloom hij gaa nu niet meer vloeiend heeft iemand hier een oplossing voor
PSN jschut_82 | Xbox: JSchut82
Pagina: 1
Dit topic is gesloten.
![]()