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

BHN

Frischling

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

1

09.01.2011, 17:01

Kollisionsabfrage

Hallo Leute,
ich habe ein problem mit der Kollisionsabfrage.
Ich will einen 2D Jump n run erstellen habe allerdings Probleme damit einen Objekt zu erstellen auf dem man stehen kann.

Mein Versuch:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//Checkposition
//
//Aufgabe: Position des Spielers überprüfen
//
void CPlayer::CheckPosition ()
{
    //Linker Rand
    if (m_fPlayerXPos < 0.0f)
        m_fPlayerXPos = 0.0f;
    //Unterer Rand
    else if (m_fPlayerYPos > 550.0f)
        m_fPlayerYPos = 550.0f;
    //Rechter Rand
    else if (m_fPlayerXPos > 750.0f)
        m_fPlayerXPos = 750.0f;

    //Wenn der Spieler auf dem Objekt steht
    if (m_fPlayerYPos > m_ObjektPosition.m_fObjektYPos)
    m_fPlayerYPos = m_ObjektPosition.m_fObjektYPos;

}//CheckPositio

(X Position nicht mit eingebunden)

Anstatt auf dem Objekt stehen zu bleiben, fällt mein Spieler einfach durch.
Hoffentlich könnt ihr mir helfen.

Mfg BHN

2

09.01.2011, 17:06

Ich nehme an m_ObjectPosition.m_fObjectYPos ist nicht der obere Rand deines Objekts. Wenn doch hab ich was übersehen :)
Tipp: Leg dir eine 2D-Vektor-klasse an :D

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

3

09.01.2011, 17:35

ein jump&run ist ziemlich schwer. das unterschätzen viele.

wie werden die positionen der figur angegeben? relativ zur linken oberen ecke? wenn ja musst du zur YPosition noch seine höhe hinzurechnen. es empfiehlt sich aber mit bounding boxes zu arbeiten.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

BHN

Frischling

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

4

12.01.2011, 15:19

Also bei mir ist die Position im moment auf der unteren linken Ecke aber das wollte ich später korrigieren wenn ich es endlich schaffe, dass der Spieler auf dem Objekt stehen bleibt ^^

5

12.01.2011, 18:09

Wenn jetzt noch m_ObjectPosition.m_fObjectYPos der obere Rand des Objekts ist müsste es eigentlich funktionieren.

SkryptForFun

Frischling

Beiträge: 27

Wohnort: Schweiz

Beruf: Schüler

  • Private Nachricht senden

6

13.01.2011, 20:26

Ich mache es immer so, dass ich den Inhalt der zu prüfenden Variablen mit dem Debugger überprüfe zu verschiedenen Zeitpunkten im Programm. Meistens findet sich der Fehler.

BHN

Frischling

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

7

15.01.2011, 13:03

Vielen Dank für die Antworten ich werde mal probieren ob eure Vorschlage funktionieren :D

Werbeanzeige