Hallo Leute, ich habe vor kurzem mit 3DSprites herumexperimentiert und auf ein Pinball-ähnliches Programm gekommen. Ich habe einen Sprite, der seine Drehrichtung anpassen soll, wie er auf eine Wand (in meinem Fall der Bildschirmrand) auftrifft. Mein verkürzter Code:
Code: Alles auswählen
InitSprite():InitKeyboard():InitSprite3D():ExamineKeyboard()
OpenScreen(1024, 768, 32, "Vortex Force")
LoadSprite(0, "grün.bmp", #PB_Sprite_Texture)
CreateSprite3D(0,0)
Sprite3DQuality(0):TransparentSpriteColor(0,0,0,0)
zx0=1:zy0=1:x0=Random(1000):y0=Random(744)
Repeat
FlipBuffers():ClearScreen(0,0,0)
Rotationswinkel1+1
If x0<0 And zx0<0:zx0+2:ElseIf x0>1000 And zx0>0:zx0-2:EndIf:x0+zx0*6
If y0<0 And zy0<0:zy0+2:ElseIf y0>744 And zy0>0:zy0-2:EndIf:y0+zy0*4
Start3D()
DisplaySprite3D(0,x0,y0,255)
Stop3D()
RotateSprite3D(0,Rotationswinkel1,0)
Until KeyboardPushed(#PB_Key_Escape)
End
Jetzt habe ich das Problem, dass sich der Sprite immer nur in eine Richtung dreht. Wenn er jetzt sagen wir nach rechts-oben auf eine horizontale Wand trifft, soll er sich gegen den Uhrzeigersinn drehen. Ich hoffe, das ist nicht zu kompliziert zu verstehen

. Und nochwas, wie kann ich per API die Desktopweite und -höhe bestimmen? IN 3.30 scheints das nicht zu geben... Bitte benutzt für Antworten die Variablen in meinem Code, da er vollständig noch länger und komplizierter ist

.
Danke schonmal

.