; PureBasic 4.31 ; tentacles port by dzanis 15.01.2011 #ScreenHeight = 600 #ScreenWidth = 800 #tentaclesCount = 12 ;количество шупалец #elementCount = 8 ;количество звеньев в одном шупальце Dim A.d(#elementCount) ;массив для углов звеньев Len = #ScreenHeight/2/#elementCount ; расчёт длинны шупальца PI.f = 3.14159265 D.f = PI*2/#tentaclesCount ;просто оптимизация If InitSprite() And InitKeyboard() And OpenScreen(#ScreenWidth, #ScreenHeight, 32, "tentacles") Repeat ClearScreen(0) ExamineKeyboard() StartDrawing(ScreenOutput()) If Random(50)=0 ;задаём частоту изменения углов звеньев K.f = PI * Random(360)/180.0 EndIf A(0)=A(0)+Sin(K)/10.0 For I=1 To #elementCount A(I)= A(I)+(A(I-1)-A(I))*0.1 Next For J=0 To #tentaclesCount ;цикл шупалец X = #ScreenWidth / 2 ; устанавливаем начало прорисовки звена от центра Y = #ScreenHeight / 2 For I=1 To #elementCount ;цикл звеньев R.f =J*D+A(I);немного школьной тригинометрии TX.f = X + Sin(R) * Len TY.f = Y + Cos(R) * Len LineXY(X, Y, TX, TY ,RGB(255,255-255*I/8,255)) X = TX ;устанавливаем начало прорисовки следуюшего звена от конца предыдушего звена Y = TY Next Next StopDrawing() FlipBuffers() Delay(20) Until KeyboardPushed(#PB_Key_Escape) Else MessageRequester("Error","Can't open the screen !",0) EndIf End ; IDE Options = PureBasic 4.31 (Windows - x86) ; CursorPosition = 24 ; DisableDebugger ; CurrentDirectory = C:\PureBasik\ ; CompileSourceDirectory ; AddResource = music.mid