Seite 1 von 1
SpecialFX()
Verfasst: 16.11.2006 22:01
von Janno
habe ein problem mit dem specialfx() befehl
sobald ich den specialfx() befehl einbaue läuft alles was sich bewegen soll langsamer ab...
hier ein beispiel:
Code: Alles auswählen
InitSprite()
InitKeyboard()
OpenScreen(800,600,16,"")
LoadSprite(1,"Bilder\Cursor.bmp",0)
LoadSprite(2,"Bilder\Back.bmp",0)
Cursorx = 377
Cursory = 275
Repeat
FlipBuffers()
StartSpecialFX()
ClearScreen(0)
ExamineKeyboard()
DisplayTranslucentSprite(2,0,0,110)
DisplayTransparentSprite(1,Cursorx,Cursory)
If KeyboardPushed(#PB_Key_Left)
Cursorx-4
ElseIf KeyboardPushed(#PB_Key_Right)
Cursorx+4
EndIf
If KeyboardPushed(#PB_Key_Up)
Cursory-4
ElseIf KeyboardPushed(#PB_Key_Down)
Cursory+4
EndIf
StopSpecialFX()
Until KeyboardPushed(#PB_Key_Escape)
Was mache ich falsch?
Verfasst: 17.11.2006 08:34
von #NULL
die keyboard-sachen haben in dem block eigentlich nichts zu suchen. der perfomance einbruch wird einfach an der größe des sprites 2 liegen. dem namen nach ist es ja wohl sehr groß. wieso willst du denn den hintergund als TransLucidSprite darstellen?, das ist sehr ungünstig.
Code: Alles auswählen
InitSprite()
InitKeyboard()
OpenScreen(800,600,32,"")
;LoadSprite(1,"Bilder\Cursor.bmp",0)
;LoadSprite(2,"Bilder\Back.bmp",0)
LoadSprite(1,"c:\test\test32.bmp",0)
;LoadSprite(2,"c:\test\test32.bmp",0)
CreateSprite(2, 800,600,0)
Cursorx = 377
Cursory = 275
Repeat
FlipBuffers()
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Left)
Cursorx-4
ElseIf KeyboardPushed(#PB_Key_Right)
Cursorx+4
EndIf
If KeyboardPushed(#PB_Key_Up)
Cursory-4
ElseIf KeyboardPushed(#PB_Key_Down)
Cursory+4
EndIf
StartSpecialFX()
ClearScreen(0)
DisplayTranslucentSprite(2,0,0,110)
DisplayTransparentSprite(1,Cursorx,Cursory)
StopSpecialFX()
FR+1
If ElapsedMilliseconds()>FRt
FR$=Str(FR)
FR=0
FRt=ElapsedMilliseconds()+1000
EndIf
StartDrawing(ScreenOutput())
DrawText(100,100,FR$,$00ff00,0)
StopDrawing()
Until KeyboardPushed(#PB_Key_Escape)
Verfasst: 17.11.2006 17:04
von Janno
#NULL hat geschrieben: wieso willst du denn den hintergund als TransLucidSprite darstellen?, das ist sehr ungünstig.
war nur ein beispiel um mein problem zu zeigen
und dein code hilft mir nicht wirklich... ist alles wie vorher
Verfasst: 17.11.2006 17:32
von #NULL
hab's

: du mußt natürlich bei load die #PB_Sprite_Memory -flag setzen. [ich hatte SpecialFX bisher noch nicht benutzt]
Code: Alles auswählen
InitSprite()
InitKeyboard()
OpenScreen(800,600,32,"")
;LoadSprite(1,"Bilder\Cursor.bmp",0)
;LoadSprite(2,"Bilder\Back.bmp",0)
LoadSprite(1,"c:\test\test32.bmp",#PB_Sprite_Memory)
;LoadSprite(2,"c:\test\test32.bmp",#PB_Sprite_Memory)
CreateSprite(2, 800,600,#PB_Sprite_Memory)
Cursorx = 377
Cursory = 275
Repeat
FlipBuffers()
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Left)
Cursorx-4
ElseIf KeyboardPushed(#PB_Key_Right)
Cursorx+4
EndIf
If KeyboardPushed(#PB_Key_Up)
Cursory-4
ElseIf KeyboardPushed(#PB_Key_Down)
Cursory+4
EndIf
StartSpecialFX()
ClearScreen(0)
DisplayTranslucentSprite(2,0,0, 255)
StopSpecialFX()
DisplayTransparentSprite(1,Cursorx,Cursory)
FR+1
If ElapsedMilliseconds()>FRt
FR$=Str(FR)
FR=0
FRt=ElapsedMilliseconds()+1000
EndIf
StartDrawing(ScreenOutput())
DrawText(100,100,FR$,$00ff00,0)
StopDrawing()
Until KeyboardPushed(#PB_Key_Escape)
Verfasst: 19.11.2006 12:28
von Janno
stimmt.... danke!! jetz funzts