Код:
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