Tileset-Kollision
Übersicht

sprimeBetreff: Tileset-Kollision |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo Leute.. Ich habe mal eine kleine Frage.. Ich habe in meinem Jump'n'run spiel als Tiles einige Stacheln eingebaut, an denen der spieler sterben soll, wenn er sie berührt.. wie mach ich das jetz mit der kollision? | ||
![]() |
darth |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
eine Kollision erreichst du, indem du die Koordinaten des Spielers relativ zu denen der Stacheln abgleichst und überprüfst, ob sie sich überschneiden. Wenn ja, dann kannst du deinen Spieler pfählen oder auf andere Weise grausam umbringen. Ich wünsche dir viel Spass beim weiteren programmieren, mfg, Darth |
||
Diese Signatur ist leer. |
sprime |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also muss ich jede kollision von allen 15 stacheln einzeln abfragen ?? geht das nicht irgentwie einfacher ? | ||
![]() |
darth |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo nochmal,
du könntest versuchen die 15 Stacheln in ein einzelnes Polygon zu bringen, dafür müssten sie allerdings in einem zusammenhängenden Gebiet sein (d.h du kannst von jedem Stachel zu jedem Stachel einen Weg bilden, ohne das Gebiet der Stacheln zu verlassen). Dann könntest du die Spielerkoordinaten mit diesem Polygon schneiden. Allerdings ist das eine ziemlich dämliche Idee. Das würde nämlich dazu führen, dass dein System ziemlich fix ist, und wenn du im Nachhinein etwas ändern willst, hast du Probleme. Es empfiehlt sich daher, die Stacheln in einem einheitlichen Format zu speichern (Type, Array, Bank) und dann - ja! - für jede der 15 Stacheln den Kollisionscode aufzurufen. Weiterhin viel Spass und viel Erfolg mit deinem Spiel, mfg, Darth |
||
Diese Signatur ist leer. |
![]() |
orpheus_2003 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oder du prüfst nur die Tiles.
Die Stachlen müssten doch immer das gleiche sein. Dann prüfst du, ob der Player mit dem Tile kollidiert Code: [AUSKLAPPEN] ;x2: Playerx/32 + Mapx ;Y2: Playery/32 + Mapy ; Stachlen If MaptileX(X2,Y2)=17 And MaptileY(X2,Y2)=1 Then Lifes=Lifes-1 So mach ich das. Geht schnell und gut. |
||
GazerStar - the beginning
http://gazerstar.lexigame.de/ Wizard (Worktitel) http://wizard.lexigame.de |
sprime |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
orpheus_2003 hat Folgendes geschrieben: Oder du prüfst nur die Tiles.
Die Stachlen müssten doch immer das gleiche sein. Dann prüfst du, ob der Player mit dem Tile kollidiert Code: [AUSKLAPPEN] ;x2: Playerx/32 + Mapx ;Y2: Playery/32 + Mapy ; Stachlen If MaptileX(X2,Y2)=17 And MaptileY(X2,Y2)=1 Then Lifes=Lifes-1 So mach ich das. Geht schnell und gut. sorry, dass habe ich nich ganz verstanden ^^ |
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Er meint, dass du immer das Tile unter dem Spieler überprüfen sollst und falls es ein Stachel-Tile ist, ziehst du ein Leben ab. | ||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
orpheus_2003 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bischen einfacher....
Code: [AUSKLAPPEN] ;x2: Playerx/32 + Mapx (hier musst du zuerst den Player / 32 zählen, wenn dein Tile 32 Pixel gross ist) ;(MapX ist die Verschiebung der Map wenn du eine grössere hast. Sonst weglassen) ;Y2: Playery/32 + Mapy (gleich in Y) ; Stachlen (Beispiel, Je nachdem was du für Felder hast für die Tiles.) If TileStachel(x,y)=1 Then Lifes=Lifes-1 |
||
GazerStar - the beginning
http://gazerstar.lexigame.de/ Wizard (Worktitel) http://wizard.lexigame.de |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group