[an error occurred while processing this directive]
( Тестовый пример для просто играния
( Просто бегающая палочка с бегающим шариком
( Написано 10.94
¤Constant palk "<=¤=>"
¤Constant brd "+-+!++"
&cf Constant Ball
0 Variable bx ( Текущая координата по Х шарика
0 Variable by ( Текущая координата по У шарика
1 Variable dbx ( Приращение шарика по Х
2 Variable dby ( Приращение шарика по У
0 Variable LastCode ( Код с клавиатуры
0 Variable px ( Текущая координата по X палки
: py WinDepth @ 1- ; ( Текущая координата по У палки
: MovePalkL ( Движение палки влево
px @ 0 =
IfNot
px 1-! px @ py GotoXY palk OutS Space
Then False ;
: MovePalkR ( Движение палки вправо
px @ palk c@ + 1+ WinWidth @ <
If
px @ py GotoXY Space
palk outs px 1+!
Then False ;
: Knk &c030 c@ Drop ;
: Knock Knk Knk ;
: ChangeWord dup @ minus swap ! Knock ;
: SetBallCoor bx @ by @ GotoXY ;
: ClearBall SetBallCoor Space ;
: SetBall SetBallCoor Ball Out ;
: GetChar@ >r WinX @ + r> WinY @ + GetChar &ff And ;
: bx+dx bx @ dbx @ + ;
: by+dy by @ dby @ + ;
: MoveBall ( Движение шарика по стенкам
bx @ by @
( Проверка по Х
bx+dx Dup by @ GetChar@
Blank =
IfNot
dbx ChangeWord Drop bx+dx
Then
bx !
( Проверка по У
bx @ by+dy Swap Over GetChar@
Blank =
IfNot
dby ChangeWord Drop by+dy
Then
by !
SetBall GotoXY Space ;
: Escp true ; : ---- False ;
LeftKey RightKey EscapeKey 3
NCase MoveBit Escp MovePalkR MovePalkL ----
: PlayGame px @ py GotoXY palk OutS
Begin In
If
LastCode !
Then
MoveBall ( Двигаем "шарик" по полю
LastCode @ MoveBit
Until ;
: MyGame 0 px ! 0 LastCode !
0 bx ! 0 by ! 1 dbx ! 1 dby !
1 Text64 Screen Drop PushState
0 0 15 15 Window GetWindow PushWindow PushState
coff
GetWindow brd 1+ ShowBorder
WinWidth @ #11 - 2/ Dup 0 GotoXY ." Моя игрушка"
GetWindow 1- >r 1- >r 1+ >r 1+ r> r> r> Window
ClrScr GetWindow >r 1+ r> Window
3 - 5 GotoXY ." rrr tqi nf m" PlayGame
con
PopState GetWindow 2Drop PopWindow PopState
cr ." Have a nice Forth!" ;
MyGame
[an error occurred while processing this directive]