Bild in Bild malen
Übersicht

![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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. ![]() |
||
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Verusuche, nicht jeden durchgang einen Neuen eintrag hinzuzufügen, sondern z.B. nur alle 100ms. MilliSecs hilft dir dabei. | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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. |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
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. |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group