Autor Beitrag
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: So 09.03.03 14:20 
wieso ist das bei euch alles so schnell?

Mit dynamischen Charakter meine ich, daß ein TBitmap am Anfang klein ist. Wenn du dann was reinlädtst, verändert sich die Größe dieses Speicherbereiches, weil da ja nun nicht nur der Header und die properties drin sind, sonsdern nebenbei auch noch ein paar bunte Pixel. Dadurch verändert sich die Größe beim Laden eines Bildes: dynamisch im Sinne der Definition.
Irgendwo hier wurde schonmal beschrieben, daß der alte Speicherbereich, in den das Bitmap ohne Pixel noch reingepasst hat, nicht wieder freigegeben wird. So. Ein array ist im Speicher immer in "einem Stück". Da du aber nie alle Bilder gleichzeitig laden kannst, sondern immer nur nacheinander, würdest du erst das array für's erste Bild vegrößern (vergrößern nicht die anzahl an Elementen, aber die Größe des verbrauchten Specihers). Dann für's zweite usw. Der Speicherbereich aus dem jeweils letzten Schritt wird nie freigegeben und bleibt unbenutzt.
Lindern kann man dieses Phänomen, indem man kein array benutzt, daß an einem Stück hängen muss, sondern einzelne TBitmap-Variablen nimmt. Ist zwar wesentlich unübersichtlicher, dafür wird aber nicht so viel Speicher verpulvert, sondern eben... weniger. Aber wenn die Bilder nicht besonders groß sind, sollte eigentlich auch ein array of TBitmap noch in meine 256 MB RAM passen...

@aya: hab' ich acuh schon bemängelt ;-P


Ach ja, das ganze Problem mit der Geschwindigkeit usw kann man lösen, indem man die Bewegung Zeitabhängig berechnet. Du lässt also einen Zähler mitlaufen und weißt, nach 1 Sekunde bewegt sich so ein Schiffchen um 10 Pixel. Jedesmal, wenn dein Programm gerade Zeit hat (OnIdle), schaut es, was bewegt werden soll und schaut auf die Uhr. Wenn erst 'ne halbe Sekunde vergangen ist, bewegt man's nur um 5 Pixel. Ist die Zeitspanne so klein, daß es weniger als ein Pixel ist, versucht man auf einem Mittelwert zu bleiben (zum Beispiel merkt man sich den letzten Wert und wartet solange, bis es sich endlich mal um einen Pixel bewegen würde). Dann läuft dein spiel von der Geschwindigkeit her überall. So werden mittlerweile eigentlich alle Spiele gesteuert, weil mittlerweile auch viel mit Zeitelementen gearbeitet wird. Nachteil: auf extrem langsamen Rechnern kann's zu Rucklern kommen - Vorteil: Wenn's läuft, läuft's richtig.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
Delphianer23 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 156



BeitragVerfasst: So 09.03.03 14:38 
@ aya, dass ist genau die Geschwindigkeit wie sie sein soll!

Ich erreiche sie allerdings schon mit einen 450mhz Rechner mit
512Mb ram ...

Warum ist es bei manchen so lahm?

Ich habe die Sounddateien doppelt, da sich der Sound überschneiden
soll. Ich habe mehere Mediaplayerkomponenten die dann gleichzeitig
spielen. Das zwei auf eine datei gleichzeitig zugreifen ist nicht
möglich.

@tommie-lie
das ist sicherlich die bessere Methode. Werd mal schauen ob ichs
umstellen kann.

Im Moment mache ich das Berechnen der Positionen über einen Timer
und das Zeichnen über onidle.
Da eigenltich jeder Rechner fähig sein müsste ein timerintervall mit
ner Berechnung ca. 50 mal in der Sekunde auszuführen sollte es
eigentlich kein prob sein. (Blöder Rechner :crying: )
torstenheinze
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 461



BeitragVerfasst: So 09.03.03 14:47 
Blutiges Elend hat folgendes geschrieben:
Ich habe die Sounddateien doppelt, da sich der Sound überschneiden
soll. Ich habe mehere Mediaplayerkomponenten die dann gleichzeitig
spielen. Das zwei auf eine datei gleichzeitig zugreifen ist nicht
möglich.


na wenn das so ist, dann mach das doch so, das du nur die sounddatei jeweils einmal in dein ziparchiv packst, und wenn du das spiel startest, dann machst du das so, dass die sounddatei so-und-so viel mal kopiert werden, wie du es willst
Delphianer23 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 156



BeitragVerfasst: So 09.03.03 15:04 
@torstenheinze
gute Idee, doch es handelt sich um sehr kleine Dateien.
Die insgesamt ungepackten Daten von 180 kb sollte jede
Festplatte verkraften. :lol:

@tommie-lie
Ich habs mal eingebaut(noch nicht in die download Version).

Aber irgendwie harmoniert das so nicht so richtig. Ich glaub ich
bleib bei meiner Variante. Ich kann mir auch nicht erklären, warum
es bei euch so komisch läuft ...


Zuletzt bearbeitet von Delphianer23 am So 09.03.03 15:41, insgesamt 1-mal bearbeitet
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: So 09.03.03 15:12 
normalerweise sollte ein Timer überall gleich schnell laufen. Ob er aber ein OnIdle dafür braucht, weiß ich nicht.

Was die Sounddateien angeht: Wieso nicht über die API abspielen? Einfach Datei in den Speicher laden und dann sooft an die Soundkarte schicken, wie man Lust dazu hat. Dürfte sogar mit PlaySound gehen, ich glaub' der nimmt auch 'n Speicherpointer an...

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
Delphianer23 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 156



BeitragVerfasst: So 09.03.03 15:59 
Das Bildschirmproblem mit dem TFT 17, liegt
glaub ich nicht am Programm sondern am Bildschim.
Die 180 kb für den Sound sind nicht so wichtig.

Dann bleibt noch die Frage warum das Spiel auf manchen Rechnern
so langsam ist.
Woran könnte es liegen?
Ist bei der neuen Version überhaupt noch vorhanden?

Mein größtes PRoblem ist das mit der Rechnerauslastung ...
Eigentlich dürfte sie jetzt behoben sein. Der Taskmanager von
WindowsXP zeigt fast gar keine Speichererweiterung für das
Spiel an. Es wird für das Spiel direkt nur 3MB verwendet ... .
Aber man weiß ja nie.

Kann das einer von euch mal an der neuen Version überprüfen?

www.8ung.at/harth/weltraum.zip
Alex
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28


D5 Epr
BeitragVerfasst: So 09.03.03 17:35 
Hab mir das Spiel nur kurz angeschaut
bei mir braucht das Schiff ca. 12 sec von links nach rechts..
Rechner: 500 Mhz W98
die Steuerung würde ich über die Pfeiltasten besser finden
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: So 09.03.03 19:09 
also deine neue Version läuft immer noch nicht, sobald ich auch nur MusicMatch laufen habe. Nur, wenn nur die Standard-Programme (meine Firewall, Webwasher, UDF-Treiber, Sidewinder-Treiber, Speichermanager, Lüftersteuerung, CPUCool) und höchstens noch der Windows Commander laufen, ist das Ding zufrieden. Mehr ist nicht drin.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: So 29.06.03 20:28 
das spiel ist nicht schlecht, nur das lachen am anfang stört mich... wäre toll wenn man das apschalten könnte...

_________________
MFG
Michael Springwald, "kann kein englisch...."