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

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

11

27.02.2011, 02:46

Von was für einem "beweglichen Viereck" redest du da die ganze Zeit!? Natürlich brauchst du 4 Tests, wo liegt das Problem!? Die kannst du in 4 if Abfragen schreiben oder über Logische Operatoren in eine einzelne, das ist doch egal!?

Jawaiica

Treue Seele

  • »Jawaiica« ist der Autor dieses Themas

Beiträge: 134

Wohnort: Hannover

Beruf: Student

  • Private Nachricht senden

12

27.02.2011, 14:33

Ok, ich glaub, ich weiß jetzt was ich falsch gemacht habe -.-'
Ich war der festen Überzeugung, dass man die x -und y Position neu festlegen muss, wenn man gegen ein Objekt läuft, aber es reicht ja, wenn man die Geschwindigkeit, mit der sich das Objekt bewegt auf 0 setzt...
So geht es bei mir nämlich nur ich habe dann immer noch ein kleines Problem und zwar wenn ich meine Bedingungen zu denen verändere: http://codepad.org/Rm9q3XwD
dann kann ich mich nicht mehr bewegen, wenn ich die berühre ( ist ja logisch, da ich die Geschwindigkeit auf 0 setze ). Ich weiß jetzt also nicht, wie ich das umsetzen soll, dass ich mich dann doch noch bewegen kann nur halt in die entgegen gesetzte Richtung.

Ich habe es jetzt mal mit zwei Variablen versucht ( Rechts -und Linksgeschwindigkeit ), es hat auch toll funktioniert, allerdings nur bei einer der beiden Seiten, nie bei beiden.

Könnt ihr mir jetzt weiter helfen? :S

//edit: sorry für den Doppelbeitrag... der Beitrag über dem hier kann gelöscht werden!
"Die Sekunde ist die Dauer von 9 192 631 770 Perioden der Strahlung, die dem Übergang zwischen den beiden Hyperfeinstrukturniveaus des Grundzustandes des Atoms Caesium 133 entspricht."

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

13

27.02.2011, 15:09

Entweder du setzt deine Position bei einer Kollision zurück zur letzten begehbaren Position oder, sofern du mit Richtungsvektoren arbeitest, drehst du die einmal um.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Jawaiica

Treue Seele

  • »Jawaiica« ist der Autor dieses Themas

Beiträge: 134

Wohnort: Hannover

Beruf: Student

  • Private Nachricht senden

14

28.02.2011, 10:04

Yey, danke. Das mit dem zurücksetzen hat wunderbar geklappt! Danke für eure Hilfe :)
"Die Sekunde ist die Dauer von 9 192 631 770 Perioden der Strahlung, die dem Übergang zwischen den beiden Hyperfeinstrukturniveaus des Grundzustandes des Atoms Caesium 133 entspricht."

15

10.02.2021, 23:18

egal welche Engine... SO:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Object1 = 10x16
// Object2 = 32x28


  if ((((Object1Position.X+10 >= Object2Position.x) && (Object1Position.X+10  <= Object2Position.x + 32)) ||

      ((Object1Position.x+10 >= Object2Position.x) && (Object1Position.x+10  <= Object2Position.x + 10)))&&

     (((Object1Position.y+16 >= Object2Position.y) && (Object1Position.y +16 <= Object2Position.y + 28)) ||

    ((Object2Position.y + 28 >= Object1Position.y) &&( Object2Position.y + 28 <= Object1Position.y + 16))))
  {
   //KOLLISION... mache was
  }

:thumbsup:

FSA

Community-Fossil

  • Private Nachricht senden

16

11.02.2021, 03:24

Der Thread ist 10 Jahre alt...

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

17

11.02.2021, 10:32

Der Thread ist 10 Jahre alt...

Jetzt sei mal nicht so. Laut deiner Sig bist du doch offen für alternative Ansätze :D

Timmyew

Treue Seele

Beiträge: 128

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

18

01.07.2021, 20:00

Wen man SDL verwendet :)

C-/C++-Quelltext

1
2
3
4
bool isCollided(SDL_Rect* recA, SDL_Rect* recB){
    return ((recA->x < (recB->x + recB->w)) && ((recA->x + recA->w) > recB->x)
            && (recA->y < (recB->y + recB->h)) && ((recA->y + recA->h) > recB->y));
}


Obwohl der Thread so alt ist, kann man trotzdem mal alternative Ansätze posten und ggf einem Anfänger behelfen :)

Werbeanzeige