Procedure colr(n)
If n&8
cv=255
Else
cv=127
EndIf
If n&1
rr=cv
Else
rr=0
EndIf
If n&2
bb=cv
Else
bb=0
EndIf
If n&4
gg=cv
Else
gg=0
EndIf
ProcedureReturn RGB(rr,gg,bb)
EndProcedure
Global x.f=0
Global y.f=0
Global n
Procedure drawh()
StartDrawing(CanvasOutput(0))
Box(0,0,640,480,0)
For K=0 To 100000
t.f=x
x=y-Sign(x)*Sqr(Abs(4*x-60))
y=1-t
n+1
Box(Int(x*2)+320,Int(y*2)+240,1,1,colr(n&15))
Next K
StopDrawing()
x=x/10
y=y/10
;SetWindowTitle(0,"hopalong,x="+Str(x)+",y="+Str(y))
EndProcedure
If OpenWindow(0,0,0,640,480,"Hopalong",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget)
CanvasGadget(0,0,0,640,480)
drawh()
Repeat
ev=WaitWindowEvent()
If ev=#PB_Event_Gadget And EventType()=#PB_EventType_LeftClick
drawh()
EndIf
If GetAsyncKeyState_(#VK_ESCAPE)&32768
Break
EndIf
Until ev=#PB_Event_CloseWindow
EndIf
If n&8
cv=255
Else
cv=127
EndIf
If n&1
rr=cv
Else
rr=0
EndIf
If n&2
bb=cv
Else
bb=0
EndIf
If n&4
gg=cv
Else
gg=0
EndIf
ProcedureReturn RGB(rr,gg,bb)
EndProcedure
Global x.f=0
Global y.f=0
Global n
Procedure drawh()
StartDrawing(CanvasOutput(0))
Box(0,0,640,480,0)
For K=0 To 100000
t.f=x
x=y-Sign(x)*Sqr(Abs(4*x-60))
y=1-t
n+1
Box(Int(x*2)+320,Int(y*2)+240,1,1,colr(n&15))
Next K
StopDrawing()
x=x/10
y=y/10
;SetWindowTitle(0,"hopalong,x="+Str(x)+",y="+Str(y))
EndProcedure
If OpenWindow(0,0,0,640,480,"Hopalong",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget)
CanvasGadget(0,0,0,640,480)
drawh()
Repeat
ev=WaitWindowEvent()
If ev=#PB_Event_Gadget And EventType()=#PB_EventType_LeftClick
drawh()
EndIf
If GetAsyncKeyState_(#VK_ESCAPE)&32768
Break
EndIf
Until ev=#PB_Event_CloseWindow
EndIf
Комментарии
Отправить комментарий