Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enum voorbeeld: CollisionSide in CollidedTile #13

Closed
5 tasks done
bartvanderwal opened this issue Mar 26, 2018 · 1 comment
Closed
5 tasks done

Enum voorbeeld: CollisionSide in CollidedTile #13

bartvanderwal opened this issue Mar 26, 2018 · 1 comment
Assignees

Comments

@bartvanderwal
Copy link
Member

bartvanderwal commented Mar 26, 2018

Where is the enum?

Er zit nog geen enkele enum in de OOPG engine. Dit zou wel netter zijn en is ook nuttig als voorbeeld voor gebruikers/studenten. Enums behoren (nog) niet tot de toetsstof, maar zitten al jaren in Java en zijn al wel aangeraden om te behandelen. Dus in de engine is dit niet verkeerd. Zeker omdat er zelfs ook al (ergens) een lambda functie inzit, wat totaal niet tot de toetsstof hoort, en overal ook JavaDoc comments (is ook slechts aangeraden).

Voorbeeld

  • 1. Het int collissionSide veld van de CollidedTile klasse is een mooi voorbeeld waar je alle public static final int's TOP, BOTTOM, LEFT, RIGHT en INSIDE veel beter naar een enkele enum kan verhuizen.

Meteen meepakken

  • 2. Ik maak van de velden theTile en de collisionSide in CollidTile meteen protected velden in plaats van public en maar er een public getter voor, zoals het hoort in Java. Games die deze gebruiken zullen dus wel moeten updaten; maar deze velden hoor(de) je alleen in de constructor te zetten.
  • 3. Ik pas de aanroepen naar de methode in WaterWorld klasse Player ook meteen ook aan, en wijzig hier in de methode keyPressed ook meteen toegang static fields UP, DOWN etc. world
  • 4. Ik verwijder meteen de ongebruikte import com.sun.prism.image.ViewPort; in WaterWorld.java. Deze is niet nodig, maar geeft voor mensen met Java9 wel problemen, omdat ViewPort blijkbaar is verplaatst uit deze klasse o.i.d..

Backwards compatibility

  • 5. Voor enige backwards compatibility voor oude games handhaaf ik de int constanten en oude Constructor van CollidedTile wel, maar markeer deze als @deprecated. Zo is niet meteen een major release nodig van de game :smile, maar kunnen we deze bij major release in de toekomst wel droppen. Uitgaande van semver.

Een versienummer van de engine is sowieso nog wel een dingetje...
Ik zie ook nog geen .pom/Maven file in deze repo...

@bartvanderwal bartvanderwal self-assigned this Mar 26, 2018
@bartvanderwal bartvanderwal changed the title Enum voorbeeld Enum voorbeeld: CollisionSide in CollidedTile Mar 26, 2018
@bartvanderwal
Copy link
Member Author

@meronbrouwer heeft dit verder gefixed. -> done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant