Commit Graph

341 Commits

Author SHA1 Message Date
Jan Philipp Timme 0d90b387c3 Set CollisionDamage for Player and Enemies. 2014-11-08 15:19:44 +01:00
Jan Philipp Timme d444b36351 Bugfix: Enemies do not hurt the player, player does not properly die. 2014-11-08 15:17:45 +01:00
Jan Philipp Timme 1086effdad Huge update. See detailed notes.
Keine Lust auf englischen Text gerade, hier die Übersicht:
Es gibt jetzt eine eigene Datenstruktur, die im Grunde nichts weiter
ist, als eine recht stumpfe, verkettete Liste. Besonderheit: Sie macht
sich weniger Gedanken über Modifikationen während des Iterierens und
wächst momentan etwas stetig.

Es gibt eine neue Methode die() im LivingEntity, die per default
Explosion auslöst und das Entity danach wegräumt. Wenn Items gedroppt
werden sollen oder sonstwas passieren soll, bitte Overriden.

Die Kollisionserkennung wurde in den CollisionHelper ausgelagert,
zunächst aber noch mit Rectangles weitergeführt. Wer mutig genug ist,
darf sich gerne austoben und eine Kollisionserkennung mit vielen If und
ints bauen. :-)

LivingEntity implementiert zunächst Hittable.

Der Player kümmert sich selbst um Kollisionen mit Items aka aufsammeln.

Das Collidable-Interface enthält alles notwendige für
Kollisionserkennung auf int-Basis.

Der Screen gibt nur noch Iteratoren für die Entity-Liste aus.

Ich glaube, das wars.
2014-11-08 15:09:29 +01:00
Jan Philipp Timme dda0fb8313 Move Entity interfaces into a spi (Service Providing Interfaces) package. 2014-11-07 21:03:45 +01:00
Jan Philipp Timme 17aafe11f9 Comment interfaces, expand the hittable interface. 2014-11-07 21:01:13 +01:00
Jan Philipp Timme 2295d83ff9 The Entity now knows whether it is able to move. 2014-11-07 20:54:00 +01:00
Jan Philipp Timme d9b7128456 Rename DamageValue to ShootDamage to avoid confusion with Shot logic. 2014-11-07 20:47:07 +01:00
Jan Philipp Timme 3c5e96791b Move GameFrame to root package, healthbar to gui package.
The Gui Package shall contain all elements that we create and use in our
game that are actual gui elements like menu buttons, health bars,
highscore stuff and more.
2014-11-07 20:23:06 +01:00
Jan Philipp Timme d4a19e76e0 Comment ShootingEntity. Make createShot private. 2014-11-07 20:20:23 +01:00
Jan Philipp Timme c0211181e1 Comment the LivingEntity. 2014-11-07 20:08:34 +01:00
Jan Philipp Timme f0a9e8a6ad Comment Entity, make x and y private, add transpose method for easy movement. 2014-11-07 20:00:07 +01:00
Jan Philipp Timme 496e6792c3 Move package item from background to entity. 2014-11-06 23:29:33 +01:00
Jan Philipp Timme 76b7b33938 Comment the Shot class. 2014-11-06 23:27:03 +01:00
Jan Philipp Timme 506a5ae620 Document the double buffering, move GameFrame title to GameConfig. 2014-11-06 23:19:46 +01:00
Jan Philipp Timme 1caf4818eb Add comments to screen package. 2014-11-06 23:09:27 +01:00
Jan Philipp Timme a12ef61f7b Comment the SoundSystem. 2014-11-06 22:58:07 +01:00
Jan Philipp Timme 3d80faddef Clarify naming in the Loader, add comments. 2014-11-06 22:46:40 +01:00
Jan Philipp Timme b60abdc577 Remove unused method from Shot class. 2014-11-06 19:44:27 +01:00
Jan Philipp Timme c3fb13e3eb Create subfolders for shot images and item images. 2014-11-06 19:40:51 +01:00
lubiana 8f4bad07a5 ist schöner so 2014-11-06 19:04:57 +01:00
lubiana 8a70490c47 Merge branch 'yoloshots' 2014-11-06 19:02:37 +01:00
lubiana 090b7ec5b3 Merge branch 'master' of github.com:teamteamteam/SpaceScooter 2014-11-06 19:02:23 +01:00
lubiana a3875a5e97 dumlubi ist dumm, rennt jetzt 2014-11-06 19:02:03 +01:00
lubiana a16ef5d7a7 nullllpointrrrr 2014-11-06 18:51:08 +01:00
lubiana 6f2857946d 80 Zeichen pls 2014-11-06 18:41:03 +01:00
Jan Philipp Timme c4ab7c3530 Replace LinkedList with List, so it is possible to change its implementation later - if needed. 2014-11-06 18:19:35 +01:00
Jan Philipp Timme 9542131e4a Avoid creating a new anonymous Runnable each frame.
Since the Runnable that is passed to the EventQueue does never change,
it now is created in the constructor. This should avoid a lot of
overhead.
2014-11-06 17:34:20 +01:00
lubiana 1525c358c1 Merge branch 'master' of github.com:teamteamteam/SpaceScooter 2014-11-06 16:15:54 +01:00
lubiana 3df49e2be6 gegner ballern nun rot 2014-11-06 16:15:50 +01:00
Jan Philipp Timme eb4bdc6ada Remove @Override from Interface implementing methods in Player class. 2014-11-06 14:58:09 +01:00
Jan Philipp Timme 46efd1e04e Create overridable method that actually spawns Shot objects. 2014-11-05 22:54:54 +01:00
Jan Philipp Timme 0c270c8665 Implement asynchronous playing of sounds. 2014-11-05 09:37:51 +01:00
Jan Philipp Timme 2f6eddcb46 Add Sound support to Loader and Makefile. 2014-11-05 09:02:44 +01:00
lubiana 1f65979f41 Merge branch 'master' of github.com:teamteamteam/SpaceScooter 2014-11-05 01:00:25 +01:00
lubiana 64c061b68f zwei enemies gepixelt 2014-11-05 01:00:16 +01:00
Jan Philipp Timme b1e72da839 Cleanup unneccessary ArrayList in class Background. 2014-11-04 23:28:57 +01:00
Jan Philipp Timme 0a695432a0 Bugfix: GamePausedScreen did not correctly replace the GameScreen when going to MainMenu. 2014-11-04 21:31:47 +01:00
Jan Philipp Timme 4017d369b1 Make sure Explosions cleanup after themselves.
Apparrently, == 0 was not enough.
2014-11-04 21:06:36 +01:00
Jan Philipp Timme 48e3ac275c Da hab ich doch glatt das super.update() übersehen. 2014-11-04 20:51:34 +01:00
Jan Philipp Timme 74ba66451b Entities without image now have 0x0 dimensions.
Maybe this is just an ugly hack until we move the setImage() part into
the constructor call to make sure every Entity _HAS_ an image before
updating and painting occurs.
2014-11-04 20:35:13 +01:00
Jan Philipp Timme c716bc2187 Minor Bugfix: Add missing super call, catch potential NullPointer. 2014-11-04 20:23:52 +01:00
Jan Philipp Timme 95f3e05fed Have the Screen call remove() on all Entities before removing them. 2014-11-04 20:23:21 +01:00
Jan Philipp Timme a91a60381c Add canShoot attribute to ShootingEntity. 2014-11-04 20:22:51 +01:00
Jan Philipp Timme aedbd55159 Bugfix: Have the player actually deregister itself from the Keyboard on remove(). 2014-11-04 19:53:44 +01:00
Jan Philipp Timme e87ec69e97 Actually have the entity take care of adding it to the current screen. Whoopsie. 2014-11-04 19:46:19 +01:00
Jan Philipp Timme e2c34366e3 Remove superfluos calls to currentScreen.addEntity()
Since the entity class itself takes care that all entities are on the
screen, you don't need to worry about this. :-)
2014-11-04 19:41:15 +01:00
Jan Philipp Timme 881b802e7a Create packages for enemies, shots and items. 2014-11-04 19:33:30 +01:00
Jan Philipp Timme e713ee4817 Make Explosions inherit Entity instead of LivingEntity. 2014-11-04 19:29:24 +01:00
Jan Philipp Timme 799e175c5d Make 'spawny' Explosions work threadless. 2014-11-04 19:27:35 +01:00
Jan Philipp Timme 16bcddb273 Improve implementation continuous/spontaneous fire.
Das Keyboard bietet nun allen, die den KeyboardListener implementieren,
den Service, sich an ihm zu registrieren.
Ist dies erfolgt, so reicht es die Events an die registrierten Listener
weiter.
Auf diese Weise wurde das Dauerfeuer und Spontanfeuer implementiert.
2014-11-04 19:07:44 +01:00