Seltsamer Code
Übersicht

![]() |
NicdelBetreff: Seltsamer Code |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
bei folgendem einfachem Code bekomme ich - nur im Vollbildmodus - seltsame Probleme. Zum einen sieht man den Bildaufbau (wie bei einem Röhrenmonitor) und zum anderen werden die Rechtecke zum Teil Transparent gezeichnet! Code: [AUSKLAPPEN] Graphics 1280,800,32,1 SetBuffer(BackBuffer()) time = MilliSecs() SeedRnd(MilliSecs()) timer = CreateTimer(60) Repeat WaitTimer(timer) If MilliSecs()-time > 2000 g = Rand(255) r = Rand(100,255) EndIf x = Rand(0,GraphicsWidth()) y = Rand(0,GraphicsHeight()) w = Rand(1,200) h = Rand(1,200) Color r,g,0 Rect x,y,w,h Flip 0 Until KeyHit(1) Vielleicht könnt ihr mir sagen, was nicht stimmt (außer fehlendes Cls) oder ob es bei euch auch passiert. Mfg Nicdel |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
vermutlich ist es einfach zu schnell für dein auge und für deinen rechner ![]() |
||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
code sollte sauber sein, bei mir geht alles (außer dass mein schirm die auflösung nicht soo mag, hab einen 4:3-schirm). habs nur im fenster getestet, da is alles perfekt gegangen. | ||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
im fenster geht es bei mir, fullscreen tatsächlich nicht...komische sache | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
schätze, du hast auch einen 4:3-schirm, der die auflösung einfach nicht unterstützt | ||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
die hab ich schon geändert...ich kriege keine fehlermeldung sondern die anzeige ist falsch, wie beschrieben im ersten post, den du hoffentlich gelesen hast... | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe ebenfalls einen 16:9 Bildschirm beim Laptop. Und zwar mit genau 1280x 800 Pixeln Auflösung. | ||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
mpmxyzBetreff: Re: Seltsamer Code |
![]() Antworten mit Zitat ![]() |
---|---|---|
Moin,
du zeichnest die Rechtecke nur auf jeweils einem Buffer. Das heißt: Du zeichnest ein Rechteck auf den Backbuffer. Dann nutzt du Flip, damit Frontbuffer und Backbuffer getauscht werden. Auf dem jetztigen Backbuffer ist aber kein Rechteck gezeichnet. Das Spiel geht aber wieder so weiter. Nun ist es also so, dass jedes Rechteck nur jeden zweiten Frame zu sehen ist. Durch den schnellen Wechsel der Bilder erscheinen sie aber "nur" transparent. Das Programm sollte den Zeichenvorgang daher nach dem Flip im Ex-Frontbuffer (Backbuffer) wiederholen. Der sichtbare "Bildaufbau" verschwindet dadurch auch. Dieser kommt aber auch wegen dem "Flip 0", da dadurch mitten während der Bildaktualisierung das Bild im Frontbuffer sich ändern kann. Das mit dem Flip 0 ist aber sehr zu vernachlässigen, solange sich die angezeigten Bilder nicht immer sehr deutlich voneinander unterscheiden, wie es bei deinen verschwindenen und auftauchenden Rechtecken der Fall ist. Aber selbst dann gibt es noch andere Lösungen. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ah ja, interessant. Sobald man 2x hintereinader Rect schreibt funktioniert der Code wieder. Aber auch nur ohne Cls (was aber logisch ist). | ||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Für so eine additive Bildausgabe sollte man dann FrontBuffer![]() ![]() ![]() Wie schon genannt: Im Vollbildmodus werden beim BackBuffer die beiden Speicheradressen (vom FrontzBuffer und BackBuffer) miteinander getauscht. Das ist eine sehr schnelle Variante ein Flimerfreies Bild zu erstellen. Braucht man aber ein leeren Inhalt, so benutzt man Cls. Im Fenstermodus übernimmt logischer Weise Windows die Kontrolle der Fenster, und da ist ein Ändern der Speicheradressen auf den FrontBuffer nur wegen eines Fensters logischer Weise nicht zulässig. Windows ''emuliert'' dann ein Bildwechsel, indem auf dem ''BackBuffer'' immer nur gezeichnet wird, und per Flip auf den Fensterbereich kopiert wird. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Um ein Bild zu erweitern , benutze den Befehl Createimage![]() ![]() ![]() Hier der Code, verbessert: Code: [AUSKLAPPEN] Graphics 1280,1024,32,1
SetBuffer(BackBuffer()) muster = CreateImage(GraphicsWidth(),GraphicsWidth());!! time = MilliSecs() SeedRnd(MilliSecs()) timer = CreateTimer(60) Repeat WaitTimer(timer) If MilliSecs()-time > 2000 g = Rand(255) r = Rand(100,255) EndIf x = Rand(0,GraphicsWidth()) y = Rand(0,GraphicsHeight()) w = Rand(1,200) h = Rand(1,200) Color r,g,0 SetBuffer ImageBuffer(muster);!! Rect x,y,w,h SetBuffer BackBuffer();!! DrawImage muster,0,0;!! Flip(0):Cls Until KeyHit(1) die ausrufezeichen bitte nicht persönlich nehemen , dass mache ich in IDEAL immer um auf was aufmerksam zu machen. Viele Grüße TimBo |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schon okay, danke. Ich bin kein Anfänger mehr, daher weiß ich mir zu helfen. Mich hats nur in eben diesem Fall interessiert. Trotzdem danke für die Mühe den Code zu schreiben. | ||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group