Ich bin grad an einem Spiel und stelle mir wie so oft die Frage:
Gibt es einen Befehl, bei dem überprüft wird, ob sich zwei Sprites schneiden aber ohne x und y werte anzugeben?
Oder eine Umschreibung oder so würde mir schon ziemlich weiter helfen...!
SpriteCollision ohne feste Koordinaten?
- Little Progger
- Beiträge: 43
- Registriert: 21.04.2010 10:05
- Computerausstattung: 2,8 gHz Dual core
Geforce 9800GT Green Edition
500GB SATA - Wohnort: Daheim
- Kontaktdaten:
Re: SpriteCollision ohne feste Koordinaten?
Natürlich nicht. Wie soll eine Kollision geprüft werden, wenn die Positionen der Sprites nicht bekannt sind?Little Progger hat geschrieben:Ich bin grad an einem Spiel und stelle mir wie so oft die Frage:
Gibt es einen Befehl, bei dem überprüft wird, ob sich zwei Sprites schneiden aber ohne x und y werte anzugeben?
Oder eine Umschreibung oder so würde mir schon ziemlich weiter helfen...!
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!

Re: SpriteCollision ohne feste Koordinaten?
Jo gibt es:
Wenn die Position der Sprites nicht bekannt ist, schneiden sie sich nicht, ganz einfach:
Ne, ganz ehrlich, verstehe auch nicht wie das gehen soll, bzw. was du meinst ...
Wenn die Position der Sprites nicht bekannt ist, schneiden sie sich nicht, ganz einfach:
Code: Alles auswählen
Procedure SpriteCollisionWithoutPosition(Sprite1, Sprite2)
ProcedureReturn #False
EndProcedure
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- Little Progger
- Beiträge: 43
- Registriert: 21.04.2010 10:05
- Computerausstattung: 2,8 gHz Dual core
Geforce 9800GT Green Edition
500GB SATA - Wohnort: Daheim
- Kontaktdaten:
Re: SpriteCollision ohne feste Koordinaten?
Ich habe ne Prozedur geschrieben, in der man Wände erstellen kann. Jetzt hab ich ne Figur und die soll bei der Wand stehen bleiben. Die Wand besteht aus kleinen Sprites, die aber alle gleich sind. Nur weiß ich nich so genau, wie ich nun die Position dieser kleinen Sprites herrausfinden soll.
edit: hier mal die Prozeduren:
edit: hier mal die Prozeduren:
Code: Alles auswählen
Global Gx.f ;Damit der Bildschirm verschoben werden kann und die
Global Gy.f ;Bilder an der gleichen Stelle stehen bleiben
Structure boden
x.f
y.f
EndStructure
Global NewList boden.boden()
Procedure Findboden(x,y)
ResetList(boden())
While NextElement(boden())
If boden()\x+Gx=x And boden()\y+GY=y
Goto Ende2
EndIf
Wend
ProcedureReturn 0
Ende2:
ProcedureReturn 1
EndProcedure
Procedure addboden(x,y)
If MouseButton(1) And ListSize(boden())>0 And Findboden((Round(MouseX()/800*32,1)*25)-30,(Round(MouseY()/600*24,1)*25)-30)=0
AddElement(boden())
boden()\x=x-Gx
boden()\y=y-Gy
ElseIf ListSize(boden())=0
AddElement(boden())
boden()\x=x
boden()\y=y
EndIf
EndProcedure
Procedure deleteboden(x,y)
If MouseButton(2) And Findboden((Round(MouseX()/800*32,1)*25)-30,(Round(MouseY()/600*24,1)*25)-30)
DeleteElement(boden())
EndIf
EndProcedure
Procedure showboden()
ResetList(boden())
While NextElement(boden())
If boden()\x+gx>-25 And boden()\x+gx<801 And boden()\y+gy>-25 And boden()\y+gy<601
DisplayTransparentSprite(57,boden()\x+Gx,boden()\y+Gy)
EndIf
Wend
EndProcedure
Re: SpriteCollision ohne feste Koordinaten?

Na die Position der kleinen Sprites ist natürlich da, wo du sie auch DisplayTransparentSprite() anwenden würdest, dort gibst du doch auch x, y an ...
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr