PyGame Spieleprogrammierworksohp

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