Hallo!
Ich habe ein kleines Problem mit Sprites. Der Sprite soll wenn er nach Oben geht seine Größe verändern und kleiner werden, so das ein "3d" Effekt ensteht. Und natürlich wieder größer werden wenn er nach Unten "Vorne" kommt. Ich weis das es mit ZoomSprite geht, aber irgendwie sieht das bei mir nicht sauber aus. Darum habe ich mal in den Quelltext das Zoomen rausgelassen, in der Hoffnung das einer von euch vielleicht eine saubere Animation hin bekommt.
hemm auch wenn das anderes herum ist meinst du das ?
denn leider weiß ich nicht was du mit sauber meinst.... evtl. hilft´s ja trozdem
ps: warum machst du das ganze eigentlich nicht in 3 d ? desweiteren wenn ich mich nicht vertue wird es besser wenn es kein kreis ist sondern eine ei form ist ...
InitSprite()
InitKeyboard()
;hir habe ich auch etwas gändert ...
OpenScreen(640,480,32,"",#PB_Screen_NoSynchronization)
SetFrameRate(160)
Sprite=CreateSprite(#PB_Any,200,100)
StartDrawing(SpriteOutput(Sprite))
Box(0,0,SpriteWidth(Sprite),SpriteHeight(Sprite),RGB(255,0,0))
StopDrawing()
Grad = 0
Mittelpunkt_x = 640/2
Mittelpunkt_y = 480/2
Abstand_x = 170
Abstand_y = 170
; orgnial gröse auslesen (damit du nicht dynamisch weite das ganze nutzen kannst... und nicht die zahlen nutezen must von 200 zu 100)
o_SpriteWidth=SpriteWidth(Sprite)
o_SpriteHeight=SpriteHeight(Sprite)
Repeat
ExamineKeyboard()
ClearScreen(RGB(0,0,0))
If Grad >0
Grad = Grad - 1
Else
Grad = 360
EndIf
Rota_x = (Abstand_x * Cos(Grad * (2*#PI/360)))
Pos_x = Mittelpunkt_x + Rota_x
Rota_y = (Abstand_y * Sin(Grad * (2*#PI/360)))
Pos_y = Mittelpunkt_y + Rota_y
;berechnung des faktors des zomms und der veränderung bei jeder schleife neu berehnet evtl musst du die werte anpassen...
faktor=((ScreenHeight()/2)-Pos_y)/2
Debug faktor
ZoomSprite(Sprite, o_SpriteWidth+(faktor), o_SpriteHeight+(faktor))
If facktor>0
Delay(facktor)
EndIf
DisplayTransparentSprite(Sprite, Pos_x - SpriteWidth(Sprite)/2 , Pos_y - SpriteHeight(Sprite)/2 )
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)