CodeGym /Java Blog /Willekeurig /Nieuw gedeelte over CodeGym — Games
John Squirrels
Niveau 41
San Francisco

Nieuw gedeelte over CodeGym — Games

Gepubliceerd in de groep Willekeurig
We hebben geweldig nieuws! We hebben een nieuwe sectie "Games" gelanceerd op CodeGym. Het staat nu open voor alle gebruikers. Ieder van jullie kan hier een volwaardige game schrijven, met graphics, en je een echte game-ontwikkelaar voelen. Deze sectie is momenteel in bètatest, dus het is erg belangrijk voor ons om uw mening te horen over hoe we het nog cooler kunnen maken! Probeer het eens, test dingen en laat je feedback en suggesties achter onder dit bericht! Onze video leert je kort over de belangrijkste kenmerken van het gedeelte "Games". Genieten!
Nu nodigen we je uit om meer te leren over de functies van de nieuwe sectie en om antwoorden te krijgen op belangrijke vragen die je kunt tegenkomen tijdens het schrijven van games.

1. Hoe spellen te schrijven op CodeGym

Zoals je weet heeft CodeGym een ​​nieuwe feature geïntroduceerd: gamewriting . Deze taken zijn aanzienlijk groter dan normale taken en veel interessanter. Ze zijn niet alleen interessant om te schrijven, maar ook om te testen. Je begrijpt waar we het over hebben ;) Het werk in de kantoren van CodeGym lag letterlijk enkele dagen stil toen we begonnen met het testen van de speltaken :) Elke speltaak is een project: een grote taak met twintig subtaken. Als je een game schrijft, moet je ze op volgorde voltooien. Als de laatste subtaak is voltooid, is je spel klaar. Het zal de zeer eenvoudige game-engine van CodeGym gebruiken . Het werken ermee is niet moeilijker dan het werken met de console. In dit document vindt u een beschrijving van de game-engine en voorbeelden van het gebruik ervan .

2. Functies van de game-engine

Het speelveld wordt door de game-engine opgedeeld in cellen. De minimale maat is 3x3; het maximum is 100x100. Elke cel kan in een bepaalde kleur worden geverfd en er kan wat tekst in worden geschreven. De tekstgrootte en tekstkleur kunnen ook per cel worden ingesteld. De engine maakt het mogelijk om event handlers te schrijven voor muisklikken en toetsaanslagen. Een ander interessant ding is de mogelijkheid om met een timer te werken. Lees meer in het gedeelte "Werken met een timer". Met onze "voor de hand liggende" game-engine kun je zeer interessante games maken - iets wat je zelf zult zien. Wil proberen? Lees dan de volgende alinea en begin met het schrijven van spellen.

3. Toegang tot een spel

Om te beginnen met het schrijven van een spel, ga naar het gedeelte "Games" op de CodeGym-website, kies er een die je leuk vindt en ga naar de bijbehorende pagina. Er zal een knop " Oplossing schrijvenNieuwe sectie over CodeGym — Games - 1 " zijn - klik erop. De web-IDE wordt geopend. Daar ga je aan de slag met de eerste deeltaak van het spel. Bovendien zijn de subtaken van de game voor u beschikbaar in IntelliJ IDEA via de plug-in. Als u IntelliJ IDEA gebruikt , moet u de plug-in bijwerken. U kunt de nieuwste versie van de plug-in hier downloaden . Open na het updaten van de plug-in de takenlijst en selecteer "Java Games Quest". Nieuwe sectie over CodeGym — Games - 2Nieuwe sectie over CodeGym — Games - 3Klik vervolgens op de beschikbare subtaak: een module "Java Games" zou in uw project moeten verschijnen en deze zou de engine-bibliotheek en code voor uw subtaken moeten bevatten. Daarna is het net als het oplossen van elke andere taak. Je kunt games schrijven in Web IDE of in IntelliJ IDEA, wat je maar wilt. Toch is IntelliJ IDEA handiger. En professioneler. De keuze is aan jou.

4. Games publiceren naar de applicatiecatalogus

Als je klaar bent met het schrijven van een game, kun je deze publiceren in de catalogus "Games en applicaties" op CodeGym. Druk gewoon op de knop "Publiceren" en binnen een halve minuut wordt je spel toegevoegd aan het gedeelte "Gepubliceerde spellen". Nieuwe sectie over CodeGym — Games - 4Als u uw implementatie van het spel met vrienden of collega's wilt delen, is niets eenvoudiger. Stuur ze gewoon een link naar het gepubliceerde spel en ze kunnen spelen. Registratie op CodeGym is niet vereist. Nieuwe sectie over CodeGym — Games - 5Als maker kun je genieten van het aantal keren dat anderen je game spelen. Net als het aantal views op YouTube. Hoe groter hoe beter.

5. Spelaanpassing

Als je klaar bent met het schrijven van een game, kun je deze aanpassen. Wil je 2048 spelen op een bord van 5x5? Doe Maar. Je bent een programmeur en je hebt een toetsenbord binnen handbereik. Verander het spel zoals je wilt. Je kunt iets geheel nieuws toevoegen. In Snake kan de slang bijvoorbeeld vertragen als hij een verse appel eet (binnen 5 seconden nadat de appel verschijnt). Bovendien kan de appel van rood naar groen verkleuren, of een peer worden. Of misschien houdt je slang meer van konijnen dan van appels... In Minesweeper kun je de speler een tweede leven geven of misschien een atoombom die cellen "verlicht" binnen een straal van meerdere cellen. Maar vergeet niet dat als u met bestanden of afbeeldingen in een game werkt zonder de game-engine te gebruiken, de game mogelijk niet wordt gepubliceerd in de applicatiecatalogus. Niet alles kan in een browser worden uitgevoerd, weet je.

6. Nuttige documentatie

We hebben enkele diepgaande documenten opgesteld om u te helpen vertrouwd te raken met de CodeGym-game-engine (het spel initialiseren, het speelveld maken en werken met afbeeldingen), het afhandelen van gebeurtenissen (werken met de muis, het toetsenbord en de timer) en vernieuwen of leer de basis Java-theorie die je tegenkomt bij het schrijven van games (eerste en tweede CodeGym-zoektocht):

7. Veelvoorkomende problemen

Ik heb Linux en ik gebruik OpenJDK. Wanneer ik het spel start, geeft de compiler een foutmelding:

Error:(6, 8) java: cannot access javafx.application.Application
  class file for javafx.application.Application not found
Wat zou je moeten doen? Onze game-engine gebruikt JavaFX, maar is niet standaard geïnstalleerd in OpenJDK. U moet dit oplossen:
  1. Voer het volgende in bij de opdrachtprompt:sudo apt-get install openjfx

  2. Ga daarna naar de projectinstellingen (ALT+CTRL+SHIFT+S) -> SDK's -> Classpath en klik op het plusteken aan de rechterkant. Selecteer het bestand jfxrt.jar. Het bevindt zich in de geïnstalleerde JDK op: <JDK_PATH>/jre/lib/ext/jfxrt.jar

  3. Klik OK.

Ik heb Java 11. Ik kan het spel niet uitvoeren. Wat moet ik doen? Java 11 heeft geen JavaFX. Als gevolg hiervan kan de compiler het spel niet compileren en krijg je een foutmelding wanneer je het spel probeert uit te voeren. Om het probleem op te lossen, moet u JavaFX aan het project toevoegen:
  1. Download de JavaFX Windows SDK op https://gluonhq.com/products/javafx/ .

  2. Pak het gedownloade archief uit in een willekeurige map (bij voorkeur in de map lib van het Games-project).

  3. IDEE openen.

  4. Ga in IDEA naar Bestand -> Projectstructuur.

  5. Selecteer het tabblad Bibliotheken en klik op + -> Java.

    Nieuwe sectie over CodeGym — Games - 6
  6. Geef het pad op naar de uitgepakte map javafx-sdk en selecteer de map lib

    Nieuwe sectie over CodeGym — Games - 7
  7. Klik OK. Voeg vervolgens in het nieuwe venster JavaFX toe aan de Games-module.

    Nieuwe sectie over CodeGym — Games - 8
  8. Nu zou er een nieuwe bibliotheek moeten verschijnen. Klik op Toepassen -> OK.

    Nieuwe sectie over CodeGym — Games - 9
  9. Om het spel correct uit te voeren, opent u Uitvoeren-> Configuratie bewerken en voert u het volgende in het veld VM-opties in:

    
    --module-path ./lib/javafx-sdk-16/lib --add-modules=javafx.controls,javafx.fxml,javafx.base
    
    Nieuwe sectie over CodeGym — Games - 10
  10. Vervolgens moet u de toepassing op dit tabblad toevoegen. Klik hiervoor op + -> Toepassing

    Nieuwe sectie over CodeGym — Games - 11
    1. Selecteer de Games-module

    2. Voer het pad naar de hoofdklasse in (in dit geval — SnakeGame)

    3. Voer dezelfde VM-opties in als in item 9.

    Klik op Toepassen -> OK

    Nieuwe sectie over CodeGym — Games - 12
  11. Voer het spel uit.

Opmerkingen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION