BrightSign BrightScript 2 Reference Guide User Manual
Page 58

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