Der Spieleprogrammierworkshop
Der Spieleprogrammierworkshop muss überarbeitet werden. Hier sind die Ergebnisse was gemacht werden muss von den Campdays:
Hinzufügungsideen
- Projektile |
basics.Projectile
|check - Gegnerlogik | Erweiterbar
- Ende → selber schreiben | Teilnehmer können Bildschirm selber programmieren
- Upgrades
Probleme
- Zu viel Zeug für die Teilnehmer (verwirrend)
- Viel wichtiges Zeug in der Lib
- Verschachtelung
- fehlende Typeannotations
- Following Logic
Lösungen
- hinzufügen von Sprites vereinfachen und zu Spritegruppen vereinfachen
- Besser Zeug benennen
- Type annotations
spritegroupfactory
.add('wall', WALL(constructorargs))
.build()
Neues UML-Diagramm
---
title: Teckids Spielepgrogrammieren
---
classDiagram
class GameObject{
+update(events)*
}
<<Interface>>GameObject
class GameLoop{
+loop(loop_fn : fn(handle : LoopHandle, events))
+add_object(GameObject)
+set_surface(tilemap)
+init()
+load_map()
}
class SpriteFactory{
+init()
+add(object_name : String, to_be_added_to : Spritegroup, constructing_args)
+build()
}
class Player {
}
class Enemy {
}
class Wall {
}
class LinearPlayer {
}
class LinearEnemy {
}
class RandomEnemy {
}
class FollowingEnemy {
}
class PassiveEntity {
}
class Coin {
}
class LoopHandle {
+quit()
+change_surface()
+reload()
}
GameObject <|-- Player
Player <|-- LinearPlayer
GameObject <|-- Enemy
Enemy <|-- LinearEnemy
Enemy <|-- RandomEnemy
Enemy <|-- FollowingEnemy
GameObject <|-- Wall
GameObject <|-- PassiveEntity
PassiveEntity <|-- Coin