Flimmern bei Bildern
Übersicht

the.fellowshipBetreff: Flimmern bei Bildern |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Ich habe ein Problem! Ins BB geladene Bilder flimmern beim Abspielen jedes mal so. Hat das was mit der Menge der Pixel der Bilder zutun? Oder etwas mit den Puffern? Könnt ihr mir helfen? Danke! |
||
noir |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
schau dir mal in der onlinehiflfe:
BlitzBasic: [AUSKLAPPEN] SetBuffer, BackBuffer() und Flip an. dann wird dein bild erst komplett sozusagen im hintergrund gezeichnet dann mit flip umgeschalten, sodass du das bild siehst. so wird ein flimmern vermieden. |
||
Fragt und man wird euch helfen
Das Alternativ BlitzBasic-Forum: FreeCoder Einfach chatten: BlitzChat Code&Text schnell und einfach pasten: FreePasting |
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
und am besten nur ein cls benutzen, habe mal den fehler gemacht und für jedes viewport ein cls benutzt, danach flimmerte es auch. | ||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
the.fellowship |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi...
Ich schreibe diesen Thread in dieses Thema...da es am besten hinein passt...(glaube ich) Ich habe eine Demo version von BB. Wenn ich ein Spiel abspiele, funktioniert alles perfekt; nach ca. zehn sekunden fangt alles an zu "RUCKELN" ![]() Hat das mit der DEMO zutun (dass man die Demo version von BB nicht richtig abspielen kann, und man sich die ORIGINALE version kaufen sollte) oder liegt es an etwas Anderem? |
||
gamble |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zeig uns mal deinen Code, vielleicht lädst du ja in jedem Schleifendurchgang ein 10 MB Bild in den Speicher ![]() |
||
the.fellowship |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
gamble hat Folgendes geschrieben: Zeig uns mal deinen Code, vielleicht lädst du ja in jedem Schleifendurchgang ein 10 MB Bild in den Speicher
![]() Denkst du dass es etwas mit der Bildgröße zutun hat? Das könnte ich mir nicht vorstellen; (denn mein CPU ist nicht der schlechteste.... 2,8 GHZ und 512 MB RAM) ich habe einmal ein kleines Spiel programmiert (einen Hubschrauber mit Paint gemalen, er hatte nur 400 KB) bei dem man mit dem Hubschrauber landen musste (auf einer plattform; nur 300 KB) Und es hat gut funktioniert, nach ca. 10 sekunden hat alles geruckelt... ![]() |
||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
wie schon gesagt, zeig uns mal deinen code.
an der Demo wird es nicht liegen, eher an einem Fehler, den du im Programm machst, wi gamble schon sagte, zb bei jedem schleifendurchlauf das Bild laden, kann eigentlich als einzige möglichkeit sein, warum es nach ein paar sekunden anfängt zu ruckeln, auch wenn du nen guten cpu hast, wenn du die Bilder immer wieder in den Speicher lädst, ist dieser auch irgendwann mal voll. |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
E. Urbachehemals "Basicprogger" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hatte sowas auch schon mal. Das war aber ein
anderer Zusammenhang: Da hatte ich im Type-Field mehrere Bilder gehabt und irgendwie mit ImageBuffer herumgespielt. Aber wie gesagt: Ohne Code, kein Brot! |
||
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik |
the.fellowship |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
; Black Hawk, Hauptprogramm
Graphics 800, 600 AppTitle "Mission: Black Hawk" SetBuffer BackBuffer() titel = LoadImage("Images/starthawk.jpg") DrawImage titel,120,30 fntArialI = LoadFont(Arial,32,False,False,False) SetFont fntArialI Text 200,200,"NAME: Mission Black Hawk" Text 200,280,"STEUERUNG: Mit den Pfeiltasten" Text 200,360,"START: bei Tastendruck" FreeFont fntArialI WaitKey Cls ; Unterprogramm Graphics 800, 600 AppTitle "Mission: Black Hawk" SetBuffer BackBuffer() bild1 = LoadImage("Images/figure1.jpg") bild2 = LoadImage("Images/figure2.jpg") Repeat Cls O=580 P=550 If KeyDown(200) = 1 Then Y = Y - 2 If KeyDown(208) = 1 Then Y = Y + 2 If KeyDown(205) = 1 Then X = X + 2 If KeyDown(203) = 1 Then X = X - 2 Delay 1 ; Kollidieren Arial = LoadFont(Arial,32,True,False,True) SetFont Arial If ImagesOverlap (bild1, X, Y, bild2, O,P) Then .success Locate 265,280 Print "Mission erfolgreich!" Delay 2000 Goto ende EndIf ; /Kollidieren ; Rand If X < 0 Then X = 0 If X > 595 Then X = 595 If Y < 0 Then Y = 0 If Y > 500 Then Y = 500 ; /Rand ; CHEAT ![]() ;;;;;;;;;;;;;;;;;;;;;;;;; If KeyDown(30) And KeyDown(31) Then Goto success EndIf ;;;;;;;;;;;;;;;;;;;;;;;;; DrawImage bild1,X,Y DrawImage bild2,O,P Delay 1 Flip Until KeyDown(1) .ende ; Ende Graphics 800,600 AppTitle "Mission: Black Hawk" Delay 900 arial = LoadFont(arial,32,True,False,True) SetFont Arial Text 265, 280,"Danke fürs Spielen!" Delay 2000 End |
||
hitokiri |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du lädst bei jedem schleifendurchlauf die arial font neu, setzt sie und freest sie aber nich wieder, bei keiner framebegrenzung und deiner cpu würde ich mal von mindestens 100 frames per sec ausgehen, font so knapp 40 bis 50kb macht nach 10 minuten nach adam riese:
circa 250mb ![]() kein wunder dasses ruckelt, er fängt an die swap datei zu vergrössern. lade die font einmal am anfang des startens des subprogramms vor der schleife oder erst dann wenn auch die if abfrage true ist, also wirklich eine kollision stattfindet, und free sie dann wieder wenn du dir um speicher sorgen machst, aber eine font im speicher, 50 kb, kannste auch einfach am anfang laden und bis zum spielende geladen lassen. |
||
the.fellowship |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
DANKE!!!!!
Jetzt funktioniert es perfekt!!! Jetzt werde ich weiter machen! (Feinde u.s.w) |
||
![]() |
Alfadur |
![]() Antworten mit Zitat ![]() |
---|---|---|
yeah, liegt wohl am font. überhaupt solltest du dir nochmal gedanken um die struktur deines programms machen...
grundsätzlich gehört alles was mit load- anfängt außerhalb eine schleife...das du 3mal, für jeden unterschiedlichen screen graphics, setbuffer, apptitle, loadfont etc machst ist auch quark ... auf delay solltest du auch verzichten, wenns zu schnell geht, schau dir waittimer() an ... ach, ich hatte gerade nix besseres zu tun und hab dir das mal gemacht ... das solltest du verstehen, die bilder mußte ich ersetzen, das kriegst du aber sicher wieder hin ... BlitzBasic: [AUSKLAPPEN]
edit: noch ein paar tipps. vergiß am besten locate und print im graphics modus, dafür hast du text. wenn du mal weiter bist, dann vergiß auch text und erstell dir nen eigenen bitmap font... und wie du siehst, benutz funktionen und lass das goto sein ... |
||
A Cray is the only computer that runs an endless loop in less than four hours. |
the.fellowship |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
DANKE!!! | ||
![]() |
Triton |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() |
||
Coding: silizium-net.de | Portfolio: Triton.ch.vu |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group