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

1

28.10.2009, 11:50

SFML Collision prüfen

Hallo,

Ich habe eine Frage bezüglich SFML, undzwar habe
ich angefangen mit der SFML zu Programmieren, nun wollte
ich einen Pong Remake machen. Das Problem war aber dabei
das ich keine Collision prüfen konnte bzw. nicht weiß wie
das gemacht wird. Ich möchte zum einen die Collision zwischen
Ende des Bildschirms (Width & Height) und die Collision zwischen
Paddel und Ball überprüfen.

Natürlich habe ich endlos gegoogelt nur ist das Problem
das ich kein großer English fan bin und die netten übersetzer
auch nur Bahnhof reden.

Es wäre schon wenn mir jemand ein Code Beispiel geben
könnte.

Danke schonmal im Vorraus! :)

idontknow

unregistriert

2

28.10.2009, 12:24

C-/C++-Quelltext

1
2
template <typename T>
bool Rect<T>::Intersects(const Rect<T>& Rectangle, Rect<T>* OverlappingRect) const

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

3

28.10.2009, 12:49

Zeichne dir das ganze doch mal auf Papier auf und überlege dir welche Werte gegeben sein müsse damit es zur Kollision kommt. Dafür reichen die Grundrechenarten :)

xxendlessxx

Treue Seele

Beiträge: 230

Wohnort: Bad Schussenried

Beruf: Full Stack Developer

  • Private Nachricht senden

4

28.10.2009, 13:02

Originaltext: http://www.morrowland.com/apron/article/gl/boundingbox/index.php

Übersetzt:
http://translate.google.de/translate?js=y&prev=_t&hl=de&ie=UTF-8&u=http://www.morrowland.com/apron/article/gl/boundingbox/index.php&sl=en&tl=de&history_state0=

Stazer

Alter Hase

Beiträge: 468

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

5

28.10.2009, 16:37

im sfml wiki sind collisions funktionen mit denen du 3 verschiedene kollisionen abfragen kannst

6

28.10.2009, 17:02

Danke für die antworten.

Ich habs jetzt versucht mit:

C-/C++-Quelltext

1
2
3
4
if ( Collision::PixelPerfectTest ( const sf::Sprite&  Paddel , const sf::Sprite& Ball, sf::Uint8 AlphaLimit ) != false )
{
//....

} 


Dann bekomm ich aber das ausgespuckt vom Compiler:

Zitat

1>.\Pong.cpp(47) : error C2143: Syntaxfehler: Es fehlt ')' vor 'const'
1>.\Pong.cpp(47) : error C2660: 'Collision::PixelPerfectTest': Funktion akzeptiert keine 0 Argumente
1>.\Pong.cpp(47) : error C2059: Syntaxfehler: ')'
1>.\Pong.cpp(48) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'


Die .h Datei von hier: http://www.sfml-dev.org/wiki/en/sources/…ision_detection Habe ich auch in mein Projekt eingefügt.
Oder ist das ganz verkehrt?

Lerikson

Alter Hase

Beiträge: 412

Wohnort: nördlich von Hamburg

Beruf: Schüler

  • Private Nachricht senden

7

28.10.2009, 17:17

wenn ich mich nicht irre hast du auf jeden Fall schon einmal eine Klammer ')' vergessen!

Edit: Also bei der if-Abfrage am Ende, denn Ich seh zawr 2 offene aber nur eine geschlossene Klammer beim if
Errare est humanum. -Windows ist menschlich ;-)

Stazer

Alter Hase

Beiträge: 468

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

8

28.10.2009, 17:19

if ( Collision::PixelPerfectTest ( Paddel , Ball, NULL) != false )
{
//....
}
so sollte das klappen

9

28.10.2009, 18:09

Jetzt kommt dieser Fehler:

Zitat

1>Pong.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: static bool __cdecl Collision::PixelPerfectTest(class sf::Sprite const &,class sf::Sprite const &,unsigned char)" (?PixelPerfectTest@Collision@@SA_NABVSprite@sf@@0E@Z)".
1>C:\Users\User\Desktop\Pong\Release\Pong.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.


Includet sind:

C-/C++-Quelltext

1
2
3
#include <SFML/Graphics.hpp>
#include <iostream>
#include "Collision.h"


und Zusätzliche Abhängigkeiten:

C-/C++-Quelltext

1
sfml-graphics.lib sfml-window.lib sfml-system.lib


Als ich gegoogelt hab bin ich hier gelandet:
https://www.spieleprogrammierer.de/phpBB…er=asc&start=15

Da wurde geschrieben das er ins Projekt einbinden musste,
aber was? Die Collision.h hab ich ja schon eingebunden.
Und den Rest mit SFML_DYNAMIC; WIN32; _CONSOLE; hab ich
auch.

10

28.10.2009, 19:22

hast du collision.h und collision.cpp auch in dein Projekt eingebunden, sprich werden die mitkompiliert?

So Far...

Laguna

Werbeanzeige