0 Punkte?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

juse

Betreff: 0 Punkte?

BeitragFr, März 21, 2008 12:21
Antworten mit Zitat
Benutzer-Profile anzeigen
wieso steht hier am ende 0 punkte bei jedem obwohl das bild 'back' komplett die rgb werte: 255,0,0 hat?
p1 und p2 sind global

hier mal der code:
Code: [AUSKLAPPEN]
If time=100
SetBuffer FrontBuffer()
Color 128,128,128
Rect 20,20,600,440
Color 255,255,255
Text 60,160,"Zähle alle Punkte..."
SetBuffer ImageBuffer(back)
For y=0 To 479
For x=0 To 639
LockBuffer
rgb=ReadPixelFast(x,y) And $FFFFFF
r=(rgb And $FF0000)/$10000
g=(rgb And $FF00)/$100
b=rgb And $FF
If r=255 Then p1=p1+3
If b=255 Then p2=p2+3
UnlockBuffer
Next
Next
SetBuffer FrontBuffer()
Cls
Color 128,128,128
DrawBlock back,0,0
Rect 20,20,600,440
Color 255,255,255
Text 40,120,"Punkte von Spieler 1: "+p1
Text 40,220,"Punkte von Spieler 2: "+p2
FlushKeys
WaitKey
End
EndIf

Hagbard

BeitragFr, März 21, 2008 13:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Offensichtlich hast du bei deinem Code das Bild nicht richtig erstellt. In meiner Version siehst du, wie es funktionieren kann. Schau dir mal die einzelnen Bereiche an und vergleiche mit deinen.
Ein paar Kommentare würden dir auch ganz gut tun, Smile.



Code: [AUSKLAPPEN]
Graphics 800, 600, 16, 2

 
; BILD WIRD GEZEICHNET
bild = CreateImage (100, 100)
SetBuffer ImageBuffer(bild)

Color 128,128,128
Rect 10, 10, 100, 100

; BEISPIEL 1
Rect 50, 50, 1, 1  ; Hier wird nur ein Pixel gezeichnet, du kannst die Länge des Rechtseckes aber auch variieren


; BEISPIEL 2
;For I = 1 To 4
;Rect 10 + Rnd(0, 99), 10 + Rnd(0, 99), 1, 1  ; Hier werden testweise vier Punkte in das Bild gezeichnet
;Next




SetBuffer FrontBuffer() 
Text 60,160,"Bild ist erstellt... Drücke eine Taste, um alle Pixel zu erstellen"
WaitKey()




; BILD WIRD AUF WEIßE PIXEL UNTERSUCHT
SetBuffer ImageBuffer(bild)
For y=0 To 99
   For x=0 To 99
      LockBuffer
      rgb=ReadPixelFast(x,y) And $FFFFFF
      r=(rgb And $FF0000)/$10000
      g=(rgb And $FF00)/$100
      b=rgb And $FF
      If r=255 Then p1=p1+3
      If b=255 Then p2=p2+3
      UnlockBuffer
   Next
Next



; DAS ERGEBNIS DER UNTERSUCHUNG WIRD HIER ANGEZEIGT
SetBuffer FrontBuffer()
Cls

SetBuffer FrontBuffer()
DrawImage bild, 340, 180

Color 255,255,255
Text 40,120,"Punkte von Spieler 1: " + p1
Text 40,220,"Punkte von Spieler 2: " + p2


FlushKeys
WaitKey
End

juse

BeitragSa, März 22, 2008 14:47
Antworten mit Zitat
Benutzer-Profile anzeigen
nein, ich hab den fehler gefunden!
ich habe die farbtiefe auf 16 bit gestellt, sie muss aber auf 32 bit gestellt werden.

aber danke für die hilfe

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group