Animierte Sprites/Types schlucken (zu viel?) FPS
Übersicht
BlitzBasic
Beginners-Corner
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
BlitzBasic
Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group
