Naja, so wie ich das nachgebaut hab, find ich es eigentlich zu Simpel für´s CodeArchiv, sind ja nur 3 Vorberechnete Bilder, also ich hab´s so gemacht:
Code: Alles auswählen
InitSprite()
InitSprite3D()
InitKeyboard()
InitMouse()
Procedure.f Gsin(winkel.f)
preturn.f=Sin(winkel*(2*3.14159265/360))
ProcedureReturn preturn
EndProcedure
Procedure.f Gcos(winkel.f)
preturn.f=Cos(winkel*(2*3.14159265/360))
ProcedureReturn preturn
EndProcedure
Procedure DisplayRGBFlare(x,y,red,green,blue,angle)
Sprite3DBlendingMode(5,7)
RotateSprite3D(1,angle,0)
RotateSprite3D(2,angle,0)
RotateSprite3D(3,angle,0)
DisplaySprite3D(1,x,y,red)
DisplaySprite3D(2,x,y,green)
DisplaySprite3D(3,x,y,blue)
EndProcedure
OpenScreen(1024,768,32,"test")
LoadSprite(0,"gfx\ray.bmp")
LoadSprite(1,"gfx\nova_red.bmp",#PB_Sprite_Texture)
LoadSprite(2,"gfx\nova_green.bmp",#PB_Sprite_Texture)
LoadSprite(3,"gfx\nova_blue.bmp",#PB_Sprite_Texture)
CreateSprite3D(1,1)
CreateSprite3D(2,2)
CreateSprite3D(3,3)
DisplaySprite(0,0,0)
Width =SpriteWidth(0)
Sprite3DQuality(1)
MouseLocate(300,300)
Repeat
FlipBuffers(0)
ExamineMouse()
ExamineKeyboard()
ClearScreen(0,0,0)
If x.f<360
x+0.1
Else
x=0
EndIf
Start3D()
If KeyboardPushed(#PB_Key_Q) And red<255
red+1
ElseIf KeyboardPushed(#PB_Key_A) And red>0
red-1
EndIf
If KeyboardPushed(#PB_Key_W) And green<255
green+1
ElseIf KeyboardPushed(#PB_Key_S) And green>0
green-1
EndIf
If KeyboardPushed(#PB_Key_E) And blue<255
blue+1
ElseIf KeyboardPushed(#PB_Key_D) And blue>0
blue-1
EndIf
DisplayRGBFlare(TargetX,TargetY,red,green,blue,x)
DisplayRGBFlare(TargetX,TargetY,red,green,blue,360-x)
Stop3D()
StartDrawing(ScreenOutput())
Locate(1,1)
DrawText("Red:" +Str(red)+ " Green:" +Str(green)+" Blue:"+Str(blue))
StopDrawing()
TargetX=MouseX()
TargetY=MouseY()
Until KeyboardPushed(#PB_Key_Escape)
schneller ist´s natürlich, wen man DisplayRGBFlare( nur 1* aufruft und dafür in der Procedure das hier macht
Code: Alles auswählen
Sprite3DBlendingMode(5,7)
RotateSprite3D(1,angle,0)
RotateSprite3D(2,0,0)
RotateSprite3D(3,360-angle,0)
DisplaySprite3D(1,x,y,red)
DisplaySprite3D(2,x,y,green)
DisplaySprite3D(3,x,y,blue)
Gibt einen hübschen *fast* Zufallsfarbton - Effekt
(ich weiß aber nicht´s ob´s dllfreak genau so gelöst hat)
Achja, hier noch die bmps (wow, lassen die sich gut packen!)
http://mitglied.lycos.de/benpicco/loade ... ad=gfx.rar