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

Raidenkk

Treue Seele

  • »Raidenkk« ist der Autor dieses Themas

Beiträge: 151

Wohnort: Bergkamen/Oberaden

Beruf: Multimedia Informatik

  • Private Nachricht senden

1

01.06.2012, 15:44

SFML 2.0: Kollision

Hey,
ich habe ohne viel zu schauen mal versucht ne Kollision zwischen dem Wasser tile auf dem folgenden Bild und meinem Spieler zu Programmieren.
Leider gehen mir die Ideen aus.

Meine bis jetzt am besten umgesetzte Idee war bis jetzt folgende:
Ich habe SpielerX+64 also neben dem Spieler gefragt ob dort ein Wasser tile steht, wenn ja dann Steuerung Rechts sperren.
Falls SpielerX trotzdem über dem Wasser tile gekommen ist einfach ein wenig zurücksetzen bevor es gerendert wird.
Das hat auch alles gut geklappt, bis ich gemerkt habe das bei den anderen 3 Seiten die gleiche Methode nicht funktioniert.
Sobald ich über dem Wasser tile bin und runter laufe, fliegt mein Character links neben dem Wasser tile statt darüber.

Ich würde mich freuen wenn mir jemand mal sagen könnte wie es am besten umzusetzen ist ^.^


mfg:
Raidenkk / Kevin.K
»Raidenkk« hat folgendes Bild angehängt:
  • Kollision.png

2

01.06.2012, 18:22

Du hast wohl statt y zu subtrahieren x subtrahiert, hm?

MfG
Check

3

01.06.2012, 18:47

Sorry wegen Offtopic, aber wieso schreiben alle immer "SFML" oder sowas in die Titel, obwohl das Thema überhaupt nicht davon abhängig ist?!

Raidenkk

Treue Seele

  • »Raidenkk« ist der Autor dieses Themas

Beiträge: 151

Wohnort: Bergkamen/Oberaden

Beruf: Multimedia Informatik

  • Private Nachricht senden

4

01.06.2012, 20:19

Ich kann Addieren und Subtraieren, aber könnt ihr mir auch sagen warum bei einer Kollisionsabfrage mein Programm zu 100% ausgelastet ist?


Quellcode

1
for (int y=0; y<map_.getWidth_(); y++)  {       for (int x=0; x<map_.getWidth_(); x++)      {           if (map_.getvMap_()[x+y*map_.getWidth_()] == 2)         {               while (collision (player_.getX(), player_.getY(), 64, 64, ((x-y/map_.getWidth_())*64+sidescrollX_), ((y-x/map_.getWidth_())*64+sidescrollY_), 64, 64))              {                   if (player_.getX() < player_.getSpriteX())                  {                       player_.setX(+1*windowElapsed);                 }                   else                    {                       player_.setX(-1*windowElapsed);                 }               }           }       }   }


PS:
Der Code wird nicht richtig in Zeilen gepackt 0o?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Raidenkk« (01.06.2012, 20:28)


Werbeanzeige