Das offizielle Klomanager-Forum
DeutschEnglish RegistrierenAnmeldenHilfe/FAQsDisclaimerStatistikKalenderSuche
Klomanager - Hochgewürgt Topfree.de Impressum

Das offizielle Klomanager-Forum » Gerüchteküche » Neuer Screenshot von Klomanager II » Themenansicht

Autor
Themenseiten: Druckversion
040
02.09.2004, 08:40 Uhr
schrottXXL
Gebranntes Kind
Parzellenbesitzer

Avatar von schrottXXL

Beiträge: 1459
Dabei seit:
07.10.2003, 19:53 Uhr
...
Also schneller krieg ichs wirklich nich hin
Was für lahme Kisten habt ihr denn da alle?
-----
Bleib cool man(n)!
Und lass dich nicht durch Philipp's Gespamme aus der Ruhe bringen ...
nach oben
Profil || Privatnachricht || Suche Zitatantwort || Editieren || Löschen || IP
041
02.09.2004, 11:22 Uhr
Amaranth
Mitglied
Parzellenbesitzer



Beiträge: 1185
Dabei seit:
08.05.2003, 21:15 Uhr
@zoidberg:

Ich hab ein rundum verschlie�bares Fa� genommen, in den Deckel ein Loch gebohrt, dann den Gärspund eingeführt und das ganze dann mit Uhu abgedichtet.

Scheint zu funktionieren.
-----
-- under construction ---
nach oben
Profil || Privatnachricht || Suche Zitatantwort || Editieren || Löschen || IP
042
02.09.2004, 18:31 Uhr
zoidberg
Mitglied
Sanitärmeister

Avatar von zoidberg

Beiträge: 661
Dabei seit:
30.04.2003, 18:21 Uhr
@ Schnellhorn: Um diesen Thread nicht mit noch mehr themenfernem Kram zu belasten, hab ich unter "Toilettenplausch" einen neuen eröffnet.
Dieser Beitrag wurde am 02.09.2004 um 18:32 Uhr von zoidberg verändert
nach oben
Profil || Privatnachricht || Suche Zitatantwort || Editieren || Löschen || IP
043
02.09.2004, 22:17 Uhr
Ronald Wendt
Administrator
Schüsselkönig

Avatar von Ronald Wendt

Beiträge: 2510
Dabei seit:
15.04.2003, 19:28 Uhr
Hallo,


naja dafür ist es wohl mal wieder zu spät...

@Zoidberg: Na sind Dir mal wieder Zufallsereignisse passiert...?



Ronald Wendt
-----
Klomanager für PC gibts hier: Klomanager - Hochgewürgt

Retrofreaks gehen auf www.atari-ste.org
nach oben
Profil || Privatnachricht || Suche Zitatantwort || Editieren || Löschen || IP
044
02.09.2004, 23:01 Uhr
Matthias Hofmann
Administrator
Bürstenkaiser

Avatar von Matthias Hofmann
Themenstarter
Beiträge: 4133
Dabei seit:
15.04.2003, 23:00 Uhr

Zitat:
schrottXXL postete
...
Also schneller krieg ichs wirklich nich hin
Was für lahme Kisten habt ihr denn da alle?

Also ich hab 750 MHz mit 128 MB Ram, 32 MB Grafikspeicher. Und sag jetzt nicht, da� ist zu wenig für Dein Spiel, sonst hetz ich den Ralf auf Dich...

Als Ihr alle noch ein Vitamin im Orangensaft Eures Vaters wart, da gab es einen Computer namens C64. Der hatte etwa 1 (!) MHz und 64 KB Speicher (ja KB, nicht MB!) Das war aber kein Hinternis um dutzende von Sprites gleichzeitig darzustellen, und auch bei Kartoffelpüree ist ein bi�chen mehr los...

�ber Visual Basic kann ich nicht viel sagen, aber ich kann mir kaum vorstellen, da� das soooo langsam ist. Ich hab im DirectX SDK schon Beispiele für 3D Demos gesehen, die in Visual Basic programmiert waren - was zum Geier machst Du da also eigentlich? Hast Du den Schwamm vielleicht in Echtzeit skaliert? Man kann oft sehr viel Zeit sparen, indem man sowas vorberechnet!
-----
Matthias Hofmann | Klomanager Deluxe jetzt bei Gamesload kaufen
nach oben
Profil || Privatnachricht || Suche Zitatantwort || Editieren || Löschen || IP
045
02.09.2004, 23:34 Uhr
Amaranth
Mitglied
Parzellenbesitzer



Beiträge: 1185
Dabei seit:
08.05.2003, 21:15 Uhr

Zitat:
Und sag jetzt nicht, da� ist zu wenig für Dein Spiel, sonst hetz ich den Ralf auf Dich...

Au ja, das will ich mal sehen bzw. lesen.



Zitat:
�ber Visual Basic kann ich nicht viel sagen, aber ich kann mir kaum vorstellen, da� das soooo langsam ist. Ich hab im DirectX SDK schon Beispiele für 3D Demos gesehen, die in Visual Basic programmiert waren - was zum Geier machst Du da also eigentlich?

Gar kein DirectX verwenden sondern ein Bild als Image-Objekt im Hintergrund einfügen und das zweite ebenfalls als Bildobjekt mittels änderung der Eigenschaften Left und Height des Objektes mittels einer for-Schleife oder sowas in der Art darüber ziehen. So stelle ich mir das zumindest vor.

@sxxl: Bitte mal einen Screenshot und Quelltext posten, würde mich mal interessieren.
-----
-- under construction ---
nach oben
Profil || Privatnachricht || Suche Zitatantwort || Editieren || Löschen || IP
046
03.09.2004, 14:22 Uhr
schrottXXL
Gebranntes Kind
Parzellenbesitzer

Avatar von schrottXXL

Beiträge: 1459
Dabei seit:
07.10.2003, 19:53 Uhr
[quote="Matthias Hofmann"]�ber Visual Basic kann ich nicht viel sagen, aber ich kann mir kaum vorstellen, da� das soooo langsam ist. Ich hab im DirectX SDK schon Beispiele für 3D Demos gesehen, die in Visual Basic programmiert waren - was zum Geier machst Du da also eigentlich? Hast Du den Schwamm vielleicht in Echtzeit skaliert? Man kann oft sehr viel Zeit sparen, indem man sowas vorberechnet!Ehrich gesagt ... ja Hätt ich auch mal selbst drauf kommen können
Ich arbeite dran, aber das ist ein wenig aufwändig, weil ich da jetzt Picture-Boxen ohne Ende brauche ...

@Schellhornbläser:
So leicht geht das leider nicht. Wenn man ein Bild über ein anderes huschen lässt, flackert das ohne Ende, das kannste vergessen - so hab ichs vor 'nem halbem Jahr mal probiert - wäre schön einfach gewesen.

DirectX verwende ich auch nicht.

Ich muss jetzt die Bilder alle in temporäre Picture-Boxen laden und dann auf die Hintergrundspicture-Box mit dem Hintergrund draufpinseln (mit Objekt.PaintPicture). Und damit der Hitnergrund transparent ist, muss ich das bei jedem Objekt einmal mit einer S/W-Grafik und einmal mit dem richtigen machen. Transparente *.GIFs gehen nämlich nur mit Image-Boxen, nicht mit Picture-Boxen. Da kommen ewig viele Zeilen Programmcode und Picture-Boxen zusammen :rolleyes.
Und auÃ?erdem muss ich bei jeder Ã?nderung alles neu draufpinseln, weil ich nicht einzelne Objekte wieder entfernen kann.
-----
Bleib cool man(n)!
Und lass dich nicht durch Philipp's Gespamme aus der Ruhe bringen ...
nach oben
Profil || Privatnachricht || Suche Zitatantwort || Editieren || Löschen || IP
047
03.09.2004, 14:43 Uhr
Amaranth
Mitglied
Parzellenbesitzer



Beiträge: 1185
Dabei seit:
08.05.2003, 21:15 Uhr
Stell doch einfach mal den Quelltext online.
-----
-- under construction ---
nach oben
Profil || Privatnachricht || Suche Zitatantwort || Editieren || Löschen || IP
048
03.09.2004, 18:53 Uhr
Matthias Hofmann
Administrator
Bürstenkaiser

Avatar von Matthias Hofmann
Themenstarter
Beiträge: 4133
Dabei seit:
15.04.2003, 23:00 Uhr
Und wenn Du fertig bist, dann stell die neue Version gleich mal online - denn nach etwa 8 Stunden Klomanager II am Tag ist der Finke-Shooter eine willkommene Abwechslung nach Feierabend!
-----
Matthias Hofmann | Klomanager Deluxe jetzt bei Gamesload kaufen
nach oben
Profil || Privatnachricht || Suche Zitatantwort || Editieren || Löschen || IP
049
04.09.2004, 23:49 Uhr
schrottXXL
Gebranntes Kind
Parzellenbesitzer

Avatar von schrottXXL

Beiträge: 1459
Dabei seit:
07.10.2003, 19:53 Uhr
Ich bin leider erst heute abend dazu gekommen, mich um das Problem zu kümmern ... und naja ... wirklich erfolgrecih war ich bislang nicht. Vielleicht ist es ja auch einfach zu spät und ich kann nicht mehr richtig denken?

Also ... ich habe jetzt folgenden Mist zusammengeschrieben:
(dazu 10 (!) Picture-Boxen erstellt):

format_source('If firstst = 1 And FOstart.loaded = 1 Or resized = 1 And FOstart.loaded = 1 Then
PICtrf0SW.Width = PICschwamm.Width * (Val(z1) - Val(z2) * 0) * maÃ?stabX
PICtrf0SW.Height = PICschwamm.Height * (Val(z1) - Val(z2 * 0)) * maÃ?stabY
PICtrf0.Width = PICschwamm.Width * (Val(z1) - Val(z2) * 0) * maÃ?stabX
PICtrf0.Height = PICschwamm.Height * (Val(z1) - Val(z2) * 0) * maÃ?stabY
PICtrf1SW.Width = PICschwamm.Width * (Val(z1) - Val(z2)) * maÃ?stabX
PICtrf1SW.Height = PICschwamm.Height * (Val(z1) - Val(z2)) * maÃ?stabY
PICtrf1.Width = PICschwamm.Width * (Val(z1) - Val(z2)) * maÃ?stabX
PICtrf1.Height = PICschwamm.Height * (Val(z1) - Val(z2)) * maÃ?stabY
PICtrf2SW.Width = PICschwamm.Width * (Val(z1) - Val(z2) * 2) * maÃ?stabX
PICtrf2SW.Height = PICschwamm.Height * (Val(z1) - Val(z2) * 2) * maÃ?stabY
PICtrf2.Width = PICschwamm.Width * (Val(z1) - Val(z2) * 2) * maÃ?stabX
PICtrf2.Height = PICschwamm.Height * (Val(z1) - Val(z2) * 2) * maÃ?stabY
PICtrf3SW.Width = PICschwamm.Width * (Val(z1) - Val(z2) * 3) * maÃ?stabX
PICtrf3SW.Height = PICschwamm.Height * (Val(z1) - Val(z2) * 3) * maÃ?stabY
PICtrf3.Width = PICschwamm.Width * (Val(z1) - Val(z2) * 3) * maÃ?stabX
PICtrf3.Height = PICschwamm.Height * (Val(z1) - Val(z2) * 4) * maÃ?stabY
PICtrf4SW.Width = PICschwamm.Width * (Val(z1) - Val(z2) * 4) * maÃ?stabX
PICtrf4SW.Height = PICschwamm.Height * (Val(z1) - Val(z2) * 4) * maÃ?stabY
PICtrf4.Width = PICschwamm.Width * (Val(z1) - Val(z2) * 4) * maÃ?stabX
PICtrf4.Height = PICschwamm.Height * (Val(z1) - Val(z2) * 4) * maÃ?stabY

PICtrf0SW.PaintPicture PICschwammSW.Picture, 0, 0, PICschwamm.Width * (Val(z1) - Val(z2) * 0) * maÃ?stabX, PICschwamm.Height * (Val(z1) - Val(z2) * 0) * maÃ?stabY ', , , , , &H660046
PICtrf0.PaintPicture PICschwamm.Picture, 0, 0, PICschwamm.Width * (Val(z1) - Val(z2) * 0) * maÃ?stabX, PICschwamm.Height * (Val(z1) - Val(z2) * 0) * maÃ?stabY ', , , , , &H660046
PICtrf1SW.PaintPicture PICschwammSW.Picture, 0, 0, PICschwamm.Width * (Val(z1) - Val(z2)) * maÃ?stabX, PICschwamm.Height * (Val(z1) - Val(z2)) * maÃ?stabY ', , , , , &H660046
PICtrf1.PaintPicture PICschwamm.Picture, 0, 0, PICschwamm.Width * (Val(z1) - Val(z2)) * maÃ?stabX, PICschwamm.Height * (Val(z1) - Val(z2)) * maÃ?stabY ', , , , , &H660046
PICtrf2SW.PaintPicture PICschwammSW.Picture, 0, 0, PICschwamm.Width * (Val(z1) - Val(z2) * 2) * maÃ?stabX, PICschwamm.Height * (Val(z1) - Val(z2) * 2) * maÃ?stabY ', , , , , &H660046
PICtrf2.PaintPicture PICschwamm.Picture, 0, 0, PICschwamm.Width * (Val(z1) - Val(z2) * 2) * maÃ?stabX, PICschwamm.Height * (Val(z1) - Val(z2) * 2) * maÃ?stabY ', , , , , &H660046
PICtrf3SW.PaintPicture PICschwammSW.Picture, 0, 0, PICschwamm.Width * (Val(z1) - Val(z2) * 3) * maÃ?stabX, PICschwamm.Height * (Val(z1) - Val(z2) * 3) * maÃ?stabY ', , , , , &H8800C6
PICtrf3.PaintPicture PICschwamm.Picture, 0, 0, PICschwamm.Width * (Val(z1) - Val(z2) * 3) * maÃ?stabX, PICschwamm.Height * (Val(z1) - Val(z2) * 3) * maÃ?stabY ', , , , , &H660046
PICtrf4SW.PaintPicture PICschwammnassSW.Picture, 0, 0, PICschwamm.Width * (Val(z1) - Val(z2) * 4) * maÃ?stabX, PICschwamm.Height * (Val(z1) - Val(z2) * 4) * maÃ?stabY ', , , , , &H8800C6
PICtrf4.PaintPicture PICschwammnass.Picture, 0, 0, PICschwamm.Width * (Val(z1) - Val(z2) * 4) * maÃ?stabX, PICschwamm.Height * (Val(z1) - Val(z2) * 4) * maÃ?stabY ', , , , , &H660046
firstst = 0
resized = 0
End If
')und dann beim Schwammwurf:
format_source('For trf = 0 To 4
Picture1.Cls
If auflösung = 1 Then Picture1.PaintPicture PICback.Image, 0, 0, FOmain.Width, FOmain.Height
Picture1.PaintPicture Picture3.Picture, myX, myY, Picture3.Width * maÃ?stabX, Picture3.Height * maÃ?stabY, , , , , &H8800C6
Picture1.PaintPicture Picture2.Picture, myX, myY, Picture3.Width * maÃ?stabX, Picture3.Height * maÃ?stabY, , , , , &H660046
If trf < 4 Then
If trf = 0 Then
Picture1.PaintPicture PICtrf0SW.Image, klickX - 0.5 * PICschwamm.Width * maÃ?stabX * (Val(z1) - Val(z2) * 0), klickY - 0.5 * PICschwamm.Height * maÃ?stabY * (Val(z1) - Val(z2) * 0), , , , , , , &H8800C6
Picture1.PaintPicture PICtrf0.Image, klickX - 0.5 * PICschwamm.Width * maÃ?stabX * (Val(z1) - Val(z2) * 0), klickY - 0.5 * PICschwamm.Height * maÃ?stabY * (Val(z1) - Val(z2) * 0), , , , , , , &H660046
End If
If trf = 1 Then
Picture1.PaintPicture PICtrf1SW.Image, klickX - 0.5 * PICschwamm.Width * maÃ?stabX * (Val(z1) - Val(z2)), klickY - 0.5 * PICschwamm.Height * maÃ?stabY * (Val(z1) - Val(z2)), , , , , , , &H8800C6
Picture1.PaintPicture PICtrf1.Image, klickX - 0.5 * PICschwamm.Width * maÃ?stabX * (Val(z1) - Val(z2)), klickY - 0.5 * PICschwamm.Height * maÃ?stabY * (Val(z1) - Val(z2)), , , , , , , &H660046
End If
If trf = 2 Then
Picture1.PaintPicture PICtrf2SW.Image, klickX - 0.5 * PICschwamm.Width * maÃ?stabX * (Val(z1) - Val(z2) * 2), klickY - 0.5 * PICschwamm.Height * maÃ?stabY * (Val(z1) - Val(z2) * 2), , , , , , , &H8800C6
Picture1.PaintPicture PICtrf2.Image, klickX - 0.5 * PICschwamm.Width * maÃ?stabX * (Val(z1) - Val(z2) * 2), klickY - 0.5 * PICschwamm.Height * maÃ?stabY * (Val(z1) - Val(z2) * 2), , , , , , , &H660046
End If
If trf = 3 Then
Picture1.PaintPicture PICtrf3SW.Image, klickX - 0.5 * PICschwamm.Width * maÃ?stabX * (Val(z1) - Val(z2) * 3), klickY - 0.5 * PICschwamm.Height * maÃ?stabY * (Val(z1) - Val(z2) * 3), , , , , , , &H8800C6
Picture1.PaintPicture PICtrf3.Image, klickX - 0.5 * PICschwamm.Width * maÃ?stabX * (Val(z1) - Val(z2) * 3), klickY - 0.5 * PICschwamm.Height * maÃ?stabY * (Val(z1) - Val(z2) * 3), , , , , , , &H660046
End If
Else
Picture1.PaintPicture PICtrf4SW.Image, klickX - 0.5 * PICschwamm.Width * maÃ?stabX * (Val(z1) - Val(z2) * trf), klickY - 0.5 * PICschwamm.Height * maÃ?stabY * (Val(z1) - Val(z2) * trf), , , , , , , &H8800C6
Picture1.PaintPicture PICtrf4.Image, klickX - 0.5 * PICschwamm.Width * maÃ?stabX * (Val(z1) - Val(z2) * trf), klickY - 0.5 * PICschwamm.Height * maÃ?stabY * (Val(z1) - Val(z2) * trf), , , , , , , &H660046
End If
')Ich blick da teilweise selbst nur nach nach gründlicher Analyse durch
Problem: Es ist kaum schneller geworden und ewig mehr Programmcode + Picture-Boxen.
Die Berechnung der Position kann ich ja schlecht auch noch wo anders machen, muss ja topaktuell sein ...
Also vor der Einführung der Vorskalierung war das richtig einfach .

myX, myY = Position Opfer
klickX, klickY = Klickposition
z1, z2 = nicht weiter relevant, Variablen, damit für verschiedene Waffen verschiedene Grö�en einstellbar sind. Beim Finke ist z1=2 und z2=0.4
trf = eben wie klein der Schwamm schon ist
ma�stabX, ma�stabY = bei Auflösung von 1024*768 = 1, sonst eben entsprechend anders.

Kann mir jemand noch Tipps geben oder bin ich ein hoffnungsloser Fall?


P.S.: Könnt ihr nicht mal diese alberne Doppel-Post-Sperre entfernen? Ich spam mich doch nicht selber zu ...
-----
Bleib cool man(n)!
Und lass dich nicht durch Philipp's Gespamme aus der Ruhe bringen ...

Dieser Beitrag wurde am 04.09.2004 um 23:50 Uhr von schrottXXL verändert
nach oben
Profil || Privatnachricht || Suche Zitatantwort || Editieren || Löschen || IP
050
04.09.2004, 23:55 Uhr
Amaranth
Mitglied
Parzellenbesitzer



Beiträge: 1185
Dabei seit:
08.05.2003, 21:15 Uhr
Ã?hm... Hast du keine Komentare?

Stell doch mal am besten das gesamte Projekt mit allen Resourcen online.
-----
-- under construction ---
nach oben
Profil || Privatnachricht || Suche Zitatantwort || Editieren || Löschen || IP
051
05.09.2004, 05:59 Uhr
Ronald Wendt
Administrator
Schüsselkönig

Avatar von Ronald Wendt

Beiträge: 2510
Dabei seit:
15.04.2003, 19:28 Uhr
Hallo,


ich hab aber einen Kommentar : Kraut und Rüben !!!!



Ronald Wendt
-----
Klomanager für PC gibts hier: Klomanager - Hochgewürgt

Retrofreaks gehen auf www.atari-ste.org
nach oben
Profil || Privatnachricht || Suche Zitatantwort || Editieren || Löschen || IP
052
05.09.2004, 10:03 Uhr
schrottXXL
Gebranntes Kind
Parzellenbesitzer

Avatar von schrottXXL

Beiträge: 1459
Dabei seit:
07.10.2003, 19:53 Uhr
Den (Kraut und Rüben) hab ich auch schon genannt (vorher)
Kommentare hab ich mir gespart
Eigentlich wollt ich das ja auch nie fertig schreiben

Seit froh, dass ich hier nur den Teil mit dem Schwammwurf gepostet habe, der ist noch am übersichtlichsten Beim Rest würdet ihr endgültig aussteigen

@Philipp:
Alles zu seiner Zeit (wenns fertig isch).
Kommentare sin an der Stelle ... naja ... nich gro� nötig.
Die erste Code-Box setzt im ersten Abschnitt die grö�en der temporären Picture-Boxen, damit nachher nicht nur 'n kleiner Fleck drin ist, der zweite Abschnitt malt den Schwamm in der entsprechenden Grö�e in die temporären Picutre-Boxen trf0-trf4 (Schwamm wird beim Wurf in 5 Bildern dargestellt).
Und lass dich nicht durch das trf0SW, etc. verwirren ... das muss leider sein. Ich muss jedes Bild 2x machen (S/W und das Bild selbst, damit das mit der Transparenz klappt).
In der zweiten Box ist dann der Code für den Schwammwurf selbst.
Jedes mal, wenn der Code aufgerufen wird, wird trf erhöht. Ist trf = 4, ist der Schwammwurf beendet.
In dem Code wird geprüft, wie hoch trf derzeit ist und demnach das entsprechende skalierte Bild zugewiesen.
Das wars eignlich auch schon.

Wie gesagt, sagt mir, wie ich das mit dem Vorskalieren einfacher mach und ich machs
-----
Bleib cool man(n)!
Und lass dich nicht durch Philipp's Gespamme aus der Ruhe bringen ...
nach oben
Profil || Privatnachricht || Suche Zitatantwort || Editieren || Löschen || IP
053
05.09.2004, 15:09 Uhr
Matthias Hofmann
Administrator
Bürstenkaiser

Avatar von Matthias Hofmann
Themenstarter
Beiträge: 4133
Dabei seit:
15.04.2003, 23:00 Uhr
Das erinnert mich an den Quelltext des Urklomanagers auf dem Atari ST...

Ich hab Deinen Quelltext zwar nicht durchgelesen (weil ich nur C/C++ verwende, kein Visual Basic), aber ich habe die Vermutung, da� Du den Code viel übersichtlicher gestalten kannst, indem Du Schleifen verwendest. Die ersten Zeilen Deines Codes unterscheiden sich z.B. nur in zwei Dingen, die ich hier fett markiert habe:

PICtrf0SW.Width = PICschwamm.Width * (Val(z1) - Val(z2) * 0 ) * maÃ?stabX

Wenn es in Visual Basic so etwas wie Arrays gibt, dann kannst Du das ganze in einer Schleife eleganter lösen. Ich zeig Dir mal, wie sowas in C/C++ aussehen würde:

for ( int i = 0; i < 5; ++i )
{
PICtrfSW[i].Width = PICschwamm.Width * (Val(z1) - Val(z2) * i ) * maÃ?stabX
// Restliche 3 Zeilen analog.
}

Man beachte, da� Du jetzt mit der Zählvariablen "i" die entsprechende PictureBox (oder wie das bei Dir hei�t) indizierst und Du mit ihr auch multipilizierst. Das hat zwei Vorteile: Erstens kannst Du Dir jede Menge Zeilen Code sparen, zweitens kannst Du evtl. leichter das Programm auf mehr "Schwammstufen" erweitern.

Leider wei� ich zu wenig über Visual Basic um Dir zu sagen, ob das klappt. Eine Alternative wäre auch, die einzelnen Schwammphasen vorher in Photoshop o.ä. zu skalieren, und diese Einzelbilder dann reinzuladen.
-----
Matthias Hofmann | Klomanager Deluxe jetzt bei Gamesload kaufen

Dieser Beitrag wurde am 05.09.2004 um 15:15 Uhr von Matthias Hofmann verändert
nach oben
Profil || Privatnachricht || Suche Zitatantwort || Editieren || Löschen || IP
054
05.09.2004, 19:04 Uhr
schrottXXL
Gebranntes Kind
Parzellenbesitzer

Avatar von schrottXXL

Beiträge: 1459
Dabei seit:
07.10.2003, 19:53 Uhr
Stimmt, 'ne Schleife wäre hier sinnvoll. Ich hab nur kp, wie das mit den PictureBoxen geht. Naja, ich habs noch nie ausprobiert *g*. Vielleicht klappts ja so, wie von dir beschrieben . Ich probiers jedenfalls mal. Danke!
Die Schwammbilder vorzufertigen wäre auch 'ne Möglichkeit, find ich aber 'n bisschen aufwändig, da ich ja pro Schwammstufe 2 Bilder brauche und die nehmen dann auch wieder Speicherplatz weg ...
Au�erdem muss dann bei Auflösungen <> 1024x768 trotzdem wieder gerechnet werden ...

Naja, ich schau mal. Was ich nur nicht verstehe, ist, warum der Schei� immer noch so langsam läuft . ICh meine - das hat ja nix mit der Unübersichtlichkeit des Programmcodes zu tun
Das blöde ist, dass ich, damit alles korrekt angezeigt wird, nach dem Zeichnen ein "DoEvents" (falls euch das was sagt, da wird eben alles Anstehende mal zwischendurch gemacht) einfügen muss (kostet glaub 'ne Menge Zeit ...).
-----
Bleib cool man(n)!
Und lass dich nicht durch Philipp's Gespamme aus der Ruhe bringen ...
nach oben
Profil || Privatnachricht || Suche Zitatantwort || Editieren || Löschen || IP
055
05.09.2004, 19:34 Uhr
Ronald Wendt
Administrator
Schüsselkönig

Avatar von Ronald Wendt

Beiträge: 2510
Dabei seit:
15.04.2003, 19:28 Uhr
Hallo,


Blubb!



Ronald Wendt
-----
Klomanager für PC gibts hier: Klomanager - Hochgewürgt

Retrofreaks gehen auf www.atari-ste.org
nach oben
Profil || Privatnachricht || Suche Zitatantwort || Editieren || Löschen || IP
056
05.09.2004, 20:06 Uhr
Matthias Hofmann
Administrator
Bürstenkaiser

Avatar von Matthias Hofmann
Themenstarter
Beiträge: 4133
Dabei seit:
15.04.2003, 23:00 Uhr
Geschwindigkeit und Speicherersparnis sind beim Programmieren (fast) immer konkurrierende Ziele. Unter C/C++ gibt es dazu meistens noch die Möglichkeit, einen sogenannten "Profiler" zu verwenden. Das ist ein Tool, das mir anzeigt, welcher Teil des Codes wieviel Rechenzeit auffri�t.

Ob es sowas unter Visual Basic ist, wei� ich nicht. Du könntest aber mal testhalber den Schwamm überhaupt nicht skalieren und schauen, ob es dann schneller wird. Falls nein, dann liegt Dein Problem woanders.

Vielleicht hat Ronald ja auch recht...
-----
Matthias Hofmann | Klomanager Deluxe jetzt bei Gamesload kaufen
nach oben
Profil || Privatnachricht || Suche Zitatantwort || Editieren || Löschen || IP
057
05.09.2004, 20:43 Uhr
Amaranth
Mitglied
Parzellenbesitzer



Beiträge: 1185
Dabei seit:
08.05.2003, 21:15 Uhr

Zitat:
Geschwindigkeit und Speicherersparnis sind beim Programmieren (fast) immer konkurrierende Ziele. Unter C/C++ gibt es dazu meistens noch die Möglichkeit, einen sogenannten "Profiler" zu verwenden. Das ist ein Tool, das mir anzeigt, welcher Teil des Codes wieviel Rechenzeit auffri�t.

Da Visual Basic meines Wissens erst seit Version 5 (und dort nur in der Pro-Version) nativen Code erzeugt, wird es wohl dort keinen Profiler geben.
-----
-- under construction ---
nach oben
Profil || Privatnachricht || Suche Zitatantwort || Editieren || Löschen || IP
058
05.09.2004, 23:50 Uhr
schrottXXL
Gebranntes Kind
Parzellenbesitzer

Avatar von schrottXXL

Beiträge: 1459
Dabei seit:
07.10.2003, 19:53 Uhr
Hm ... muss ich mal schauen, ob ich irgendwie an 'ne 6er-Version gelange .

Edit:
So, konnte den Programmcode nach ein wenig Ausprobieren dank Matthias Tipp (danke ) "etwas" reduzieren :
format_source('If firstst = 1 And FOstart.loaded = 1 Or resized = 1 And FOstart.loaded = 1 Then
For cre = 0 To schwammstufen
If cre > 0 Then
Load PICtrf(cre)
Load PICtrfSW(cre)
End If

PICtrfSW(cre).Width = PICschwamm.Width * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?stabX
PICtrfSW(cre).Height = PICschwamm.Height * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?stabY
PICtrf(cre).Width = PICschwamm.Width * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?stabX
PICtrf(cre).Height = PICschwamm.Height * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?stabY

If cre < schwammstufen Then
PICtrfSW(cre).PaintPicture PICschwammSW.Picture, 0, 0, PICschwamm.Width * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?stabX, PICschwamm.Height * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?stabY ', , , , , &H660046
PICtrf(cre).PaintPicture PICschwamm.Picture, 0, 0, PICschwamm.Width * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?stabX, PICschwamm.Height * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?stabY ', , , , , &H660046
Else
PICtrfSW(cre).PaintPicture PICschwammnassSW.Picture, 0, 0, PICschwamm.Width * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?stabX, PICschwamm.Height * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?stabY ', , , , , &H660046
PICtrf(cre).PaintPicture PICschwammnass.Picture, 0, 0, PICschwamm.Width * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?stabX, PICschwamm.Height * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?stabY ', , , , , &H660046
End If
Next
firstst = 0
resized = 0
End If
')Und so wird der Schwamm draufgepinselt:
format_source('If trf < schwammstufen Then
Picture1.PaintPicture PICtrfSW(trf).Image, klickX - 0.5 * PICschwamm.Width * maÃ?stabX * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), klickY - 0.5 * PICschwamm.Height * maÃ?stabY * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), , , , , , , &H8800C6
Picture1.PaintPicture PICtrf(trf).Image, klickX - 0.5 * PICschwamm.Width * maÃ?stabX * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), klickY - 0.5 * PICschwamm.Height * maÃ?stabY * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), , , , , , , &H660046
Else
Picture1.PaintPicture PICtrfSW(trf).Image, klickX - 0.5 * PICschwamm.Width * maÃ?stabX * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), klickY - 0.5 * PICschwamm.Height * maÃ?stabY * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), , , , , , , &H8800C6
Picture1.PaintPicture PICtrf(trf).Image, klickX - 0.5 * PICschwamm.Width * maÃ?stabX * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), klickY - 0.5 * PICschwamm.Height * maÃ?stabY * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), , , , , , , &H660046
End If
')Macht das ganze deutlich übersichtlicher und einfacher . Hätt ich auch mal selbst drauf kommen können .

Ich verstehe aber immer noch nicht ganz, warum das so schei�langsam läuft. Trotz Vorskalierung läuft das ganze kein bisschen schneller. Und an der Berechnung der Position kanns wirklich nicht liegen, das ist ja witzlos.
Komisch: Vor allem solange der Schwamm groÃ? ist dauerts.

Hm ... sicherlich ist das auch etwas dumm, dass ich bei jeder Veränderung alles (Opfer, Schwamm, ...) neu druafpinseln muss - und dann auch noch doppelt, aber da wei� ich leider keine Alternative.

Erklärt aber trotzdem noch nicht ganz, warum das so langsam ist
Kann ja nich sein, das VB so langsam pinselt ...
Ich schau mir den Programmkot nochmal an ...


P.S.: ENTFERNT DOCH BITTE MAL DIE DUMME DOPPELPOSTSPERRE!!!

-----
Bleib cool man(n)!
Und lass dich nicht durch Philipp's Gespamme aus der Ruhe bringen ...

Dieser Beitrag wurde am 06.09.2004 um 20:47 Uhr von schrottXXL verändert
nach oben
Profil || Privatnachricht || Suche Zitatantwort || Editieren || Löschen || IP
059
07.09.2004, 21:38 Uhr
Matthias Hofmann
Administrator
Bürstenkaiser

Avatar von Matthias Hofmann
Themenstarter
Beiträge: 4133
Dabei seit:
15.04.2003, 23:00 Uhr

Zitat:
schrottXXL postete
Komisch: Vor allem solange der Schwamm groÃ? ist dauerts.

So komisch ist das gar nicht. Bei gro�en Grafiken dauert es eben etwas länger, bis die einzelnen Pixel zwischen von einem Speicherbereich zum anderen geschoben wurden. Ich kann mir aber kaum denken, da� das in Visual Basic derart langsam geht...

Eventuell könntest Du eine Art Profiler simulieren, wenn es in Visual Basic die Möglichkeit gibt, die Systemuhr abzufragen: Du suchst Dir zuerst den Teil des Codes, der vermutlich die Rechenzeit auffri�t, z.B. die Einblende-Routine für den Schwamm. Dann holst Du Dir vor dieser Routine den Zeitwert in eine Variable, und dann nochmal nach der verdächtigen Programmstelle. Diese beiden Zeitwerte ziehst Du voneinander ab und schreibst die Differenz in eine Datei oder gibst sie auf den Bildschirm aus.
-----
Matthias Hofmann | Klomanager Deluxe jetzt bei Gamesload kaufen

Dieser Beitrag wurde am 07.09.2004 um 21:43 Uhr von Matthias Hofmann verändert
nach oben
Profil || Privatnachricht || Suche Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] [ 2 ] -3- [ 4 ]     [ ]  

Klomanager-Forum

powered by ThWboard
© by Paul Baecher & Felix Gonschorek