Java Games Programmeren

Java Games Programmeren

door L.L.

Voorbeeld: Snake Applet

 

Deel 1: De basis

Java applets zijn tegenwoordig zeer populair op het internet. Ze zijn niet alleen mooie illustraties voor bij websites, ze zijn ook een goede manier voor beginnende programmeurs om bij te leren over java en over programmeren in het algemeen. Voor meer informatie over applets: Java-applet (Wikipedia)

Ik ben zelf ook een beginnende programmeur en ik heb in enkele weken tijd door middel van eenvoudig opzoekwerk (vooral de java class library heb ik vaak geraadpleegd) bovenstaande applet geprogrammeerd.
Hieronder zal ik kort uiteenzetten welke belangrijke elementen je nodig hebt om een applet te creëren en ik zal enkele handige stappen geven die je kan volgen om eender welke soort applet te programmeren.

Moest je vragen hebben over iets wat op deze site staat of als je nog bugs vindt in de bovenstaande applet, mag je iets laten weten op javagames@telenet.be.

Benodigdheden

*java: te downloaden op de officiële site. download java

*java-programmeeromgeving: bv. BlueJ of Eclipse. Maar je kan even goed met kladblok en de JDK (java development kit) werken. download Eclipse

Zelf ben ik bovenstaande snake applet beginnen schrijven in BlueJ maar ik ben al snel overgeschakeld naar Eclipse omdat ik het een zeer goede programmeeromgeving vind voor beginnende programmeurs. Eclipse helpt bijvoorbeeld bij het automatisch genereren van methodes en Eclipse geeft suggesties om errors op te lossen.

Hello World

Zoals zo vaak bij het leren van een nieuwe programmeertaal begin ik met het schrijven van het programma "Hello World". Open een kladblok bestand of je programmeeromgeving en copy-paste het volgende stukje code.

import java.applet.*; import java.awt.*; public class HelloWorld extends Applet { public void paint (Graphics g) { g.drawString("Hello World!", 60, 40); } }

Belangrijk is dat je dit bestand "HelloWorld.java" noemt, dit is hetzelfde als de naam van de klasse op regel 4 hierboven. Als je nog nooit Java code hebt gezien lijkt dit misschien Chinees, daarom een korte uitleg hieronder.

Packages en het import statement

Java is volledig gebaseerd op klassen. Je kan klassen samen groeperen in iets dat een package genoemd wordt. Twee voorbeelden zijn de packages hierboven java.applet and java.awt, de sterren zorgen ervoor dat je heel het pakket (en geen subpakket) inlaadt. Dit inladen gebeurt door het import statement. Bijvoorbeeld:

import java.applet.Applet; // laadt de Applet class in van de java.applet package import java.applet.*; // laadt alle klassen in van de java.applet package

In Eclipse wordt automatisch aangegeven wanneer je een package moet importeren (als je een bepaalde klasse gebruikt die je nog niet hebt geïmporteerd). Voorlopig volstaat het om de java.applet en java.awt packages in te laden.

Klassen

De volgende regel is een voorbeeld van de declaratie van een klasse.

public class HelloWorld extends Applet

Belangrijk om op te merken is de extends aan het einde van de declaratie. Dit zorgt ervoor dat onze klasse de klasse Applet erft. We kunnen dus de velden en methodes van deze klasse gebruiken in onze klasse. Het resultaat is dat we een programma krijgen dat zal werken als een applet.

Methodes

Omdat dit ons eerste programma is en om het eenvoudig te houden is er slechts één methode.

public void paint (Graphics g)

het "public" woord zorgt dat de methode kan opgeroepen worden vanuit andere klassen. Als "private" wordt gebruikt kan de methode alleen vanuit de eigen klasse worden aangeroepen. Een derde mogelijkheid is "protected", maar daar gaan we het hier niet over hebben. Het woord na public wordt gebruikt om te zeggen welk type informatie geretourneerd wordt door de methode. Als je void gebruikt retourneert de methode niks, maar kan die eventueel wel enkele opdrachten uitvoeren. Je kan ook bv. int,char,String,boolean,.. gebruiken, maar dan moet er op het einde van de methode zulke waarde geretourneerd worden door het return statement. Bv:

String woord = "Hallo"; return woord;

Dit zal "Hallo" retourneren

De paint methode is een belangrijke methode in een applet. Deze methode zal er voor zorgen dat we dingen op het scherm aan de gebruiker kunnen laten zien. De paint methode is altijd gekoppeld aan een grafische context, hier "Graphics g", deze wordt gebruikt om tekenen op het scherm mogelijk te maken. Voor meer uitleg over Graphics, neem eens een kijkje in de java class library.

Informatie weergeven op het scherm

Nu gaan we kijken naar wat de onderstaande methode eigenlijk uitvoert.

g.drawString("Hello World!",60,40);

Deze methode tekent een String op het scherm. Het scherm wordt dus voorgesteld door de grafische context g. Hij tekent deze string op de x (60) en y (40) coördinaten. De (0,0) coördinaten bevinden zich in de linkerbovenhoek van de applet. Een belangrijk punt om op te merken is dat we niet rechtstreeks naar het scherm tekenen, hiervan maken we straks gebruik bij het werken met een dubbel buffer.

HTML

Hoe kan je nu je applet in actie zien? Je moet de code compileren. Eclipse doet dit automatisch voor je en je kan gewoon klikken op run as applet. Indien je liever in een kladblok bestand werkt, moet je dit opslaan met dezelfde naam als je klasse en als extensie .java. Door middel van je command window (cmd) kan je met het commando "javac HelloWorld.java" je tekstbestand compileren. Dit zal een file HelloWorld.class creëren. Om deze file nu te runnen en je applet te zien kan je je applet invoegen in een html pagina. Open een kladblok venster en typ:

<HTML>
	<HEAD>
		<TITLE>Hello World Applet</TITLE>
	</HEAD>
	<BODY>
		<H1>Hello World Applet</H1>
		<APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=150>
		</APPLET>
	</BODY>
</HTML>

Als je dit opgeslagen hebt zou je het normaal moeten kunnen runnen in je browser (internet explorer, chrome,..). Eventueel kan je zoals CODE en WIDTH ook nog een ARCHIVE specifiëren zoals ik in mijn snake applet bovenaan heb gedaan. Dit doe ik om een .jar file in te laden, dit is een soort gecompresseerde versie van heel mijn project.

Nu hebben we de basis overlopen om een zeer eenvoudige java applet te schrijven. Nu gaan we over naar iets moeilijkere en interessantere zaken.

Top                                     Volgende Pagina