Mauscursor und Bildschirm immer wieder neu malen?
Übersicht BlitzBasic Beginners-Corner
BackbufferBetreff: Mauscursor und Bildschirm immer wieder neu malen? |
Mi, Jun 06, 2007 1:11 Antworten mit Zitat |
|
---|---|---|
Also ich habe einen kleinen Map-Editor geschrieben und der funktioniert sogar . Nun, kaum etwas zu Stande gebracht wollte ich mein Programmcode verbessern.
Also mein Problem: Bis jetzt male ich immer den kompletten Bildschirm in einer Schleife neu um den alten Mauscursor zu löschen. Gibt es eine Befehl mit dem ich einen Auschnitt des akutellen Bildschirm speichern kann? Dann müsste ich immer nur diesen Schnipsel wieder Laden. Danke für die Hilfe |
||
hecticSieger des IS Talentwettbewerb 2006 |
Mi, Jun 06, 2007 1:29 Antworten mit Zitat |
|
---|---|---|
Die Zeiten sind schon längst vorbei, wo man nur Bildteile gezeichnet hat (dann auch noch mit XOR-Befehlen usw.).
''Richtig ist'': - Nach Flip kommt Cls (solange es 2D ist) - Der Bildschirm wird jeden Schleifendurchlauf neu gezeichnet - Bei einer Tilemap darauf achten, dass nur der sichtbare Bereich gezeichnet wird. Nicht die gesamte Map |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Backbuffer |
Mi, Jun 06, 2007 1:33 Antworten mit Zitat |
|
---|---|---|
Nun, so habe ich es im aktuellen Programm von mir gemacht. Dachte aber, es würde zu einer besseren Performance führen, wenn man wirklich nur den nötigen Teil malt.
Hab' zwar mit meinem Miniprogramm noch keine Speed Problem, aber man weiß ja nie was noch kommt. |
||
D2006Administrator |
Mi, Jun 06, 2007 2:16 Antworten mit Zitat |
|
---|---|---|
allein das Speichern des Teils der erhalten bleibt, benötigt erheblich mehr Performance, als ein neuzeichnen. | ||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
Backbuffer |
Mi, Jun 06, 2007 2:25 Antworten mit Zitat |
|
---|---|---|
Na dann hab' ich ja ein Problem weniger.
Danke |
||
Smily |
Mi, Jun 06, 2007 11:48 Antworten mit Zitat |
|
---|---|---|
Eine möglichkeit wäre es mit viewport zu arbeiten:
Um mit viewport zu arbeiten einfach die vier auskommentieren zeilen einkommentieren. Bei mir gibt das ca eine dreifache performancesteigerung (Die man aber imho sowiso net braucht, da man bei kleineren spielen wahrscheinlich nichtmal die geringere performance voll ausnutzt) Code: [AUSKLAPPEN] Graphics 800,600,16,2
backimg = CreateImage(800,600) SeedRnd(millisecs()) SetBuffer ImageBuffer(backimg) For z = 1 To 1000 x1 = Rand(0,800) x2 = Rand(x1, x1+100) y1 = Rand(0,600) y2 = Rand(y1,y1+100) Color Rand(0,255), Rand(0,255), Rand(0,255) a = Rand(0,2) Select a Case 0 Line x1,y1,x2,y2 Case 1 Rect x1,y1,x2-x1,y2-y1, Rand(1) Case 2 Oval x1,y1,x2-x1,y2-y1, Rand(1) Case 3 End Select Next Color 0,0,0 Rect 0,0,100,20,1 Color 255,255,255 Rect 0,0,100,20,0 mouseimg = CreateImage(25,25) SetBuffer ImageBuffer(mouseimg) Color 1,1,1 Oval 0,0,25,25,1 Color 255,255,255 Oval 0,0,25,25,0 Line 12,0,12,25 Line 0,12,25,12 MidHandle mouseimg SetBuffer BackBuffer() HidePointer() DrawImage backimg,0,0 Repeat ; Viewport MX - 40, MY - 40, 80, 80 mx = MouseX() my = MouseY() Cls DrawImage backimg,0,0 ; Viewport MX - 40, MY - 40, 80, 80 DrawImage mouseimg,mx,my c = c + 1 If MilliSecs() => checkfpstime fps = c c = 0 checkfpstime = MilliSecs() + 1000 End If ; Viewport 1,1,98,18 ; Cls Text 2,10, "FPS: " + fps, 0, 1 Flip 0 Until KeyHit(1) |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
Rongo Matane |
Mi, Jun 06, 2007 17:31 Antworten mit Zitat |
|
---|---|---|
das is aber schon ne gigantische Leistungssteigerung...aber ich frag mich wie es aussieht wenn man ein großes Programme hat, wo sich viel auf dem Bildschirm ändert... | ||
Übersicht BlitzBasic Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group