Microsoft Small Basic

Program Listing:
 Embed this in your website
' Challenge of the month July 2013 // Walking man by NaochanON
Shapes_Init()

While (pos<1100)
dx=6
dy=2
MM=MM+5
walking()
If -30<MM And  MM<30 Then
NN=MM
ElseIf 30<=MM and MM<90 Then
NN=60-MM
Elseif MM=90 then
MM=-30
EndIf
Program.Delay(200)
endwhile

Sub armlegmoving
'-------------------------------------- Arm & Hand ---------------------------------------------------------------------------------------
ArmCP="X="+(shapes.GetLeft(shp[7]["obj"])+shp[7]["width"]/2)+";Y="+(shapes.Gettop(shp[7]["obj"]))
ArmDR= shp[5]["height"]/2
Shapes.Rotate(shp[8]["obj"],NN)                                        ' Left arm // backward
Shapes.Rotate(shp[9]["obj"],NN)                                        ' Left hand // backward
Shapes.Rotate(shp[5]["obj"],-NN)                                        ' Right arm // forward
Shapes.Rotate(shp[6]["obj"],-NN)                                        ' Right hand// forward
'-------------------------------------- Leg & Foot --------------------------------------------------------------------------------------- ----------------
LegCP="X="+(shapes.GetLeft(shp[7]["obj"])+shp[7]["width"]/2-5)+";Y="+(shapes.Gettop(shp[7]["obj"]) +shp[7]["height"]-5) ' 5... adjustment
LegDR=shp[10]["height"]/2
Shapes.Rotate(shp[10]["obj"],NN)                                        ' Left leg // backward
Shapes.Rotate(shp[11]["obj"],NN)                                        ' Left foot // backward
Shapes.Rotate(shp[12]["obj"],-NN)                                        ' Right leg// forward
Shapes.Rotate(shp[13]["obj"],-NN)                                        ' Left foot // forward
EndSub

Sub walking
For k=1 To  Array.GetItemCount(shp)
Shapes.Move(shp[k]["obj"],Shapes.GetLeft(shp[k]["obj"])+dx,Shapes.Gettop(shp[k]["obj"])+dy)
endfor
pos=Shapes.GetLeft(shp[1]["obj"])
armlegmoving()
EndSub

GraphicsWindow.BackgroundColor="Lightcyan"
GraphicsWindow.Width=1200
GraphicsWindow.Height=700
For i = 1 To Array.GetItemCount(shp)
GraphicsWindow.PenWidth = shp[i]["pw"]
GraphicsWindow.PenColor = shp[i]["pc"]
GraphicsWindow.BrushColor = shp[i]["bc"]
If shp[i]["func"] = "rect" Then
shp[i]["obj"] = shapes.AddRectangle(shp[i]["width"], shp[i]["height"])
ElseIf shp[i]["func"] = "ell" Then
shp[i]["obj"] = shapes.AddEllipse(shp[i]["width"], shp[i]["height"])
ElseIf shp[i]["func"] = "tri" Then
shp[i]["obj"] = shapes.AddTriangle(shp[i]["x1"], shp[i]["y1"], shp[i]["x2"], shp[i]["y2"], shp[i]["x3"], shp[i]["y3"] )
ElseIf shp[i]["func"] = "line" Then
shp[i]["obj"] = shapes.AddLine(shp[i]["x1"], shp[i]["y1"], shp[i]["x2"], shp[i]["y2"])
EndIf
Shapes.Move(shp[i]["obj"], X0 + shp[i]["x"], Y0 + shp[i]["y"])
If shp[i]["angle"] <> 0 Then
Shapes.Rotate(shp[i]["obj"], shp[i]["angle"])
EndIf
EndFor
EndSub

Sub Shapes_Init
X0 = 10        ' x offset
Y0 = 50       ' y offset
shp[1] = "func=ell;x=42;y=0;width=34;height=45;bc=#EB9869;pc=#EB9869;pw=2;"               ' face
shp[2] = "func=line;x=65;y=13;x1=0;y1=0;x2=8;y2=1;pc=#6A5ACD;pw=4;"                       ' Eye
shp[3] = "func=line;x=65;y=29;x1=0;y1=0;x2=8;y2=3;pc=#F80800;pw=2;"                       ' mouse
shp[4] = "func=tri;x=74;y=17;x1=0;y1=0;x2=10;y2=8;x3=0;y3=12;angle=0;bc=#EB9869;pc=#EB9869;pw=1;"  'nose
shp[5] = "func=rect;x=53;y=50;width=8;height=60;angle=0;bc=#6A5ACD;pc=#000000;pw=1;"      ' Left arm
shp[6] = "func=ell;x=53;y=110;width=13;height=22;angle=0;bc=#EB9869;pc=#EB9869;pw=8;"     ' Left hand
shp[7] = "func=ell;x=40;y=42;width=33;height=103;bc=#00AA00;pc=#00AA00;pw=2;"             ' body
shp[8] = "func=rect;x=53;y=50;width=8;height=60;angle=0;bc=#00BB00;pc=#000000;pw=1;"      ' Right arm
shp[9] = "func=ell;x=53;y=110;width=13;height=22;angle=0;bc=#EB9869;pc=#EB9869;pw=2;"     ' Right hand
shp[10] = "func=rect;x=50;y=140;width=12;height=71;angle=0;bc=#6A5ACD;pc=#6A5ACD;pw=2;"   ' left Leg
shp[11] = "func=ell;x=50;y=209;width=33;height=13;angle=0;bc=#BED3CA;pc=#414C3E;pw=2;"    ' left foot
shp[12] = "func=rect;x=50;y=140;width=12;height=71;angle=0;bc=#00AA00;pc=#6A5ACD;pw=2;"   ' Right Leg
shp[13] = "func=ell;x=50;y=209;width=33;height=13;angle=0;bc=#1AD3CA;pc=#414C3E;pw=2;"    ' Right foot
EndSub