Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

n0_0ne

1x Contest-Sieger

  • »n0_0ne« ist der Autor dieses Themas
  • Private Nachricht senden

1

16.03.2009, 00:50

[Erledigt] Genaue 2D-Kollisionserkennung?

Hallo,
Ich würde gerne eine kleine Explosionsanimation in das Spiel aus Kapitel 12 des Buches einbauen, allerdings weiß ich nicht, wie genau ich herausfinde, WO GENAU eine Kollision stattgefunden hat...

Ob es eine gab funktioniert ja beispielsweise mit

C-/C++-Quelltext

1
2
3
4
RectShot.y < RectAsteroid.y + RectAsteroid.h &&
RectShot.y + RectShot.h > RectAsteroid.y &&
RectShot.x < RectAsteroid.x + RectAsteroid.w &&
RectShot.x + RectShot.w > RectAsteroid.x


Aber mir ist grade etwas schleierhaft, wie ich herausfinde, an welcher Stelle der Rechtecke (besser noch, an welcher Stelle des Screens) eine Kollision stattfand, kann mir jemand vielleicht kurz nen guten Link posten, oder mir in etwa erklären, wie man das berechnen kann?

Lerikson

Alter Hase

Beiträge: 412

Wohnort: nördlich von Hamburg

Beruf: Schüler

  • Private Nachricht senden

2

16.03.2009, 08:19

hmm ich kenne das Buch leider nicht (vll kauf ichs mir demnächst )

Hier ist ein Link zu einem (englischen) SDL Tutorial, <- ich denke du arbeitest mit SDL oder?


http://lazyfoo.net/SDL_tutorials/index.php

oder spezieller die Tuts zur Kollisionserkennung:

1) Generelle Kollisionserkennung:
http://lazyfoo.net/SDL_tutorials/lesson17/index.php

2) Per-Pixel (Genaue Kollisionserkennung)
http://lazyfoo.net/SDL_tutorials/lesson18/index.php
Errare est humanum. -Windows ist menschlich ;-)

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

3

16.03.2009, 09:10

Du musst doch im Grunde nur, falls es zu einer Kollision gekommen ist, die aktuellen Koordinaten des Mittelpunktes deiner Rakete nehmen.

n0_0ne

1x Contest-Sieger

  • »n0_0ne« ist der Autor dieses Themas
  • Private Nachricht senden

4

16.03.2009, 09:27

naja, so einfach isses nich... Wer das Spiel kennt, weiß, dass das Raumschiff 2 Geschütze hat, links und rechts, und die Schüsse selbst nur aus einem Sprite bestehen, welches viel größer ist als jeder der Schüsse, dazu kommt noch, dass sie nicht zentral liegen...
Aber ich werde mir erstmal die Links ansehen, danke schonmal :)

5

16.03.2009, 11:47

Aber du könntest z.B. den Offset der Raketenspitze speichern. (Also dessen Koordinaten im Bild). Wenn die Rakete gedreht war, haust du noch einen sinus oder so darauf und schon haste den Punkt.
Lieber dumm fragen, als dumm bleiben!

n0_0ne

1x Contest-Sieger

  • »n0_0ne« ist der Autor dieses Themas
  • Private Nachricht senden

6

16.03.2009, 12:10

wie gesagt, es sind 2 raketen in dem bild, deshalb geht das so einfach nicht... Ich hab es jetzt aber erstmal so gemacht, dass es 2 einzelne Shots sind, die dann auch getrennt versch. ziele treffen können, ist sowieso besser

Werbeanzeige