Animierte Sprites/Types schlucken (zu viel?) FPS
Übersicht

NerleBetreff: Animierte Sprites/Types schlucken (zu viel?) FPS |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mir stellt sich folgendes Problem:
Bei jedem Schuss erzeuge ich ein Type + Sprite mit animierter Textur für den Hülsenauswurf, animiere es einmal, dann wird es wieder gelöscht. Aber diese ganze Aktion kostet bereits ca. 30-70 FPS (70fps bei "Dauerfeuer", das sind etwa 1 Schuss pro Sekunde. Nach Erzeugung+6 Sekunden wird jedes einzelne jeweils wieder gelöscht)! Wißt Ihr vielleicht, was da so viele FPS schluckt? ![]() Ich habe auch schon überprüft, ob die ganze Aktion vielleicht permanent ausgeführt wird, wird sie nicht - pro Mausklick wird nur ein weiteres Sprite erzeugt. Das Type selbst: Code: [AUSKLAPPEN] Type TMovingAmmo Field model% Field start% Field frame% End Type Hier der Code um das Patronen-Type zu erzeugen (schluckt bei mir 35 FPS!) Code: [AUSKLAPPEN] ; Patronenauswurf kreeieren ammo.TMovingAmmo = NEW TMovingAmmo ammo\model = CreateSprite(Hero) ammo\frame = 0 EntityParent ammo\model,MoveDummy,0 ScaleSprite ammo\model,30,30 RotateSprite ammo\model,winkel+180 RotateEntity ammo\model,0,winkel,0 MoveEntity ammo\model,-35,-12,-10 EntityParent ammo\model,0 Und hier die Animations-Function dazu (kostet nochmal ca. 35 FPS ![]() Code: [AUSKLAPPEN] For shot.TMovingAmmo = EACH TMovingAmmo If shot\frame <51 Then If millisecs()>shot\start+10 Then shot\frame = shot\frame + 1 EntityTexture shot\model,BulletMovePumpgun_1,shot\frame shot\start=millisecs() EndIf Else If shot\frame =51 Then If millisecs()>shot\start+6000 FreeEntity shot\model DELETE shot.TMovingAmmo EndIf EndIf Next |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
3 Minuten forensuche hätte dir die antwort zwar gegeben aber:
Man kann mit Sprites nicht blödsinnig rumfeuern. Jedes Sprite erzeugt eine eigene Surface. 800-1000 Surfaces und selbst eine gute Karte geht in die Knie, bei schwachen Karten reichen schon 300-400 Surfaces um einen nicht unerheblichen Einbruch zu erzeugen in der Performance. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Nerle |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ah.. Stichwort "Single Surface" ![]() Danke für den Hinweis, Dreamora, stand da jetzt mal wieder auf dem Schlauch ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group