InitSprite()
InitKeyboard()
InitMouse()
Global r.l=128, g.l=0, b.l=255, sx.l=0, sy.l=0, *DrawingBufferPointer.LONG
OpenScreen(800,600,32,"DBuffer Test")
StartDrawing(ScreenOutput())
Pitch = DrawingBufferPitch()
PixelFormat = DrawingBufferPixelFormat()
StopDrawing()
Repeat
ExamineKeyboard() : ExamineMouse()
ClearScreen(0)
StartDrawing(ScreenOutput())
*DrawingBufferPointer.LONG = DrawingBuffer()
For y = 0 To 599
For x = 0 To 799
*DrawingBuffer.LONG = *DrawingBufferPointer
*DrawingBuffer + (Pitch*y)+(x*4)
*DrawingBuffer\l = RGB(r,g,b)
Next
Next
For x = -5 To 5
*DrawingBuffer.LONG = *DrawingBufferPointer
*DrawingBuffer + (Pitch*MouseY())+((MouseX()+x)*4)
*DrawingBuffer\l = $FF0000
Next
For y = -5 To 5
*DrawingBuffer.LONG = *DrawingBufferPointer
*DrawingBuffer + (Pitch*(MouseY()+y))+(MouseX()*4)
*DrawingBuffer\l = RGB(r,g,b)
*DrawingBuffer\l = $FF0000
Next
For y = -3 To 3
For x = -3 To 3
*DrawingBuffer.LONG = *DrawingBufferPointer
*DrawingBuffer + (Pitch*(y+sy))+((x+sx)*4)
*DrawingBuffer\l = $00FF00
Next
Next
StopDrawing()
FlipBuffers()
sx+1
sy+1
r+1
g+1
b+1
If r > 255 : r = 0 : EndIf
If g > 255 : g = 0 : EndIf
If b > 255 : b = 0 : EndIf
Until KeyboardPushed(#PB_Key_Escape)
End
gehts noch schneller?
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
InitSprite()
InitKeyboard()
InitMouse()
Global r.l=128, g.l=0, b.l=255, sx.l=0, sy.l=0, *DrawingBufferPointer.LONG
OpenScreen(800,600,32,"DBuffer Test")
StartDrawing(ScreenOutput())
Pitch = DrawingBufferPitch()
PixelFormat = DrawingBufferPixelFormat()
StopDrawing()
Repeat
ExamineKeyboard() : ExamineMouse()
mx = MouseX()
my = MouseY()
ClearScreen(0)
StartDrawing(ScreenOutput())
*DrawingBufferPointer.LONG = DrawingBuffer()
For y = 0 To 599
For x = 0 To 799
*DrawingBuffer.LONG = *DrawingBufferPointer
*DrawingBuffer + (Pitch*y)+(x*4)
*DrawingBuffer\l = RGB(r,g,b)
Next
Next
For x = -5 To 5
*DrawingBuffer.LONG = *DrawingBufferPointer
*DrawingBuffer + (Pitch*my)+((mx+x)*4)
*DrawingBuffer\l = $FF0000
Next
For y = -5 To 5
*DrawingBuffer.LONG = *DrawingBufferPointer
*DrawingBuffer + (Pitch*(my+y))+(mx*4)
*DrawingBuffer\l = $FF0000
Next
For y = -3 To 3
For x = -3 To 3
*DrawingBuffer.LONG = *DrawingBufferPointer
*DrawingBuffer + (Pitch*(y+sy))+((x+sx)*4)
*DrawingBuffer\l = $00FF00
Next
Next
StopDrawing()
FlipBuffers()
sx+1
sy+1
r+1
g+1
b+1
If r > 255 : r = 0 : EndIf
If g > 255 : g = 0 : EndIf
If b > 255 : b = 0 : EndIf
Until KeyboardPushed(#PB_Key_Escape)
End
noch ne Idee?
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
So sollte es eigentlich nicht mehr ruckeln auf einem einigermaßen aktuellem system >= 500Mhz.
Vieleicht ist es ja ein refreshproblem. Versuch mal verschiedene Refresh-frequenzen, vieleicht bringt das was.
Versuch vieleicht auch mal FlipBuffers vor das StartDrawing zu setzen, so dass immer am anfang eines durchlaufs geflippt wird. Das hat bei mir schonmal geholfen.
InitSprite()
InitKeyboard()
InitMouse()
Global Dim Ws.b (500,400), Dim F.b (10,10), Quit.b
Global fx.l, fy.l
OpenScreen(800,600,32,"DBuffer Test")
StartDrawing(ScreenOutput())
Pitch = DrawingBufferPitch()
PixelFormat = DrawingBufferPixelFormat()
StopDrawing()
CreateSprite(0,10,10)
StartDrawing(SpriteOutput(0))
Circle(5,5,5,$0000FF)
For y = 0 To 9
For x = 0 To 9
If Point(x,y) = $0000FF
F(x,y)=1
EndIf
Next
Next
StopDrawing()
For y = 0 To 399
For x = 0 To 499
Ws(x,y) = 1
Next
Next
Repeat
ExamineKeyboard()
ClearScreen(0)
StartDrawing(ScreenOutput())
*DrawingBufferPointer.LONG = DrawingBuffer()
For y = 0 To 399
For x = 0 To 499
*DrawingBuffer.LONG = *DrawingBufferPointer
*DrawingBuffer + (Pitch*(y+100))+((x+150)*4)
If Ws(x,y) = 1
*DrawingBuffer\l = $00FF00
ElseIf Ws(x,y) = 2
*DrawingBuffer\l = $0000FF
EndIf
Next
Next
StopDrawing()
DisplayTransparentSprite(0,fx,fy)
FlipBuffers()
If fx>140 And fx<650 And fy>90 And fy<500
For y = 0 To 9
For x = 0 To 9
If F(x,y) = 1
If fx+x>149 And fx+x<650 And fy+y>99 And fy+y<500
Ws(fx+x-150,fy+y-100) = 2
EndIf
EndIf
Next
Next
EndIf
If KeyboardPushed(#PB_Key_Up)
fy-2
EndIf
If KeyboardPushed(#PB_Key_Down)
fy+2
EndIf
If KeyboardPushed(#PB_Key_Right)
fx+2
EndIf
If KeyboardPushed(#PB_Key_Left)
fx-2
EndIf
If KeyboardPushed(#PB_Key_Escape)
Quit = 1
EndIf
Until Quit = 1
End
So kannste Fräsen mit Cursortasten das fetzt
Und was sagste????
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix