Immer noch Frontbuffer

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Nooby

Betreff: Immer noch Frontbuffer

BeitragFr, Feb 03, 2006 17:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Da mir in meinem alten Thema keiner mehr antwortet mach ich halt ein neues auf.
Ich habe immer noch mein Snake-Problem.
Ich zeige hier mal den Code, an dem ich gerade bastle:
Code: [AUSKLAPPEN]
Graphics 1024,768,32,1
SetBuffer BackBuffer()
Cls
Dim wurm(2,2)
Dim feld(1024,700)
Dim richtung(2)
Dim crash(2)
Dim wurmfeld(1024*700,2)
richtung(1)=2
richtung(2)=4

wurm(1,1)=512
wurm(1,2)=350
wurm(2,1)=512
wurm(2,2)=350

feld(wurm(1,1),wurm(1,2))=1
feld(wurm(2,1),wurm(2,2))=1

Color 255,100,100
Rect wurm(1,1),wurm(1,2),2,2
Color 100,100,255
Rect wurm(2,1),wurm(2,2),2,2

Repeat
; Cls
 Delay 10

; CopyRect 0,0,1024,700,0,0,FrontBuffer(),BackBuffer()

 If KeyDown(203) And richtung(1)<>2
  richtung(1)=4
 ElseIf KeyDown(205) And richtung(1)<>4
  richtung(1)=2
 ElseIf KeyDown(200) And richtung(1)<>3
  richtung(1)=1
 ElseIf KeyDown(208) And richtung(1)<>1
  richtung(1)=3
 EndIf

 If KeyDown(30) And richtung(2)<>2
  richtung(2)=4
 ElseIf KeyDown(31) And richtung(2)<>1
  richtung(2)=3
 ElseIf KeyDown(17) And richtung(2)<>3
  richtung(2)=1
 ElseIf KeyDown(32) And richtung(2)<>4
  richtung(2)=2
 EndIf

 crash(1)=0
 crash(2)=0

 For a=1 To 2
  If richtung(a)=1
   wurm(a,2)= wurm(a,2)-2
  ElseIf richtung(a)=2
   wurm(a,1)= wurm(a,1)+2
  ElseIf richtung(a)=3
   wurm(a,2)= wurm(a,2)+2
  ElseIf richtung(a)=4
   wurm(a,1)= wurm(a,1)-2
  EndIf
 Next

 For a=1 To 2
  If feld(wurm(a,1),wurm(a,2))=1 Then crash(a)=True
 Next

 If crash(1) And crash(2)
  Text wurm(1,1),wurm(1,2),"ultracrash"
  Text wurm(2,1),wurm(2,2),"ultracrash"
 ElseIf crash(1)
  Text wurm(1,1),wurm(1,2),"crash1"
 ElseIf crash(2)
  Text wurm(2,1),wurm(2,2),"crash2"
 EndIf


  Color 255,100,100
  Rect wurm(1,1),wurm(1,2),2,2
  Color 100,100,255
  Rect wurm(2,1),wurm(2,2),2,2

 feld(wurm(1,1),wurm(1,2))=1
 feld(wurm(2,1),wurm(2,2))=1

 Flip
Until KeyHit(1)
End


Das Problem ist nun, dass die Schlangen nicht gepunktet sein sollen. Ich hab schon alles Versucht, aber ich kriegs nich hin.
Und da bei BlitzPlus das mit nur Frontbuffer irgendwie nich geht und jeden einzelnen punkt der Schlange zu speichern zu viel speicher braucht (das Programm wird zu lahm. Zumindest bei mir) brauche ich dringend Hilfe.
DAS PERPETUOMOBILE!!!
http://www.sax.de/~stalker/pad/199801/

d-bug

BeitragFr, Feb 03, 2006 18:17
Antworten mit Zitat
Benutzer-Profile anzeigen
gaaaaanz einfach !!!

bei der Stelle das ql:Backbuffer:
Code: [AUSKLAPPEN]
Graphics 1024,768,32,1
SetBuffer BackBuffer()

gegen ql:FrontBuffer tauschen
Code: [AUSKLAPPEN]
Graphics 1024,768,32,1
SetBuffer FrontBuffer()


und hier
Code: [AUSKLAPPEN]
 Flip
Until KeyHit(1)
End

das ql:Flip auskommentieren
Code: [AUSKLAPPEN]
 ;Flip
Until KeyHit(1)
End


et voila

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragFr, Feb 03, 2006 18:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
gaaaaanz einfach !!!

außer bei Blitz Plus
Bei BlitzPlus kannst du nicht auf den Frontbuffer zugreifen!
[BB2D | BB3D | BB+]

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragFr, Feb 03, 2006 18:34
Antworten mit Zitat
Benutzer-Profile anzeigen
In deinem Fall gibt es eine einfache Lösung!
einen imagebuffer auf dem gemalt wird, und dann auf den BACKBUFFER eingezeichnet wird!
habs mal schnell eingebaut!

Code: [AUSKLAPPEN]
Graphics 1024,768,32,1
SetBuffer BackBuffer()
;######################################
Bufferimage = CreateImage (1024,768)
;######################################
Cls
Dim wurm(2,2)
Dim feld(1024,700)
Dim richtung(2)
Dim crash(2)
Dim wurmfeld(1024*700,2)
richtung(1)=2
richtung(2)=4

wurm(1,1)=512
wurm(1,2)=350
wurm(2,1)=512
wurm(2,2)=350

feld(wurm(1,1),wurm(1,2))=1
feld(wurm(2,1),wurm(2,2))=1

Color 255,100,100
Rect wurm(1,1),wurm(1,2),2,2
Color 100,100,255
Rect wurm(2,1),wurm(2,2),2,2
;######################################
SetBuffer ImageBuffer (Bufferimage)
;######################################
Repeat
; Cls
 Delay 10

;

 If KeyDown(203) And richtung(1)<>2
  richtung(1)=4
 ElseIf KeyDown(205) And richtung(1)<>4
  richtung(1)=2
 ElseIf KeyDown(200) And richtung(1)<>3
  richtung(1)=1
 ElseIf KeyDown(208) And richtung(1)<>1
  richtung(1)=3
 EndIf

 If KeyDown(30) And richtung(2)<>2
  richtung(2)=4
 ElseIf KeyDown(31) And richtung(2)<>1
  richtung(2)=3
 ElseIf KeyDown(17) And richtung(2)<>3
  richtung(2)=1
 ElseIf KeyDown(32) And richtung(2)<>4
  richtung(2)=2
 EndIf

 crash(1)=0
 crash(2)=0

 For a=1 To 2
  If richtung(a)=1
   wurm(a,2)= wurm(a,2)-2
  ElseIf richtung(a)=2
   wurm(a,1)= wurm(a,1)+2
  ElseIf richtung(a)=3
   wurm(a,2)= wurm(a,2)+2
  ElseIf richtung(a)=4
   wurm(a,1)= wurm(a,1)-2
  EndIf
 Next

 For a=1 To 2
  If feld(wurm(a,1),wurm(a,2))=1 Then crash(a)=True
 Next

 If crash(1) And crash(2)
  Text wurm(1,1),wurm(1,2),"ultracrash"
  Text wurm(2,1),wurm(2,2),"ultracrash"
 ElseIf crash(1)
  Text wurm(1,1),wurm(1,2),"crash1"
 ElseIf crash(2)
  Text wurm(2,1),wurm(2,2),"crash2"
 EndIf


  Color 255,100,100
  Rect wurm(1,1),wurm(1,2),2,2
  Color 100,100,255
  Rect wurm(2,1),wurm(2,2),2,2

 feld(wurm(1,1),wurm(1,2))=1
 feld(wurm(2,1),wurm(2,2))=1
 ;#################################
   CopyRect 0,0,1024,700,0,0,ImageBuffer (Bufferimage),BackBuffer()
 ;#################################
 Flip
Until KeyHit(1)
End

Die Stellen sind markiert!
[BB2D | BB3D | BB+]

d-bug

BeitragFr, Feb 03, 2006 18:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Da sieht mans mal wieder!
Der d:bug hat noch nie BlitzPlus besessen Embarassed
Streichen wir diesen Beitrag und schämen uns dafür Wink
 

Burnser

BeitragFr, Feb 03, 2006 18:51
Antworten mit Zitat
Benutzer-Profile anzeigen
sorry falsches topic -.-"

Nooby

BeitragSa, Feb 04, 2006 20:08
Antworten mit Zitat
Benutzer-Profile anzeigen
das is ja ganz schön und gut, nur isses - zumindest bei mir - vieeeel zu lahm. Confused
DAS PERPETUOMOBILE!!!
http://www.sax.de/~stalker/pad/199801/

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group