Deutsch
Forum

Sprites im Hintergrund aufbauen

 
Hallo Frank
Hast du vielleicht eine Idee wie ich eine Anzahl von Sprites im Hintergrund aufbauen und dann gleichzeitig auf dem Schirm
bringen kann.
Habs bisher probiert mit:

Mcls 1024,768
Startpaint -1
Schleife
InitSprite .....
SetBackAutoCollision ...
SpriteToHDC ....
SetSpriteFixMode ...
EndeSchleife
Endpaint
Habs noch ein bisserl herumprobiert, aber es kommt immer Blödsinn raus. Irgendwie fehlt mir hier der Funken.

Gruß Thomas
 
20.04.2004  
 



Hallo Thomas,

Frank wurde am Mittwoch operiert und hat sich seit dem noch nicht zurück gemeldet (ich hoffe mal es geht im Gut !).

Zu deinem Problem: Ich schätze mal die Grafiken im Hintergrund aufbauen wird nicht das Problem sein, sondern die ganzen Sprites in der Schleife erstellen zulassen. Die Hürde hier liegt in den Handles, da man ja keine variablen Variablennamen benutzen kann. Die ablösung sollte hier eine Bereichsvariable schaffen, in der schleife das ergebnis von @initsprite... schön der Reihe nach in die Bereichsvariable kopieren und im nachhinein alle rauskopieren. Ok, ist natürlich auch nicht das wahre aber anders geht es wohl leider nicht.

Moritz
 
20.04.2004  
 



Hallo Moritz
<Frank wurde am Mittwoch operiert und hat sich seit dem noch nicht zurück gemeldet (ich hoffe mal es geht im Gut !).>
Hab ich gar nicht gewusst, wünsch im aber mal gute Besserung.

Ich verwende für die Spritehandles Bereichsvariablen (geht genauso gut mit Arrays), das ist nicht mein Problem. Will die Sprites gemeinsam auf dem Bildschirm bringen, vielleicht auch mit Semitrans oder anderen Einblendmöglichkeiten.
Gruß Thomas
 
20.04.2004  
 



Hallo,

bin wieder zusammengeflickt und gutgelaunt )))

Thomas, bau doch einfach die Sprites außerhalb des Bildschirms auf (z.B. horizontale Position minus 2000) und positioniere nachher alle Sprites wieder um 2000 Pixel nach rechts. Das geht gut in einer Schleife mit:

...
x&=GetSpriteX(handle&)+2000
y&=GetSpriteY(handle&)
SetSpritePos(handle&,x&,y&,x&,y&)
...

Diese Methode ist sogar schneller, als alle Sprites sofort auf den Bildschirm zu setzten, weil Sprites, die momentan nicht sichtbar sind, gar nicht gezeichnet werden...

Dank euch für die Genesungs-Wünsche !!!

Gruß,
Frank (nicht totzukriegen)
 
20.04.2004  
 



Hallo Frank
Freut mich daß du nicht totzukriegen bist.
Das mit den Sprites auserhalb des Bildschirms aufbauen klingt gut, muß ich dann gleich ausprobieren.
Mit einblenden von Sprites wirds wohl nicht so einfach gehen.
Gruß Thomas
 
20.04.2004  
 



Hallo,

nein, nicht ganz so einfach, möglich ist es aber.
Du mußt direkt die Spritegrafiken mit grafischen Effekten versehen.
Vielleicht komm ich ja jetzt irgendwann mal dazu, zu diesem Thema einen Beispielsource zu schreiben...

Gruß, Frank
 
20.04.2004  
 



Hallo Frank
Habs ausprobiert mit den Sprites auserhalb des Bildschirm aufzubauen.
Unter normalen Umständen werden die Sprites dadurch schneller angezeigt (Abstand ist zwischen den Sprites ist geringer) aber die Cpu Auslastung steigt enorm da noch alle Sprite aktiv sind (Setspritefixmode verlangsamt ja wieder das Ganze)
Hab dann beim Testen noch ein Programm laufen gehabt das ganz schön die Cpu im Anspruch nimmt. Dann hats ca. 20 Sekunden gebraucht bis die Sprites am Bildschirm waren. Habs dann wieder wie gehabt probiert, und da war keine Verlangsamung zu erkennen.
Die Erkenntniss kam bei der Prf Datei. Als Exe haben beide ohne Verzögerung funktioniert.
Gruß Thomas
 
20.04.2004  
 



Hallo Thomas,

ok.
Was macht dein Prf-Code denn in dieser Zeit? In einer Warteschleife verharren? Wenn ja, bau mal ein Sleep 5 mit in die Warteschleife ein, dann wird die CPU Belastung deutlich geringer.
Für das Clipping der Sprites ist nur Windows zuständig. ProSpeed kopiert ein Sprite auch, wenn es am Bildschirm nicht sichtbar ist, aber Windows akzeptiert den Kopierbefehl nur dann, wenn das Sprite auch sichtbar ist.

Gruß, Frank
 
20.04.2004  
 



Hallo Frank

Hier nochmal zur Erklärung:

Methode1:

Schleifeanfang
InitSprite (.....)
Spritetohdc
SetSpriteFixMode(...1)
SchleifeEnde

Der Bildschirmaufbau geht eigentlich recht zügig (als Prf 1/2 sekunde bis 1 Sekunde und als Exe etwas weniger.

Methode2:

Schleifeanfang
InitSprite (.....) auserhalb des Bildschirm
SchleifeEnde

Schleifenanfang
SetSpritePos auf richtige Position
SchleifenEnde

Schleifenanfang
Spritetohdc
SetSpriteFixMode(...1)
Schleifendende

Bedingt durch die 2. Schleife (bei der 1. bin ich mir nicht sicher) steigt die Cpu Auslastung gewaltig. Läuft ein Programm in Hintergrund das die Cpu stark belastet (bei mir wars NetAnts, ist ein DownloadManager) hat sich der Aufbau vom ersten Sprite bis zum letzten gute 20 Sekunden gebraucht (das war bei der Prf Datei, mit der Exe weniger als 1/2 Sekunde)
Ich hab eigentich einen schnellen Pc. Soll mit einem langsameren Pc auch zurechtkommen.
Wenn ich hier die 3 Schleife weglassen würd und Sprittohdc und SetSpriteFixMode in die 2 Schleife einbauen würd, hab ich eigentlich nicht viel Zeitgewinn beim Aufbau der Sprites.

Mein Programm verharrt nicht irgendwo in einer Warteschleife.
Wenn der Spriteaufbau geschafft ist in Metode 2, ist die Cpu Auslastung eh wieder normal (bedingt durch setspritefixmode 1)

Ich wollt halt doch den Bildschirmaufbau beschleunigen. Ich glaub ich werd lieber bei Methode 1 bleiben
Gruß Thomas
 
20.04.2004  
 



Hi,

na klar, SpriteToHDC() ist verantwortlich...

Gruß, Frank
 
20.04.2004  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

5.540 Betrachtungen

Unbenanntvor 0 min.
Jochen Roxlau24.03.2015
Erfurt15.07.2011

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

unbekannt (10x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie