Bild in Bild malen

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

BladeRunner

Moderator

BeitragSa, Jan 24, 2009 16:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Weil er manchmal, man verzeihe mir den Ausdruck, ein Krümelkacker ist.
Ihr habt beide das selbe gemeint, nur dass er es 150% genau nahm. Der type ist nur eine einzelne Spur, alle dieser Spuren fasst man halt in einer Liste oder einem Array zusammen.

Das was Btbn sagte ist also absolut korrekt - nur beginnertauglich und leicht verständlich ist es nicht. Wink
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Der Eisvogel

BeitragSa, Jan 24, 2009 16:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Aha, was hab ich dann falsch gemacht? Bei mir, als ich es probierte, sind die FPS in den Keller gewandert.
Also, immer wenn das Auto bremmst, wird in jedem Schleifendurchlauf ein neuer Type erstellt, und in einen Liste gespeichert. mein Prog läuft mit 60 FPS. Hab ich jetzt dann was falsch gemacht, oder ist es normal, dass man nach dem 2. Mal Bremsen nurnoch 30 FPS hat? Ein Bremsvorgang dauert ungefähr 3 Sekunden, das Auto hat 6 Räder, also 6 Streifen, das heißt, 1080 Types pro Bremsvorgang. Mein Auto soll jetzt aber unbegrenzt oft Bremsen können und immer einen Bremsstreifen hinterlassen.
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

BtbN

BeitragSa, Jan 24, 2009 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Verusuche, nicht jeden durchgang einen Neuen eintrag hinzuzufügen, sondern z.B. nur alle 100ms. MilliSecs hilft dir dabei.

BladeRunner

Moderator

BeitragSa, Jan 24, 2009 16:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Das kannst Du vergessen, du wirst allte Einträge in der Bremsliste nach und nach entfernen müssen. Jeder dieser Einträge ist ja ein weiteres Bild was eingezeichnet werden muss, und 1080 Bilder sind schon ein Wort.

Erstell weniger Bremsspurenbilder und lass sie nur begrenzt lange leben.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Der Eisvogel

BeitragSa, Jan 24, 2009 16:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Jetzt mach ich nur noch jeden 10 Schleifendurchlauf ein Bild, aber jetzt ist es keine Richtige Bremsspur mehr, jetzt liegen einfach nur noch vereinzelte schwarze Flecken rum. Soll ich jetzt einfach wieder mehr Bilder erstellen und die Bremspur noch schneller wieder löschen?
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

Xeres

Moderator

BeitragSa, Jan 24, 2009 16:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du so viele Einträge gesammelt hast, könntest du sie auch in das Hintergrundbild einzeichnen und die Types dafür wieder löschen - wenn das so schnell genug läuft.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Der Eisvogel

BeitragSa, Jan 24, 2009 16:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie als Hintergrundbild? Wenn ich dich richtig verstehe, dann meinst du das, was ich am Anfang wollte, was aber laut BtbN nicht geht.
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

Xeres

Moderator

BeitragSa, Jan 24, 2009 17:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Es kommt immer darauf an, wie man das ganze Umsetzt. 500 oder tausend Bilder einmal in den Hintergrund einzuzeichnen anstatt ständig klingt für mich erst mal schneller. Ich würde es zumindest selbst mal ausprobieren.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Der Eisvogel

BeitragSa, Jan 24, 2009 17:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Und wie würdest du das anstellen. Ich zeichne die Bilder, dann kommt Cls und weg sind sie wieder.
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

mahe

BeitragSa, Jan 24, 2009 17:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Zeichne nur die Bremsspurbilder allein, mach GrabImage oder GrabPixmap und zeichne dann dieses "gegrabte" Bild immer an der richtigen Stelle über den Hintergrund.

Wenn Du die Bremsspurbildchen ordentlich machst (vielleicht schon 0,5-1 cm lange Streifen oder so), kommst Du eventuell auch mit weniger aus als wenn es nur eine handvoll schwarze Pixel sind.
ʇɹǝıdɯnɹɹoʞ ɹnʇɐuƃıs - ǝpoɥʇǝɯ-ɹoɹɹıɯ ɹǝp uı ,ɹoɹɹǝ,

Der Eisvogel

BeitragSa, Jan 24, 2009 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber das läuft bei mir dann mit dem GrabImage nur mit 3 FPS
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.
  • Zuletzt bearbeitet von Der Eisvogel am Sa, Jan 24, 2009 17:14, insgesamt einmal bearbeitet

Xeres

Moderator

BeitragSa, Jan 24, 2009 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab tatsächlich eine Beispielcode für GrabImage parat:
Code: [AUSKLAPPEN]
SuperStrict
rem
      Test um ein Bild zur Laufzeit zu erstellen...
endrem

Graphics(800, 600, 0, 60)
SetBlend(ALPHABLEND)
AutoMidHandle(True)

Local Bild:TImage = CreateImage(64, 64)
Cls
SetColor(255, 0, 0)
DrawOval(16, 16, 32, 32)
SetColor(255, 255, 255)
DrawLine(0, 0, 0, 63)
DrawLine(0, 63, 63, 63)
DrawLine(63, 63, 63, 0)
DrawLine(63, 0, 0, 0)
GrabImage(Bild, 0, 0)
rem
      Breite und Höhe des erstellten Bildes werden ab der Position von
      Grabimage vom Backbuffer eingelesen.
endrem
DrawText("Bild erstellt, bitte Taste drücken!", 300, 300)
Flip
WaitKey()

'* Testschleife:
Local w:Int, a:Float

Repeat
   
   '*** Testrechteck ob Alpha tatsächlich da ist, oder nur schwarz:
   SetRotation(0) ;SetAlpha(1)
   DrawRect(400, 300, 50, 50)

   '*** Das Gegrabte Bild:
   w = (w + 1) Mod 360 ; SetRotation(w)
   a = (a + 0.005) Mod 1 ; SetAlpha(a)
   DrawImage(Bild, 400, 300)
   
   Flip
   Cls
Until KeyHit(KEY_ESCAPE) Or AppTerminate()
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Der Eisvogel

BeitragSa, Jan 24, 2009 17:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Dieses Prinzip verwende ich an anderer Stell, aber wenn ich das wärend des Programmlaufes machen würde, dann schaffe ich nur noch 3 FPS.
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

mahe

BeitragSa, Jan 24, 2009 17:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Da musst Du eben ein bisscher probieren und experimentieren.

Erstmal, wie gesagt, die Bremsspurbilder optimieren so dass Du möglichst wenig davon brauchst.
Beim Bremsen die Positionen (inkl. Drehung) in einer Liste oder einem Array speichern.
Von Zeit zu Zeit (oder bei einer gewissen Anzahl) die kleinen Bremsspuren-Bildchen zu einem Bremsspuren-Layer zusammenfassen.

Wenn Du die Spuren nicht ewig behalten musst, blende sie irgendwann langsam aus oder lass sie verschwinden wenn sie den sichtbaren Bereich verlassen.

Jetzt hast Du eine Menge Informationen (und sogar Codebeispiele). Programmiere und probiere!
Wenn das nichts wird, setz Dich in eine Ecke und heule aber noch weiter so dämlich zu fragen hilft bestimmt nix.
ʇɹǝıdɯnɹɹoʞ ɹnʇɐuƃıs - ǝpoɥʇǝɯ-ɹoɹɹıɯ ɹǝp uı ,ɹoɹɹǝ,

BlitzMoritz

BeitragSo, Jan 25, 2009 22:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Um noch einmal auf das ursprüngliche Problem des Bild-in-Bild-Klebens zurückzukehren:
Falls Realtime keine primäre Rolle spielen sollte, schau dir doch mal dies im Codearchiv an:
https://www.blitzforum.de/foru...highlight=
und dort vor allem die im Edit ergänzte Funktion ImagePaste
LG

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group