beautypg.com

BrightSign BrightScript 2 Reference Guide User Manual

Page 58

background image

58

m.seg_list.RemoveTail()

else

tail.AddReplace(

"Len"

,len)

' same as tail.Len=len

endif

return

m.MakeLonger(text_field)

End

Function


Function

snkMakeLonger(text_field

As

Object

)

As

Boolean

m.snake_X=m.snake_X+m.dx
m.snake_Y=m.snake_Y+m.dy
text_field.SetCursorPos(m.snake_X, m.snake_Y)

if

text_field.GetValue()=m.body

then

return

true

text_field.SendByte(m.body)
head = m.seg_list.GetHead()
head.Len=head.Len+1

return

false

End

Function


Sub

snkAddSegment(dx

As

Integer

, dy

As

Integer

, len

as

Integer

)


aa=CreateObject(

"roAssociativeArray"

)

aa.AddReplace(

"xDelta"

,-dx)

' line segments draw from head to tail

aa.AddReplace(

"yDelta"

,-dy)

aa.AddReplace(

"Len"

,len)

m.seg_list.AddHead(aa)

End

Sub



Sub

snkTurnNorth()

if

m.dx<>0

or

m.dy<>-1

then

m.dx=0:m.dy=-1:m.AddSegment(m.dx, m.dy, 0)

'north

End

Sub


Sub

snkTurnSouth()

if

m.dx<>0

or

m.dy<>1

then

m.dx=0:m.dy=1:m.AddSegment(m.dx, m.dy, 0)

'south

End

Sub


Sub

snkTurnEast()

if

m.dx<>-1

or

m.dy<>0

then

m.dx=-1:m.dy=0:m.AddSegment(m.dx, m.dy, 0)

'east

End

Sub


Sub

snkTurnWest()

if

m.dx<>1

or

m.dy<>0

then

m.dx=1:m.dy=0:m.AddSegment(m.dx, m.dy, 0)

'west

End

Sub