Small Basic中文站-快乐编程

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1956|回复: 1

类似minecraft的2D游戏【Island Craft 1.1】

[复制链接]
发表于 2014-10-23 20:12:18 | 显示全部楼层 |阅读模式
本帖最后由 study_hard 于 2014-10-24 18:03 编辑

http://smallbasic.com/program/?GFG649
新增系统:
1.物品:金粉、钻石粉、藤帘、金色毛毯、浅蓝毛毯
2.缩短一天的时间和扣饥饿的频率
3.修复一些BUG
4.睡觉功能、保存存档

由于发布不了图片,请谅解。但是可以去下面网址看
图片、更新过程请看http://tieba.baidu.com/p/3329462479?pn=1至第15页

代码(分为两个部分,请把两个部分都复制上去,共1380行):
第一部分:0-480行
第二部分:0-900行
执行BUG:执行后会提示错误:请在Sub typerinformation前面换行(由于排版错误)

  1. '2014.10.1   开始制作
  2. '更新步骤:
  3. GraphicsWindow.Width=700
  4. GraphicsWindow.Height=530
  5. GraphicsWindow.Left=(Desktop.Width-GraphicsWindow.Width)/2-50
  6. GraphicsWindow.Top=(Desktop.Height-GraphicsWindow.Height)/2-50
  7. GraphicsWindow.Title="Island Craft"
  8. Controls.ButtonClicked=buttonclicked
  9. GraphicsWindow.KeyDown=keydown
  10. GraphicsWindow.MouseDown=mousedown
  11. screen=1
  12. check=1
  13. gameload=0
  14. path="E:\Island Craft1"     '默认打开方式     标准:E:\Island Craft1    ,    E:\编程\LOCK\LOCK2\lock\文件\Island Craft1
  15. baginformation()
  16. typerinformation()
  17. drawscreen()
  18. worldwidth=100
  19. worldlength=worldwidth
  20. Sub drawscreen
  21.   If screen=1 Then
  22.     GraphicsWindow.Clear()
  23.     GraphicsWindow.BrushColor="Black"
  24.     GraphicsWindow.FontSize=36
  25.     GraphicsWindow.DrawText(50,50,"Island Craft岛屿生存")
  26.     GraphicsWindow.FontSize=25
  27.     GraphicsWindow.DrawText(50,165,"输入存档路径:")
  28.     enterkeypath=Controls.AddTextBox(50,200)
  29.     Controls.SetSize(enterkeypath,500,40)
  30.     Controls.SetTextBoxText(enterkeypath,path)
  31.     startplaygame=Controls.AddButton("PLAY",580,200)
  32.     Controls.SetSize(startplaygame,80,40)
  33.   ElseIf screen=2 Then
  34.     GraphicsWindow.Clear()
  35.     firstgameload=0
  36.     GraphicsWindow.DrawText(200,150,"第一次进入此存档需要加载")
  37.     GraphicsWindow.DrawText(280,190,"请耐心等候")
  38.     showfirstgameload=Shapes.AddText("已加载"+firstgameload+"%")
  39.     Shapes.Move(showfirstgameload,270,230)
  40.     mex=Math.Floor(worldwidth/2)+1
  41.     mey=Math.Floor(worldlength/2)+1
  42.     For i=1 To worldlength
  43.       For j=1 To worldwidth
  44.         If i=mex And j=mey Then
  45.           thing[i][j]=120
  46.         ElseIf i=mex-1 And j=mey Then
  47.           thing[i][j]=120
  48.         ElseIf i=mex-2 And j=mey Then
  49.           thing[i][j]=120
  50.         Else
  51.           thing[i][j]=Math.GetRandomNumber(120)
  52.         EndIf
  53.         File.WriteLine(path,(i-1)*worldwidth+j+1,thing[i][j])
  54.         firstgameload=Math.Round((i*100+j)/worldlength-1)/2
  55.         Shapes.SetText(showfirstgameload,"已加载"+firstgameload+"%")
  56.       EndFor
  57.     EndFor
  58.     For i=1 To allcheck
  59.       File.WriteLine(path,worldlength*worldwidth+1+i,0)
  60.       firstgameload=50+Math.Round(50/allcheck)*i-1
  61.       Shapes.SetText(showfirstgameload,"已加载"+firstgameload+"%")
  62.     EndFor
  63.     For i=1 To 6
  64.       File.WriteLine(path,worldlength*worldwidth+1+allcheck+i,0)
  65.     EndFor
  66.     File.WriteLine(path,worldlength*worldwidth+8+allcheck,1)
  67.     File.WriteLine(path,worldlength*worldwidth+9+allcheck,mex)
  68.     File.WriteLine(path,worldlength*worldwidth+10+allcheck,mey)
  69.     For i=1 To 12
  70.       File.WriteLine(path,worldlength*worldwidth+10+allcheck+i,0)
  71.     EndFor
  72.     File.WriteLine(path,worldlength*worldwidth+23+allcheck,10)
  73.     File.WriteLine(path,worldlength*worldwidth+24+allcheck,10)
  74.     File.WriteLine(path,worldlength*worldwidth+25+allcheck,0)
  75.     File.WriteLine(path,worldlength*worldwidth+26+allcheck,0)
  76.     firstgameload=100
  77.     Shapes.SetText(showfirstgameload,"已加载"+firstgameload+"%")
  78.     screen=4
  79.     drawscreen()
  80.   ElseIf screen=3 Then
  81.     GraphicsWindow.Clear()
  82.     willgetthing=0
  83.     gameload=0
  84.     GraphicsWindow.PenWidth=4
  85.     GraphicsWindow.DrawLine(0,451,700,451)
  86.     GraphicsWindow.DrawLine(451,0,451,451)
  87.     GraphicsWindow.PenWidth=4
  88.     GraphicsWindow.FontSize=14
  89.     GraphicsWindow.BrushColor="Black"
  90.     seesight=Shapes.AddRectangle(450,450)
  91.     exchangerdaytime=daytime-200
  92.     If exchangerdaytime>0 Then
  93.       exchangerdaytime=Math.Abs(exchangerdaytime-100)/10*9
  94.     Else
  95.       exchangerdaytime=90
  96.     EndIf
  97.     Shapes.SetOpacity(seesight,90-exchangerdaytime)
  98.     For i=1 To 6
  99.       If holdeasybag=i Then
  100.         GraphicsWindow.PenColor="Red"
  101.         showholdeasybag1=Shapes.AddRectangle(2,40)
  102.         showholdeasybag2=Shapes.AddRectangle(2,40)
  103.         showholdeasybag3=Shapes.AddRectangle(60,2)
  104.         showholdeasybag4=Shapes.AddRectangle(60,2)
  105.         Shapes.Move(showholdeasybag1,19+(i-1)*70,486)
  106.         Shapes.Move(showholdeasybag2,80+(i-1)*70,486)
  107.         Shapes.Move(showholdeasybag3,20+(i-1)*70,485)
  108.         Shapes.Move(showholdeasybag4,20+(i-1)*70,526)
  109.         GraphicsWindow.PenColor="Black"
  110.       EndIf
  111.       GraphicsWindow.DrawRectangle(20+(i-1)*70,486,60,40)
  112.       GraphicsWindow.DrawText(22+(i-1)*70,486,bagthing[easybag[i]])
  113.       GraphicsWindow.DrawText(22+(i-1)*70,506,"x"+bagnum[easybag[i]])
  114.     EndFor
  115.     GraphicsWindow.PenWidth=2
  116.     GraphicsWindow.FontSize=22
  117.     GraphicsWindow.DrawText(10,456,"血量值:"+exchangerblood[blood])
  118.     GraphicsWindow.DrawText(300,456,"饥饿值:"+exchangerhung[hunger])
  119.     For i=mex-4 To mex+4
  120.       For j=mey-4 To mey+4
  121.         instead=thing[i][j]
  122.         If instead<=18 Then    '水
  123.           GraphicsWindow.BrushColor="CornFlowerBlue"
  124.           GraphicsWindow.FillRectangle((i-mex+4)*50,(j-mey+4)*50,50,50)
  125.         Else
  126.           GraphicsWindow.BrushColor="ForestGreen"
  127.           GraphicsWindow.FillRectangle((i-mex+4)*50,(j-mey+4)*50,50,50)
  128.         EndIf
  129.         If instead>18 And instead<=28 Then                 '树木
  130.           GraphicsWindow.BrushColor="DarkGreen"
  131.           GraphicsWindow.FillRectangle((i-mex+4)*50+12.5,(j-mey+4)*50,25,50)
  132.           GraphicsWindow.FillRectangle((i-mex+4)*50,(j-mey+4)*50+12.5,50,25)
  133.         ElseIf instead>30 And instead<=35 Then                 '石头
  134.           GraphicsWindow.BrushColor="Gray"
  135.           GraphicsWindow.FillRectangle((i-mex+4)*50+15,(j-mey+4)*50+15,20,20)
  136.         ElseIf instead=30 Then                 '蘑菇
  137.           GraphicsWindow.BrushColor="Purple"
  138.           GraphicsWindow.FillEllipse((i-mex+4)*50+19,(j-mey+4)*50+12,12,12)
  139.           GraphicsWindow.FillRectangle((i-mex+4)*50+21.5,(j-mey+4)*50+22,7,10)
  140.         ElseIf instead=29 Then                 '南瓜
  141.           GraphicsWindow.BrushColor="Gold"
  142.           GraphicsWindow.FillRectangle((i-mex+4)*50+20,(j-mey+4)*50+15,10,8)
  143.           GraphicsWindow.FillEllipse((i-mex+4)*50+15,(j-mey+4)*50+22,20,20)
  144.         ElseIf instead=46 Then         '猪
  145.           GraphicsWindow.BrushColor="PeachPuff"
  146.           GraphicsWindow.FillRectangle((i-mex+4)*50+18,(j-mey+4)*50+10,14,20)
  147.           GraphicsWindow.FillRectangle((i-mex+4)*50+21,(j-mey+4)*50+30,8,8)
  148.         ElseIf instead=47 Then         '牛
  149.           GraphicsWindow.BrushColor="Peru"
  150.           GraphicsWindow.FillRectangle((i-mex+4)*50+18,(j-mey+4)*50+10,14,20)
  151.           GraphicsWindow.FillRectangle((i-mex+4)*50+21,(j-mey+4)*50+30,8,8)
  152.           If hasescaped=0 Then
  153.             hasescaped=1
  154.             do3()
  155.           Else
  156.             hasescaped=0
  157.           EndIf
  158.         ElseIf instead=48 Then         '羊
  159.           GraphicsWindow.BrushColor="White"
  160.           GraphicsWindow.FillRectangle((i-mex+4)*50+18,(j-mey+4)*50+10,14,20)
  161.           GraphicsWindow.FillRectangle((i-mex+4)*50+21,(j-mey+4)*50+30,8,8)
  162.           If hasescaped=0 Then
  163.             hasescaped=1
  164.             do3()
  165.           Else
  166.             hasescaped=0
  167.           EndIf
  168.         ElseIf instead=121 Then         '毛毯
  169.           GraphicsWindow.BrushColor="White"
  170.           GraphicsWindow.FillRectangle((i-mex+4)*50,(j-mey+4)*50,50,50)
  171.         ElseIf instead=122 Then         '木墩
  172.           GraphicsWindow.BrushColor="BurlyWood"
  173.           GraphicsWindow.FillRectangle((i-mex+4)*50,(j-mey+4)*50,50,50)
  174.           GraphicsWindow.DrawRectangle((i-mex+4)*50+5,(j-mey+4)*50+5,40,40)
  175.           GraphicsWindow.DrawRectangle((i-mex+4)*50+10,(j-mey+4)*50+10,30,30)
  176.           GraphicsWindow.DrawRectangle((i-mex+4)*50+15,(j-mey+4)*50+15,20,20)
  177.           GraphicsWindow.DrawRectangle((i-mex+4)*50+20,(j-mey+4)*50+20,10,10)
  178.         ElseIf instead=123 Then         '石墩
  179.           GraphicsWindow.BrushColor="DarkGray"
  180.           GraphicsWindow.FillRectangle((i-mex+4)*50,(j-mey+4)*50,50,50)
  181.           GraphicsWindow.DrawLine((i-mex+4)*50,(j-mey+4)*50+10,(i-mex+4)*50+50,(j-mey+4)*50+10)
  182.           GraphicsWindow.DrawLine((i-mex+4)*50,(j-mey+4)*50+20,(i-mex+4)*50+50,(j-mey+4)*50+20)
  183.           GraphicsWindow.DrawLine((i-mex+4)*50,(j-mey+4)*50+30,(i-mex+4)*50+50,(j-mey+4)*50+30)
  184.           GraphicsWindow.DrawLine((i-mex+4)*50,(j-mey+4)*50+40,(i-mex+4)*50+50,(j-mey+4)*50+40)
  185.           GraphicsWindow.DrawLine((i-mex+4)*50,(j-mey+4)*50+50,(i-mex+4)*50+50,(j-mey+4)*50+50)
  186.         ElseIf instead=124 Then         '藤帘
  187.           GraphicsWindow.BrushColor="OliveDrab"
  188.           GraphicsWindow.FillRectangle((i-mex+4)*50+1,(j-mey+4)*50,11,45)
  189.           GraphicsWindow.FillRectangle((i-mex+4)*50+13,(j-mey+4)*50,11,45)
  190.           GraphicsWindow.FillRectangle((i-mex+4)*50+25,(j-mey+4)*50,11,45)
  191.           GraphicsWindow.FillRectangle((i-mex+4)*50+37,(j-mey+4)*50,11,45)
  192.           GraphicsWindow.FillRectangle((i-mex+4)*50+49,(j-mey+4)*50,11,45)
  193.         ElseIf instead=125 Then         '金色毛毯
  194.           GraphicsWindow.BrushColor="Yellow"
  195.           GraphicsWindow.FillRectangle((i-mex+4)*50,(j-mey+4)*50,50,50)
  196.         ElseIf instead=126 Then         '浅蓝毛毯
  197.           GraphicsWindow.BrushColor="Aqua"
  198.           GraphicsWindow.FillRectangle((i-mex+4)*50,(j-mey+4)*50,50,50)
  199.         EndIf
  200.         If i=mex And j=mey Then                 '我
  201.           GraphicsWindow.BrushColor="SaddleBrown"
  202.           GraphicsWindow.FillRectangle((i-mex+4)*50+20,(j-mey+4)*50+10,10,10)
  203.           GraphicsWindow.BrushColor="Blue"
  204.           GraphicsWindow.FillRectangle((i-mex+4)*50+20,(j-mey+4)*50+20,10,18)
  205.         EndIf
  206.       EndFor
  207.     EndFor
  208.     For k=1 To 6
  209.       If bagnum[easybag[k]]=0 Then
  210.         File.WriteLine(path,worldlength*worldwidth+1+allcheck+k,0)
  211.       EndIf
  212.     Endfor
  213.   ElseIf screen=4 Then
  214.     GraphicsWindow.Clear()
  215.     GraphicsWindow.FontSize=25
  216.     GraphicsWindow.DrawText(240,150,"正在载入游戏......")
  217.     GraphicsWindow.DrawText(280,190,"请耐心等候")
  218.     showfirstgameload=Shapes.AddText("已加载"+firstgameload+"%")
  219.     Shapes.Move(showfirstgameload,270,230)
  220.     mex=File.ReadLine(path,worldlength*worldwidth+9+allcheck)
  221.     mey=File.ReadLine(path,worldlength*worldwidth+10+allcheck)
  222.     For i=1 To worldlength
  223.       For j=1 To worldwidth
  224.         thing[i][j]=File.ReadLine(path,(i-1)*worldwidth+j+1)
  225.         If thing[i][j]>=46 And thing[i][j]<=animalplace Then
  226.           aniblood[i][j]=haveblood[thing[i][j]]
  227.         EndIf
  228.         firstgameload=Math.Round((i*100+j)/worldlength-1)/2
  229.         Shapes.SetText(showfirstgameload,"已加载"+firstgameload+"%")
  230.       EndFor
  231.     EndFor
  232.     For i=1 To allcheck
  233.       bagnum[i]=File.ReadLine(path,worldlength*worldwidth+1+i)
  234.       firstgameload=50+Math.Round(50/allcheck)*i-1
  235.       Shapes.SetText(showfirstgameload,"已加载"+firstgameload+"%")
  236.     EndFor
  237.     For i=1 To 12
  238.       baglong[i+13]=File.ReadLine(path,worldlength*worldwidth+10+allcheck+i)
  239.     EndFor
  240.     For i=1 To 6
  241.       easybag[i]=File.ReadLine(path,worldlength*worldwidth+1+allcheck+i)
  242.     EndFor
  243.     holdeasybag=File.ReadLine(path,worldlength*worldwidth+8+allcheck)
  244.     blood=File.ReadLine(path,worldlength*worldwidth+23+allcheck)
  245.     hunger=File.ReadLine(path,worldlength*worldwidth+24+allcheck)
  246.     nofood=File.ReadLine(path,worldlength*worldwidth+25+allcheck)
  247.     daytime=File.ReadLine(path,worldlength*worldwidth+26+allcheck)
  248.     firstgameload=100
  249.     Shapes.SetText(showfirstgameload,"已加载"+firstgameload+"%")
  250.     screen=3
  251.     Timer.Tick=timecounter
  252.     Timer.Interval=1000
  253.     drawscreen()
  254.   ElseIf screen=5 Then
  255.     GraphicsWindow.Clear()
  256.     GraphicsWindow.BrushColor="Black"
  257.     GraphicsWindow.FontSize=25
  258.     GraphicsWindow.DrawRectangle(20,20,660,490)
  259.     GraphicsWindow.DrawText(30,30,"背包物品:"+bagthing[check])
  260.     GraphicsWindow.DrawText(30,60,"物品编号:"+check)
  261.     GraphicsWindow.DrawText(30,90,"物品数量:"+bagnum[check])
  262.     GraphicsWindow.DrawText(30,130,"放入快捷包:")
  263.     GraphicsWindow.FontSize=22
  264.     For i=1 To 6
  265.       putinto[i]=Controls.AddButton(i+"号",30+(i-1)*85,160)
  266.       Controls.SetSize(putinto[i],80,35)
  267.     EndFor
  268.     GraphicsWindow.DrawText(30,220,"制作材料1:"+bagthing[bagmake1[check]]+" X"+bagmake1num[check]+"  ,  拥有"+bagnum[bagmake1[check]])
  269.     GraphicsWindow.DrawText(30,250,"制作材料2:"+bagthing[bagmake2[check]]+" X"+bagmake2num[check]+"  ,  拥有"+bagnum[bagmake2[check]])
  270.     GraphicsWindow.DrawText(30,280,"制作材料3:"+bagthing[bagmake3[check]]+" X"+bagmake3num[check]+"  ,  拥有"+bagnum[bagmake3[check]])
  271.     GraphicsWindow.DrawText(30,320,"制作后可得到:"+bagthing[check]+" X"+bagmakeget[check])
  272.     makething=Controls.AddButton("制作1个",30,350)
  273.     If check>=14 And check<=25 Then
  274.       GraphicsWindow.DrawText(30,400,"剩余耐久度:"+baglong[check])
  275.     EndIf
  276.     findinbagwri=Controls.AddTextBox(380,28)
  277.     Controls.SetSize(findinbagwri,180,40)
  278.     findinbagbut=Controls.AddButton("查找",570,28)
  279.     Controls.SetSize(findinbagbut,80,40)
  280.     If bagblood[check]>0 Or baghunger[check]>0 Then
  281.       bageat=Controls.AddButton("食用1个",30,400)
  282.     EndIf
  283.   ElseIf screen=6 Then
  284.     GraphicsWindow.Clear()
  285.     GraphicsWindow.BrushColor="Black"
  286.     GraphicsWindow.FillRectangle(0,0,700,530)
  287.     GraphicsWindow.BrushColor="White"
  288.     GraphicsWindow.FontSize=25
  289.     showmessage=Shapes.AddText("ZZZ...")
  290.     Shapes.Move(showmessage,300,200)
  291.   EndIf  
  292. EndSub
  293. Sub buttonclicked
  294.   If screen=1 And Controls.LastClickedButton=startplaygame Then
  295.     path=Controls.GetTextBoxText(enterkeypath)
  296.     If File.ReadLine(path,1)="" Then
  297.       File.WriteLine(path,1,1)
  298.       screen=2
  299.       drawscreen()
  300.     Else
  301.       screen=4
  302.       drawscreen()
  303.     EndIf
  304.   ElseIf screen=5 Then
  305.     If bagnum[check]>0 Then
  306.       For i=1 To 6
  307.         If Controls.LastClickedButton=putinto[i] Then
  308.           For j=1 To 6
  309.             If i<>j And easybag[j]=check Then
  310.               easybag[j]=0
  311.               File.WriteLine(path,worldlength*worldwidth+1+allcheck+i,check)
  312.             EndIf
  313.           EndFor
  314.           easybag[i]=check
  315.           File.WriteLine(path,worldlength*worldwidth+1+allcheck+i,check)
  316.         EndIf
  317.       EndFor   
  318.     EndIf
  319.     If Controls.LastClickedButton=makething Then
  320.       If bagnum[bagmake1[check]]>=bagmake1num[check] And bagnum[bagmake2[check]]>=bagmake2num[check] Then
  321.         If bagnum[bagmake3[check]]>=bagmake3num[check] Then
  322.           bagnum[bagmake1[check]]=bagnum[bagmake1[check]]-bagmake1num[check]
  323.           bagnum[bagmake2[check]]=bagnum[bagmake2[check]]-bagmake2num[check]
  324.           bagnum[bagmake3[check]]=bagnum[bagmake3[check]]-bagmake3num[check]
  325.           bagnum[check]=bagnum[check]+bagmakeget[check]
  326.           If bagnum[bagmake1[check]]=0 Then
  327.             For i=1 To 6
  328.               If easybag[i]=bagmake1[check] Then
  329.                 easybag[i]=0
  330.                 File.WriteLine(path,worldlength*worldwidth+1+allcheck+i,0)
  331.               EndIf
  332.             EndFor
  333.           EndIf
  334.           If bagnum[bagmake2[check]]=0 Then
  335.             For i=1 To 6
  336.               If easybag[i]=bagmake2[check] Then
  337.                 easybag[i]=0
  338.                 File.WriteLine(path,worldlength*worldwidth+1+allcheck+i,0)
  339.               EndIf
  340.             EndFor
  341.           EndIf
  342.           If bagnum[bagmake3[check]]=0 Then
  343.             For i=1 To 6
  344.               If easybag[i]=bagmake3[check] Then
  345.                 easybag[i]=0
  346.                 File.WriteLine(path,worldlength*worldwidth+1+allcheck+i,0)
  347.               EndIf
  348.             EndFor
  349.           EndIf
  350.           File.WriteLine(path,worldlength*worldwidth+1+bagmake1[check],bagnum[bagmake1[check]])
  351.           File.WriteLine(path,worldlength*worldwidth+1+bagmake2[check],bagnum[bagmake2[check]])
  352.           File.WriteLine(path,worldlength*worldwidth+1+bagmake3[check],bagnum[bagmake3[check]])
  353.           File.WriteLine(path,worldlength*worldwidth+1+check,bagnum[check])
  354.           If check>=14 And check<=25 And bagnum[check]=1 Then
  355.             baglong[check]=baghavelong[check]
  356.             File.WriteLine(path,worldlength*worldwidth+10+allcheck+easybag[holdeasybag],baglong[easybag[holdeasybag]])
  357.           EndIf
  358.         EndIf
  359.       EndIf
  360.       drawscreen()
  361.     ElseIf Controls.LastClickedButton=findinbagbut Then
  362.       findinbagname=Controls.GetTextBoxText(findinbagwri)
  363.       For i=1 To allcheck
  364.         If findinbagname=bagthing[i] Or i=findinbagname Then
  365.           check=i
  366.         EndIf
  367.       EndFor
  368.       drawscreen()
  369.     ElseIf Controls.LastClickedButton=bageat Then
  370.       bagnum[check]=bagnum[check]-1
  371.       blood=blood+bagblood[check]
  372.       hunger=hunger+baghunger[check]
  373.       If blood>10 Then
  374.         blood=10
  375.       EndIf
  376.       If hunger>10 Then
  377.         hunger=10
  378.       EndIf
  379.       File.WriteLine(path,worldlength*worldwidth+24+allcheck,hunger)
  380.       File.WriteLine(path,worldlength*worldwidth+1+check,bagnum[check])
  381.       drawscreen()
  382.     EndIf   
  383.   EndIf  
  384. EndSub
  385. Sub keydown
  386.   If GraphicsWindow.LastKey="Escape" Then
  387.     File.WriteLine(path,worldlength*worldwidth+26+allcheck,daytime)
  388.     File.WriteLine(path,worldlength*worldwidth+25+allcheck,nofood)
  389.     File.WriteLine(path,worldlength*worldwidth+23+allcheck,blood)
  390.     File.WriteLine(path,worldlength*worldwidth+9+allcheck,mex)
  391.     File.WriteLine(path,worldlength*worldwidth+10+allcheck,mey)
  392.     Program.End()
  393.   EndIf
  394.   If screen=3 Then
  395.     If GraphicsWindow.LastKey="W" Or GraphicsWindow.LastKey="Up" Then
  396.       If mey>1 And thing[mex][mey-1]>29 And thing[mex][mey-1]<=45 Then
  397.         mey=mey-1
  398.         drawscreen()
  399.       ElseIf mey>1 And thing[mex][mey-1]>animalplace And thing[mex][mey-1]<=121 Then
  400.         mey=mey-1
  401.         drawscreen()
  402.       ElseIf thing[mex][mey-1]=124 Or thing[mex][mey-1]=125 Or thing[mex][mey-1]=126 Then
  403.         mey=mey-1
  404.         drawscreen()
  405.       EndIf
  406.     ElseIf GraphicsWindow.LastKey="A" Or GraphicsWindow.LastKey="Left" Then
  407.       If mex>1 And thing[mex-1][mey]>29 And thing[mex-1][mey]<=45 Then
  408.         mex=mex-1
  409.         drawscreen()
  410.       ElseIf mex>1 And thing[mex-1][mey]>animalplace And thing[mex-1][mey]<=121 Then
  411.         mex=mex-1
  412.         drawscreen()
  413.       ElseIf thing[mex-1][mey]=124 Or thing[mex-1][mey]=125  Or thing[mex-1][mey]=126 Then
  414.         mex=mex-1
  415.         drawscreen()
  416.       EndIf
  417.     ElseIf GraphicsWindow.LastKey="S" Or GraphicsWindow.LastKey="Down" Then
  418.       If mey<worldwidth And thing[mex][mey+1]>29 And thing[mex][mey+1]<=45 Then
  419.         mey=mey+1
  420.         drawscreen()
  421.       ElseIf mey<worldwidth And thing[mex][mey+1]>animalplace And thing[mex][mey+1]<=121 Then
  422.         mey=mey+1
  423.         drawscreen()
  424.       ElseIf thing[mex][mey+1]=124 Or thing[mex][mey+1]=125 Or thing[mex][mey+1]=126 Then
  425.         mey=mey+1
  426.         drawscreen()
  427.       EndIf
  428.     ElseIf GraphicsWindow.LastKey="D" Or GraphicsWindow.LastKey="Right" Then
  429.       If mex<worldlength And thing[mex+1][mey]>29 And thing[mex+1][mey]<=45 Then
  430.         mex=mex+1
  431.         drawscreen()
  432.       ElseIf mex<worldwidth And thing[mex+1][mey]>animalplace And thing[mex+1][mey]<=121 Then
  433.         mex=mex+1
  434.         drawscreen()
  435.       ElseIf thing[mex+1][mey]<=124 Or thing[mex+1][mey]<=125 Or thing[mex+1][mey]<=126 Then
  436.         mex=mex+1
  437.         drawscreen()
  438.       EndIf
  439.     ElseIf GraphicsWindow.LastKey="E" Then
  440.       screen=5
  441.       drawscreen()
  442.     ElseIf GraphicsWindow.LastKey="R" And daytime>=165 And daytime<=599 Then
  443.       If thing[mx][my]=121 Or thing[mx][my]=125 Or thing[mx][my]=126 Then
  444.         screen=6
  445.         sleeping=1
  446.         drawscreen()
  447.       EndIf
  448.     EndIf
  449.     For i=1 To 6
  450.       If GraphicsWindow.LastKey="D"+i Then
  451.         holdeasybag=i
  452.         Shapes.Move(showholdeasybag1,19+(i-1)*70,486)
  453.         Shapes.Move(showholdeasybag2,80+(i-1)*70,486)
  454.         Shapes.Move(showholdeasybag3,20+(i-1)*70,485)
  455.         Shapes.Move(showholdeasybag4,20+(i-1)*70,526)
  456.         File.WriteLine(path,worldlength*worldwidth+8+allcheck,holdeasybag)
  457.       EndIf
  458.     EndFor
  459.   ElseIf screen=5 Then
  460.     If GraphicsWindow.LastKey="W" Or GraphicsWindow.LastKey="Up" Then
  461.       If check>1 Then
  462.         check=check-1
  463.       Else
  464.         check=allcheck
  465.       EndIf
  466.       drawscreen()
  467.     ElseIf GraphicsWindow.LastKey="S" Or GraphicsWindow.LastKey="Down" Then
  468.       If check<allcheck Then
  469.         check=check+1
  470.       Else
  471.         check=1
  472.       EndIf
  473.       drawscreen()
  474.     ElseIf GraphicsWindow.LastKey="E" Then
  475.       screen=3
  476.       drawscreen()
  477.     EndIf  
  478.   EndIf
  479. EndSub
复制代码
  1. Sub mousedown
  2.   mx=GraphicsWindow.MouseX
  3.   my=GraphicsWindow.MouseY
  4.   If Mouse.IsLeftButtonDown="True" Then
  5.     If mx<450 And my<450 Then
  6.       mx=Math.Floor(mx/50)-4+mex
  7.       my=Math.Floor(my/50)-4+mey
  8.       If Math.Abs(mex-mx)<=1 And Math.Abs(mey-my)<=1 And gameload=0 Then
  9.         If thing[mx][my]=30 Then    '蘑菇
  10.           gameload=2
  11.           If easybag[holdeasybag]>=14 And easybag[holdeasybag]<=19 Then
  12.             gameload=gameload-bagspeed[easybag[holdeasybag]]
  13.             If gameload<=0 Then
  14.               gameload=1
  15.             EndIf
  16.           EndIf
  17.           GraphicsWindow.BrushColor="Black"
  18.           GraphicsWindow.FontSize=25
  19.           showpickcomplete=Shapes.AddText("采集剩余时间:"+gameload+"秒")
  20.           Shapes.Move(showpickcomplete,460,10)
  21.           willgetthing=7
  22.         ElseIf thing[mx][my]>18 And thing[mx][my]<29 Then    '树木
  23.           gameload=10
  24.           If easybag[holdeasybag]>=14 And easybag[holdeasybag]<=19 Then
  25.             gameload=gameload-bagspeed[easybag[holdeasybag]]
  26.             If gameload<=0 Then
  27.               gameload=1
  28.             EndIf
  29.           EndIf
  30.           GraphicsWindow.BrushColor="Black"
  31.           GraphicsWindow.FontSize=25
  32.           showpickcomplete=Shapes.AddText("采集剩余时间:"+gameload+"秒")
  33.           Shapes.Move(showpickcomplete,460,10)
  34.           willgetthing=1
  35.         ElseIf thing[mx][my]>=31 And thing[mx][my]<=35 Then   '石头
  36.           If easybag[holdeasybag]>=14 And easybag[holdeasybag]<=19 Then
  37.             gameload=5
  38.             gameload=gameload-bagspeed[easybag[holdeasybag]]
  39.             If gameload<=0 Then
  40.               gameload=1
  41.             EndIf  
  42.             GraphicsWindow.BrushColor="Black"
  43.             GraphicsWindow.FontSize=25
  44.             showpickcomplete=Shapes.AddText("采集剩余时间:"+gameload+"秒")
  45.             Shapes.Move(showpickcomplete,460,10)
  46.             willgetthing=4
  47.           Else
  48.             GraphicsWindow.BrushColor="Black"
  49.             GraphicsWindow.FontSize=25
  50.             showmessage=Shapes.AddText("太硬了,挖不动")
  51.             Shapes.Move(showmessage,460,70)
  52.           EndIf
  53.         ElseIf thing[mx][my]>=36 And thing[mx][my]<=38 Then   '铁
  54.           If easybag[holdeasybag]>=15 And easybag[holdeasybag]<=19 Then
  55.             gameload=6
  56.             gameload=gameload-bagspeed[easybag[holdeasybag]]
  57.             If gameload<=0 Then
  58.               gameload=1
  59.             EndIf
  60.             GraphicsWindow.BrushColor="Black"
  61.             GraphicsWindow.FontSize=25
  62.             showpickcomplete=Shapes.AddText("采集剩余时间:"+gameload+"秒")
  63.             Shapes.Move(showpickcomplete,460,10)
  64.             willgetthing=10
  65.           Else
  66.             GraphicsWindow.BrushColor="Black"
  67.             GraphicsWindow.FontSize=25
  68.             showmessage=Shapes.AddText("太硬了,挖不动")
  69.             Shapes.Move(showmessage,460,70)
  70.           EndIf
  71.         ElseIf thing[mx][my]>38 And thing[mx][my]<41 Then    '黄金
  72.           If easybag[holdeasybag]>=16 And easybag[holdeasybag]<=19 Then
  73.             gameload=6
  74.             gameload=gameload-bagspeed[easybag[holdeasybag]]
  75.             If gameload<=0 Then
  76.               gameload=1
  77.             EndIf
  78.             GraphicsWindow.BrushColor="Black"
  79.             GraphicsWindow.FontSize=25
  80.             showpickcomplete=Shapes.AddText("采集剩余时间:"+gameload+"秒")
  81.             Shapes.Move(showpickcomplete,460,10)
  82.             willgetthing=11
  83.           Else
  84.             GraphicsWindow.BrushColor="Black"
  85.             GraphicsWindow.FontSize=25
  86.             showmessage=Shapes.AddText("太硬了,挖不动")
  87.             Shapes.Move(showmessage,460,70)
  88.           EndIf
  89.         ElseIf thing[mx][my]=41 Then    '钻石
  90.           If easybag[holdeasybag]>=17 And easybag[holdeasybag]<=19 Then
  91.             gameload=8
  92.             gameload=gameload-bagspeed[easybag[holdeasybag]]
  93.             If gameload<=0 Then
  94.               gameload=1
  95.             EndIf
  96.             GraphicsWindow.BrushColor="Black"
  97.             GraphicsWindow.FontSize=25
  98.             showpickcomplete=Shapes.AddText("采集剩余时间:"+gameload+"秒")
  99.             Shapes.Move(showpickcomplete,460,10)
  100.             willgetthing=12
  101.           Else
  102.             GraphicsWindow.BrushColor="Black"
  103.             GraphicsWindow.FontSize=25
  104.             showmessage=Shapes.AddText("太硬了,挖不动")
  105.             Shapes.Move(showmessage,460,70)
  106.           EndIf
  107.         ElseIf thing[mx][my]=42 Then    '黑曜石
  108.           If easybag[holdeasybag]>=18 And easybag[holdeasybag]<=19 Then
  109.             gameload=9
  110.             gameload=gameload-bagspeed[easybag[holdeasybag]]
  111.             If gameload<=0 Then
  112.               gameload=1
  113.             EndIf
  114.             GraphicsWindow.BrushColor="Black"
  115.             GraphicsWindow.FontSize=25
  116.             showpickcomplete=Shapes.AddText("采集剩余时间:"+gameload+"秒")
  117.             Shapes.Move(showpickcomplete,460,10)
  118.             willgetthing=13
  119.           Else
  120.             GraphicsWindow.BrushColor="Black"
  121.             GraphicsWindow.FontSize=25
  122.             showmessage=Shapes.AddText("太硬了,挖不动")
  123.             Shapes.Move(showmessage,460,70)
  124.           EndIf
  125.         ElseIf thing[mx][my]>=43 And thing[mx][my]<=45 Then    '煤
  126.           If easybag[holdeasybag]>=14 And easybag[holdeasybag]<=19 Then
  127.             gameload=4
  128.             gameload=gameload-bagspeed[easybag[holdeasybag]]
  129.             If gameload<=0 Then
  130.               gameload=1
  131.             EndIf
  132.             GraphicsWindow.BrushColor="Black"
  133.             GraphicsWindow.FontSize=25
  134.             showpickcomplete=Shapes.AddText("采集剩余时间:"+gameload+"秒")
  135.             Shapes.Move(showpickcomplete,460,10)
  136.             willgetthing=9
  137.           Else
  138.             GraphicsWindow.BrushColor="Black"
  139.             GraphicsWindow.FontSize=25
  140.             showmessage=Shapes.AddText("太硬了,挖不动")
  141.             Shapes.Move(showmessage,460,70)
  142.           EndIf
  143.         ElseIf thing[mx][my]=29 Then    '南瓜
  144.           If easybag[holdeasybag]>=14 And easybag[holdeasybag]<=19 Then
  145.             gameload=6
  146.             gameload=gameload-bagspeed[easybag[holdeasybag]]
  147.             If gameload<=0 Then
  148.               gameload=1
  149.             EndIf
  150.             GraphicsWindow.BrushColor="Black"
  151.             GraphicsWindow.FontSize=25
  152.             showpickcomplete=Shapes.AddText("采集剩余时间:"+gameload+"秒")
  153.             Shapes.Move(showpickcomplete,460,10)
  154.             willgetthing=8
  155.           Else
  156.             GraphicsWindow.BrushColor="Black"
  157.             GraphicsWindow.FontSize=25
  158.             showmessage=Shapes.AddText("太硬了,挖不动")
  159.             Shapes.Move(showmessage,460,70)
  160.           EndIf
  161.         ElseIf thing[mx][my]=46 Then    '猪
  162.           hard=2
  163.           do2()
  164.           Sound.PlayClick()
  165.           If aniblood[mx][my]<=0 Then
  166.             bagnum[26]=bagnum[26]+Math.GetRandomNumber(2)
  167.             File.WriteLine(path,worldlength*worldwidth+27,bagnum[26])
  168.             GraphicsWindow.BrushColor="Black"
  169.             GraphicsWindow.FontSize=25
  170.             showgetbagthing=Shapes.AddText("获得物品:生猪肉")
  171.           ElseIf Math.GetRandomNumber(8)=1 Then
  172.             blood=blood-1
  173.             drawscreen()
  174.             GraphicsWindow.BrushColor="Black"
  175.             GraphicsWindow.FontSize=25
  176.             showmessage2=Shapes.AddText("遭到反抗,扣了血")
  177.             Shapes.Move(showmessage2,460,100)
  178.           EndIf
  179.         ElseIf thing[mx][my]=47 Then    '牛
  180.           hard=3
  181.           do2()
  182.           Sound.PlayClick()
  183.           If aniblood[mx][my]<=0 Then
  184.             bagnum[28]=bagnum[28]+Math.GetRandomNumber(2)
  185.             File.WriteLine(path,worldlength*worldwidth+29,bagnum[28])
  186.             GraphicsWindow.BrushColor="Black"
  187.             GraphicsWindow.FontSize=25
  188.             showgetbagthing=Shapes.AddText("获得物品:生牛肉")
  189.           ElseIf Math.GetRandomNumber(5)=1 Then
  190.             blood=blood-1
  191.             drawscreen()
  192.             GraphicsWindow.BrushColor="Black"
  193.             GraphicsWindow.FontSize=25
  194.             showmessage2=Shapes.AddText("遭到反抗,扣了血")
  195.             Shapes.Move(showmessage2,460,100)
  196.           EndIf
  197.           If Math.GetRandomNumber(5)=1 Then
  198.             blood=blood-1
  199.             drawscreen()
  200.             GraphicsWindow.BrushColor="Black"
  201.             GraphicsWindow.FontSize=25
  202.             showmessage2=Shapes.AddText("遭到反抗,扣了血")
  203.             Shapes.Move(showmessage2,460,100)
  204.           EndIf
  205.         ElseIf thing[mx][my]=48 Then    '羊
  206.           hard=2
  207.           do2()
  208.           Sound.PlayClick()
  209.           If aniblood[mx][my]<=0 Then
  210.             bagnum[34]=bagnum[34]+1
  211.             File.WriteLine(path,worldlength*worldwidth+35,bagnum[34])
  212.           EndIf
  213.           drawscreen()
  214.           If aniblood[mx][my]<=0 Then
  215.             GraphicsWindow.BrushColor="Black"
  216.             GraphicsWindow.FontSize=25
  217.             showgetbagthing=Shapes.AddText("获得物品:羊毛")
  218.           EndIf
  219.         ElseIf thing[mx][my]=121 Then    '毛毯
  220.           gameload=2
  221.           GraphicsWindow.BrushColor="Black"
  222.           GraphicsWindow.FontSize=25
  223.           showpickcomplete=Shapes.AddText("采集剩余时间:"+gameload+"秒")
  224.           Shapes.Move(showpickcomplete,460,10)
  225.           willgetthing=35
  226.         ElseIf thing[mx][my]=122 Then    '木桩
  227.           gameload=3
  228.           GraphicsWindow.BrushColor="Black"
  229.           GraphicsWindow.FontSize=25
  230.           showpickcomplete=Shapes.AddText("采集剩余时间:"+gameload+"秒")
  231.           Shapes.Move(showpickcomplete,460,10)
  232.           willgetthing=36
  233.         ElseIf thing[mx][my]=123 Then    '石桩
  234.           gameload=3
  235.           GraphicsWindow.BrushColor="Black"
  236.           GraphicsWindow.FontSize=25
  237.           showpickcomplete=Shapes.AddText("采集剩余时间:"+gameload+"秒")
  238.           Shapes.Move(showpickcomplete,460,10)
  239.           willgetthing=37
  240.         ElseIf thing[mx][my]=124 Then    '藤帘
  241.           gameload=2
  242.           GraphicsWindow.BrushColor="Black"
  243.           GraphicsWindow.FontSize=25
  244.           showpickcomplete=Shapes.AddText("采集剩余时间:"+gameload+"秒")
  245.           Shapes.Move(showpickcomplete,460,10)
  246.           willgetthing=39
  247.         ElseIf thing[mx][my]=125 Then    '金色毛毯
  248.           gameload=2
  249.           GraphicsWindow.BrushColor="Black"
  250.           GraphicsWindow.FontSize=25
  251.           showpickcomplete=Shapes.AddText("采集剩余时间:"+gameload+"秒")
  252.           Shapes.Move(showpickcomplete,460,10)
  253.           willgetthing=41
  254.         ElseIf thing[mx][my]=126 Then    '浅蓝毛毯
  255.           gameload=2
  256.           GraphicsWindow.BrushColor="Black"
  257.           GraphicsWindow.FontSize=25
  258.           showpickcomplete=Shapes.AddText("采集剩余时间:"+gameload+"秒")
  259.           Shapes.Move(showpickcomplete,460,10)
  260.           willgetthing=42
  261.         EndIf
  262.         If thing[mx][my]>=46 And thing[mx][my]<=animalplace Then
  263.           If broken=1 Then
  264.             GraphicsWindow.BrushColor="Black"
  265.             GraphicsWindow.FontSize=25
  266.             showmessage=Shapes.AddText("攻击损坏了工具")
  267.             Shapes.Move(showmessage,460,70)
  268.           EndIf
  269.           broken=0
  270.           Shapes.Move(showgetbagthing,460,40)
  271.         EndIf
  272.       EndIf
  273.     EndIf
  274.   ElseIf Mouse.IsRightButtonDown="True" Then
  275.     If mx<450 And my<450 Then
  276.       mx=Math.Floor(mx/50)-4+mex
  277.       my=Math.Floor(my/50)-4+mey
  278.       If Math.Abs(mex-mx)<=1 And Math.Abs(mey-my)<=1 Then
  279.         If (thing[mx][my]>=animalplace And thing[mx][my]<=120) Or (thing[mx][my]>=34 And thing[mx][my]<=45) Then
  280.           If easybag[holdeasybag]=35 Then    '毛毯
  281.             bagnum[easybag[holdeasybag]]=bagnum[easybag[holdeasybag]]-1
  282.             do4()
  283.             File.WriteLine(path,worldwidth*worldlength+36,bagnum[easybag[holdeasybag]])
  284.             thing[mx][my]=121
  285.             File.WriteLine(path,(mx-1)*worldwidth+my+1,121)
  286.             drawscreen()
  287.           ElseIf easybag[holdeasybag]=36 Then    '木墩
  288.             bagnum[easybag[holdeasybag]]=bagnum[easybag[holdeasybag]]-1
  289.             do4()
  290.             File.WriteLine(path,worldwidth*worldlength+37,bagnum[easybag[holdeasybag]])
  291.             thing[mx][my]=122
  292.             File.WriteLine(path,(mx-1)*worldwidth+my+1,122)
  293.             drawscreen()
  294.           ElseIf easybag[holdeasybag]=37 Then    '石墩
  295.             bagnum[easybag[holdeasybag]]=bagnum[easybag[holdeasybag]]-1
  296.             do4()
  297.             File.WriteLine(path,worldwidth*worldlength+38,bagnum[easybag[holdeasybag]])
  298.             thing[mx][my]=123
  299.             File.WriteLine(path,(mx-1)*worldwidth+my+1,123)
  300.             drawscreen()
  301.           ElseIf easybag[holdeasybag]=39 Then    '藤帘
  302.             bagnum[easybag[holdeasybag]]=bagnum[easybag[holdeasybag]]-1
  303.             do4()
  304.             File.WriteLine(path,worldwidth*worldlength+40,bagnum[easybag[holdeasybag]])
  305.             thing[mx][my]=124
  306.             File.WriteLine(path,(mx-1)*worldwidth+my+1,124)
  307.             drawscreen()
  308.           ElseIf easybag[holdeasybag]=42 Then    '金色毛毯
  309.             bagnum[easybag[holdeasybag]]=bagnum[easybag[holdeasybag]]-1
  310.             do4()
  311.             File.WriteLine(path,worldwidth*worldlength+42,bagnum[easybag[holdeasybag]])
  312.             thing[mx][my]=125
  313.             File.WriteLine(path,(mx-1)*worldwidth+my+1,125)
  314.             drawscreen()
  315.           ElseIf easybag[holdeasybag]=43 Then    '浅蓝毛毯
  316.             bagnum[easybag[holdeasybag]]=bagnum[easybag[holdeasybag]]-1
  317.             do4()
  318.             File.WriteLine(path,worldwidth*worldlength+43,bagnum[easybag[holdeasybag]])
  319.             thing[mx][my]=126
  320.             File.WriteLine(path,(mx-1)*worldwidth+my+1,126)
  321.             drawscreen()
  322.           EndIf
  323.         EndIf  
  324.       EndIf
  325.     EndIf   
  326.   EndIf
  327. EndSub
  328. Sub timecounter
  329.   nofood=nofood+1
  330.   If nofood>=60 Then
  331.     nofood=0
  332.     hunger=hunger-1
  333.     File.WriteLine(path,worldlength*worldwidth+24+allcheck,hunger)
  334.     drawscreen()
  335.   EndIf
  336.   daytime=daytime+1
  337.   If daytime>=400 Then
  338.     daytime=0
  339.   EndIf
  340.   If Math.Remainder(daytime,60)=0 And screen=3 And gameload=0 Then
  341.     drawscreen()
  342.   EndIf
  343.   If sleeping>=1 Then
  344.     sleeping=sleeping+1
  345.     If sleeping=7 Then
  346.       sleeping=0
  347.       screen=3
  348.       daytime=30
  349.       blood=blood+5
  350.       If blood>=10 Then
  351.         blood=10
  352.       EndIf
  353.       drawscreen()
  354.     EndIf
  355.   EndIf
  356.   digger()
  357. EndSub
  358. Sub digger
  359.   If gameload>0 Then
  360.     gameload=gameload-1
  361.     Shapes.SetText(showpickcomplete,"采集剩余时间:"+gameload+"秒")
  362.   EndIf
  363.   If gameload=0 Then
  364.     If willgetthing=7 Then
  365.       Shapes.HideShape(showpickcomplete)
  366.       bagnum[7]=bagnum[7]+1
  367.       File.WriteLine(path,worldwidth*worldlength+8,bagnum[7])
  368.       hard=1
  369.       do1()
  370.       showgetbagthing=Shapes.AddText("获得物品:蘑菇")
  371.     ElseIf willgetthing=1 Then
  372.       Shapes.HideShape(showpickcomplete)
  373.       bagnum[1]=bagnum[1]+Math.GetRandomNumber(2)+2
  374.       File.WriteLine(path,worldwidth*worldlength+2,bagnum[1])
  375.       bagnum[3]=bagnum[3]+Math.GetRandomNumber(3)
  376.       File.WriteLine(path,worldwidth*worldlength+4,bagnum[3])
  377.       If Math.GetRandomNumber(6)=1 Then
  378.         bagnum[38]=bagnum[38]+1
  379.         File.WriteLine(path,worldwidth*worldlength+39,bagnum[38])
  380.         changeshowmessage=1
  381.       EndIf
  382.       hard=10
  383.       do1()
  384.       If changeshowmessage=1 Then
  385.         GraphicsWindow.FontSize=18
  386.         showgetbagthing=Shapes.AddText("获得物品:树叶、木块、藤条")
  387.         changeshowmessage=0
  388.       Else
  389.         showgetbagthing=Shapes.AddText("获得物品:树叶、木块")
  390.       EndIf
  391.     ElseIf willgetthing=4 Then
  392.       Shapes.HideShape(showpickcomplete)
  393.       bagnum[4]=bagnum[4]+Math.GetRandomNumber(2)
  394.       File.WriteLine(path,worldwidth*worldlength+5,bagnum[4])
  395.       hard=3
  396.       do1()
  397.       showgetbagthing=Shapes.AddText("获得物品:石头")
  398.     ElseIf willgetthing=10 Then
  399.       Shapes.HideShape(showpickcomplete)
  400.       bagnum[10]=bagnum[10]+1
  401.       File.WriteLine(path,worldwidth*worldlength+11,bagnum[10])
  402.       hard=5
  403.       do1()
  404.       showgetbagthing=Shapes.AddText("获得物品:铁")
  405.     ElseIf willgetthing=11 Then
  406.       Shapes.HideShape(showpickcomplete)
  407.       bagnum[11]=bagnum[11]+1
  408.       File.WriteLine(path,worldwidth*worldlength+12,bagnum[11])
  409.       hard=5
  410.       do1()
  411.       showgetbagthing=Shapes.AddText("获得物品:黄金")
  412.     ElseIf willgetthing=12 Then
  413.       Shapes.HideShape(showpickcomplete)
  414.       bagnum[12]=bagnum[12]+1
  415.       File.WriteLine(path,worldwidth*worldlength+13,bagnum[12])
  416.       hard=7
  417.       do1()
  418.       showgetbagthing=Shapes.AddText("获得物品:钻石")
  419.     ElseIf willgetthing=13 Then
  420.       Shapes.HideShape(showpickcomplete)
  421.       bagnum[13]=bagnum[13]+1
  422.       File.WriteLine(path,worldwidth*worldlength+14,bagnum[13])
  423.       hard=8
  424.       do1()
  425.       showgetbagthing=Shapes.AddText("获得物品:黑曜石")
  426.     ElseIf willgetthing=9 Then
  427.       Shapes.HideShape(showpickcomplete)
  428.       bagnum[9]=bagnum[9]+Math.GetRandomNumber(2)
  429.       File.WriteLine(path,worldwidth*worldlength+10,bagnum[9])
  430.       hard=3
  431.       do1()
  432.       showgetbagthing=Shapes.AddText("获得物品:煤炭")
  433.     ElseIf willgetthing=8 Then
  434.       Shapes.HideShape(showpickcomplete)
  435.       bagnum[8]=bagnum[8]+1
  436.       File.WriteLine(path,worldwidth*worldlength+9,bagnum[8])
  437.       hard=5
  438.       do1()
  439.       showgetbagthing=Shapes.AddText("获得物品:南瓜")
  440.     ElseIf willgetthing=35 Then
  441.       Shapes.HideShape(showpickcomplete)
  442.       bagnum[35]=bagnum[35]+1
  443.       File.WriteLine(path,worldwidth*worldlength+36,bagnum[35])
  444.       hard=0
  445.       do1()
  446.       showgetbagthing=Shapes.AddText("获得物品:毛毯")
  447.     ElseIf willgetthing=36 Then
  448.       Shapes.HideShape(showpickcomplete)
  449.       bagnum[36]=bagnum[36]+1
  450.       File.WriteLine(path,worldwidth*worldlength+37,bagnum[36])
  451.       hard=0
  452.       do1()
  453.       showgetbagthing=Shapes.AddText("获得物品:木墩")
  454.     ElseIf willgetthing=37 Then
  455.       Shapes.HideShape(showpickcomplete)
  456.       bagnum[37]=bagnum[37]+1
  457.       File.WriteLine(path,worldwidth*worldlength+38,bagnum[37])
  458.       hard=0
  459.       do1()
  460.       showgetbagthing=Shapes.AddText("获得物品:石墩")
  461.     ElseIf willgetthing=39 Then
  462.       Shapes.HideShape(showpickcomplete)
  463.       bagnum[39]=bagnum[39]+1
  464.       File.WriteLine(path,worldwidth*worldlength+40,bagnum[39])
  465.       hard=0
  466.       do1()
  467.       showgetbagthing=Shapes.AddText("获得物品:藤帘")
  468.     ElseIf willgetthing=41 Then
  469.       Shapes.HideShape(showpickcomplete)
  470.       bagnum[41]=bagnum[41]+1
  471.       File.WriteLine(path,worldwidth*worldlength+42,bagnum[41])
  472.       hard=0
  473.       do1()
  474.       showgetbagthing=Shapes.AddText("获得物品:金色毛毯")
  475.     ElseIf willgetthing=42 Then
  476.       Shapes.HideShape(showpickcomplete)
  477.       bagnum[42]=bagnum[42]+1
  478.       File.WriteLine(path,worldwidth*worldlength+43,bagnum[42])
  479.       hard=0
  480.       do1()
  481.       showgetbagthing=Shapes.AddText("获得物品:浅蓝毛毯")
  482.     EndIf
  483.     willgetthing=0
  484.     If broken=1 Then
  485.       GraphicsWindow.FontSize=25
  486.       showmessage=Shapes.AddText("挖掘损坏了工具")
  487.       Shapes.Move(showmessage,460,70)
  488.     EndIf
  489.     broken=0
  490.     Shapes.Move(showgetbagthing,460,40)
  491.   EndIf
  492. EndSub
  493. Sub do2
  494.   If easybag[holdeasybag]>=20 And easybag[holdeasybag]<=25 Then
  495.     aniblood[mx][my]=aniblood[mx][my]-baghurt[easybag[holdeasybag]]
  496.     baglong[easybag[holdeasybag]]=baglong[easybag[holdeasybag]]-hard
  497.   ElseIf easybag[holdeasybag]>=14 And easybag[holdeasybag]<=19 Then
  498.     aniblood[mx][my]=aniblood[mx][my]-1
  499.     baglong[easybag[holdeasybag]]=baglong[easybag[holdeasybag]]-hard*2
  500.   Else
  501.     aniblood[mx][my]=aniblood[mx][my]-1
  502.   EndIf
  503.   If baglong[easybag[holdeasybag]]<=0 And easybag[holdeasybag]>=14 And easybag[holdeasybag]<=25 Then
  504.     bagnum[easybag[holdeasybag]]=bagnum[easybag[holdeasybag]]-1
  505.     If bagnum[easybag[holdeasybag]]>0 Then
  506.       baglong[easybag[holdeasybag]]=baghavelong[easybag[holdeasybag]]
  507.     EndIf
  508.     broken=1
  509.     File.WriteLine(path,worldlength*worldwidth+1+easybag[holdeasybag],bagnum[easybag[holdeasybag]])
  510.   EndIf
  511.   
  512.   
  513.   redo2:
  514.   If aniblood[mx][my]<=0 Then
  515.     drawnewx=Math.GetRandomNumber(worldlength)
  516.     drawnewy=Math.GetRandomNumber(worldwidth)
  517.     If thing[drawnewx][drawnewy]>animalplace And thing[drawnewx][drawnewy]<=120 Then
  518.       thing[drawnewx][drawnewy]=thing[mx][my]
  519.       aniblood[drawnewx][drawnewy]=haveblood[thing[mx][my]]
  520.       thing[mx][my]=120
  521.       File.WriteLine(path,(mx-1)*worldwidth+my+1,120)
  522.       File.WriteLine(path,(drawnewx-1)*worldwidth+drawnewy+1,thing[drawnewx][drawnewy])
  523.     Else
  524.       Goto redo2
  525.     EndIf
  526.     drawscreen()
  527.   EndIf
  528. EndSub
  529. Sub do1
  530.   If easybag[holdeasybag]>=14 And easybag[holdeasybag]<=19 Then
  531.     baglong[easybag[holdeasybag]]=baglong[easybag[holdeasybag]]-hard
  532.   ElseIf easybag[holdeasybag]>=20 And easybag[holdeasybag]<=25 Then
  533.     baglong[easybag[holdeasybag]]=baglong[easybag[holdeasybag]]-hard/2
  534.   EndIf
  535.   If baglong[easybag[holdeasybag]]<=0 And easybag[holdeasybag]>=14 And easybag[holdeasybag]<=25 Then
  536.     bagnum[easybag[holdeasybag]]=bagnum[easybag[holdeasybag]]-1
  537.     If bagnum[easybag[holdeasybag]]>0 Then
  538.       baglong[easybag[holdeasybag]]=baghavelong[easybag[holdeasybag]]
  539.     EndIf
  540.     broken=1
  541.     File.WriteLine(path,worldlength*worldwidth+1+easybag[holdeasybag],bagnum[easybag[holdeasybag]])
  542.   EndIf
  543.   File.WriteLine(path,worldlength*worldwidth-3+allcheck+easybag[holdeasybag],baglong[easybag[holdeasybag]])
  544.   
  545.   
  546.   redo1:
  547.   drawnewx=Math.GetRandomNumber(worldlength)
  548.   drawnewy=Math.GetRandomNumber(worldwidth)
  549.   If thing[drawnewx][drawnewy]>animalplace And thing[drawnewx][drawnewy]<=120 Then
  550.     thing[drawnewx][drawnewy]=thing[mx][my]
  551.     thing[mx][my]=120
  552.     File.WriteLine(path,(mex-1)*worldwidth+mey+1,120)
  553.     File.WriteLine(path,(drawnewx-1)*worldwidth+drawnewy+1,thing[drawnewx][drawnewy])
  554.   Else
  555.     Goto redo1
  556.   EndIf
  557.   
  558.   
  559.   drawscreen()
  560.   GraphicsWindow.BrushColor="Black"
  561.   GraphicsWindow.FontSize=25
  562. EndSub
  563. Sub do3
  564.   If 1=2 Then   '比较卡的动物逃跑判断
  565.     If instead=47 Then
  566.       If Math.GetRandomNumber(20)=1 Then
  567.         If Math.GetRandomNumber(4)=1 And thing[i-1][j]>=animalplace And thing[i-1][j]<=121 Then
  568.           thing[i-1][j]=instead
  569.           hasescaped=0
  570.           aniblood[i-1][j]=aniblood[i][j]
  571.           File.WriteLine(path,(i-2)*worldwidth+j+1,thing[i-1][j])
  572.         ElseIf Math.GetRandomNumber(3)=1 And thing[i+1][j]>=animalplace And thing[i+1][j]<=121 Then
  573.           thing[i+1][j]=instead
  574.           hasescaped=0
  575.           aniblood[i+1][j]=aniblood[i][j]
  576.           File.WriteLine(path,i*worldwidth+j+1,thing[i+1][j])
  577.         ElseIf Math.GetRandomNumber(2)=1 And thing[i][j-1]>=animalplace And thing[i][j-1]<=121 Then
  578.           thing[i][j-1]=instead
  579.           hasescaped=0
  580.           aniblood[i][j-1]=aniblood[i][j]
  581.           File.WriteLine(path,(i-1)*worldwidth+j,thing[i][j-1])
  582.         ElseIf thing[i][j+1]>=animalplace And thing[i][j+1]<=120 Then
  583.           thing[i][j+1]=instead
  584.           hasescaped=0
  585.           aniblood[i][j+1]=aniblood[i][j]
  586.           File.WriteLine(path,(i-1)*worldwidth+j+2,thing[i][j+1])
  587.         EndIf
  588.         If hasescaped=0 Then
  589.           thing[i][j]=120
  590.           aniblood[i][j]=0
  591.           File.WriteLine(path,(i-1)*worldwidth+j+1,120)
  592.           drawscreen()
  593.         EndIf
  594.       EndIf
  595.     ElseIf instead=48 Then
  596.       If Math.GetRandomNumber(4)=1 Then
  597.         If Math.GetRandomNumber(4)=1 And thing[i-1][j]>=animalplace And thing[i-1][j]<=121 Then
  598.           thing[i-1][j]=instead
  599.           hasescaped=0
  600.           aniblood[i-1][j]=aniblood[i][j]
  601.           File.WriteLine(path,(i-2)*worldwidth+j+1,thing[i-1][j])
  602.         ElseIf Math.GetRandomNumber(3)=1 And thing[i+1][j]>=animalplace And thing[i+1][j]<=121 Then
  603.           thing[i+1][j]=instead
  604.           hasescaped=0
  605.           aniblood[i+1][j]=aniblood[i][j]
  606.           File.WriteLine(path,i*worldwidth+j+1,thing[i+1][j])
  607.         ElseIf Math.GetRandomNumber(2)=1 And thing[i][j-1]>=animalplace And thing[i][j-1]<=121 Then
  608.           thing[i][j-1]=instead
  609.           hasescaped=0
  610.           aniblood[i][j-1]=aniblood[i][j]
  611.           File.WriteLine(path,(i-1)*worldwidth+j,thing[i][j-1])
  612.         ElseIf thing[i][j+1]>=animalplace And thing[i][j+1]<=121 Then
  613.           thing[i][j+1]=instead
  614.           hasescaped=0
  615.           aniblood[i][j+1]=aniblood[i][j]
  616.           File.WriteLine(path,(i-1)*worldwidth+j+2,thing[i][j+1])
  617.         EndIf
  618.         If hasescaped=0 Then
  619.           thing[i][j]=120
  620.           aniblood[i][j]=0
  621.           File.WriteLine(path,(i-1)*worldwidth+j+1,120)
  622.           drawscreen()
  623.         EndIf
  624.       EndIf
  625.     EndIf
  626.   EndIf
  627. EndSub
  628. Sub do4
  629.   If thing[mx][my]>=36 And thing[mx][my]<=45 Then
  630.     redo3:
  631.     drawnewx=Math.GetRandomNumber(worldlength)
  632.     drawnewy=Math.GetRandomNumber(worldwidth)
  633.     If thing[drawnewx][drawnewy]>animalplace And thing[drawnewx][drawnewy]<=120 Then
  634.       thing[drawnewx][drawnewy]=thing[mx][my]
  635.       thing[mx][my]=120
  636.       File.WriteLine(path,(drawnewx-1)*worldwidth+drawnewy+1,thing[drawnewx][drawnewy])
  637.     Else
  638.       Goto redo3
  639.     EndIf
  640.   EndIf
  641. EndSub
  642. Sub baginformation
  643.   allcheck=43
  644.   
  645.   
  646.   
  647.   
  648.   bagthing[1]="木块"
  649.   bagthing[2]="木板"
  650.   bagthing[3]="树叶"
  651.   bagthing[4]="石头"
  652.   bagthing[5]="石块"
  653.   bagthing[6]="木棍"
  654.   bagthing[7]="蘑菇"
  655.   bagthing[8]="南瓜"
  656.   bagthing[9]="煤炭"
  657.   bagthing[10]="铁"
  658.   bagthing[11]="黄金"
  659.   bagthing[12]="钻石"
  660.   bagthing[13]="黑曜石"
  661.   bagthing[14]="木镐"
  662.   bagthing[15]="石镐"
  663.   bagthing[16]="铁镐"
  664.   bagthing[17]="黄金镐"
  665.   bagthing[18]="钻石镐"
  666.   bagthing[19]="黑曜石镐"
  667.   bagthing[20]="木剑"
  668.   bagthing[21]="石剑"
  669.   bagthing[22]="铁剑"
  670.   bagthing[23]="黄金剑"
  671.   bagthing[24]="钻石剑"
  672.   bagthing[25]="黑曜石剑"
  673.   bagthing[26]="生猪肉"
  674.   bagthing[27]="熟猪肉"
  675.   bagthing[28]="生牛肉"
  676.   bagthing[29]="熟牛肉"
  677.   bagthing[30]="鸡蛋"
  678.   bagthing[31]="小麦"
  679.   bagthing[32]="牛奶"
  680.   bagthing[33]="蛋糕"
  681.   bagthing[34]="羊毛"
  682.   bagthing[35]="毛毯"
  683.   bagthing[36]="木墩"
  684.   bagthing[37]="石墩"
  685.   bagthing[38]="藤条"
  686.   bagthing[39]="藤帘"
  687.   bagthing[40]="金粉"
  688.   bagthing[41]="钻石粉"
  689.   bagthing[42]="金色毛毯"
  690.   bagthing[43]="浅蓝毛毯"
  691.   
  692.   
  693.   
  694.   bagmake1[2]=1
  695.   bagmake1num[2]=1
  696.   bagmakeget[2]=4
  697.   bagmake1[5]=4
  698.   bagmake1num[5]=2
  699.   bagmakeget[5]=1
  700.   bagmake1[6]=2
  701.   bagmake1num[6]=2
  702.   bagmakeget[6]=4
  703.   bagmake1[14]=2
  704.   bagmake1num[14]=3
  705.   bagmake2[14]=6
  706.   bagmake2num[14]=2
  707.   bagmakeget[14]=1
  708.   bagmake1[15]=5
  709.   bagmake1num[15]=3
  710.   bagmake2[15]=6
  711.   bagmake2num[15]=2
  712.   bagmakeget[15]=1
  713.   bagmake1[16]=10
  714.   bagmake1num[16]=3
  715.   bagmake2[16]=6
  716.   bagmake2num[16]=2
  717.   bagmakeget[16]=1
  718.   bagmake1[17]=11
  719.   bagmake1num[17]=3
  720.   bagmake2[17]=6
  721.   bagmake2num[17]=2
  722.   bagmakeget[17]=1
  723.   bagmake1[18]=12
  724.   bagmake1num[18]=3
  725.   bagmake2[18]=6
  726.   bagmake2num[18]=2
  727.   bagmakeget[18]=1
  728.   bagmake1[19]=13
  729.   bagmake1num[19]=3
  730.   bagmake2[19]=6
  731.   bagmake2num[19]=2
  732.   bagmakeget[19]=1
  733.   bagmake1[20]=2
  734.   bagmake1num[20]=3
  735.   bagmake2[20]=6
  736.   bagmake2num[20]=2
  737.   bagmakeget[20]=1
  738.   bagmake1[21]=5
  739.   bagmake1num[21]=3
  740.   bagmake2[21]=6
  741.   bagmake2num[21]=2
  742.   bagmakeget[21]=1
  743.   bagmake1[22]=10
  744.   bagmake1num[22]=3
  745.   bagmake2[22]=6
  746.   bagmake2num[22]=2
  747.   bagmakeget[22]=1
  748.   bagmake1[23]=11
  749.   bagmake1num[23]=3
  750.   bagmake2[23]=6
  751.   bagmake2num[23]=2
  752.   bagmakeget[23]=1
  753.   bagmake1[24]=12
  754.   bagmake1num[24]=3
  755.   bagmake2[24]=6
  756.   bagmake2num[24]=2
  757.   bagmakeget[24]=1
  758.   bagmake1[25]=13
  759.   bagmake1num[25]=3
  760.   bagmake2[25]=6
  761.   bagmake2num[25]=2
  762.   bagmakeget[25]=1
  763.   bagmake1[27]=26
  764.   bagmake1num[27]=1
  765.   bagmake2[27]=9
  766.   bagmake2num[27]=2
  767.   bagmakeget[27]=1
  768.   bagmake1[29]=28
  769.   bagmake1num[29]=1
  770.   bagmake2[29]=9
  771.   bagmake2num[29]=2
  772.   bagmakeget[29]=1
  773.   bagmake1[33]=30
  774.   bagmake1num[33]=3
  775.   bagmake2[33]=31
  776.   bagmake2num[33]=3
  777.   bagmake3[33]=32
  778.   bagmake3num[33]=3
  779.   bagmakeget[33]=1
  780.   bagmake1[35]=34
  781.   bagmake1num[35]=4
  782.   bagmakeget[35]=1
  783.   bagmake1[36]=2
  784.   bagmake1num[36]=3
  785.   bagmakeget[36]=1
  786.   bagmake1[37]=5
  787.   bagmake1num[37]=3
  788.   bagmakeget[37]=1
  789.   bagmake1[39]=38
  790.   bagmake1num[39]=5
  791.   bagmakeget[39]=1
  792.   bagmake1[40]=11
  793.   bagmake1num[40]=1
  794.   bagmakeget[40]=3
  795.   bagmake1[41]=12
  796.   bagmake1num[41]=1
  797.   bagmakeget[41]=3
  798.   bagmake1[42]=40
  799.   bagmake1num[42]=4
  800.   bagmakeget[42]=1
  801.   bagmake1[43]=41
  802.   bagmake1num[43]=4
  803.   bagmakeget[43]=1
  804.   
  805.   
  806.   
  807.   baghavelong[14]=60
  808.   baghavelong[15]=80
  809.   baghavelong[16]=140
  810.   baghavelong[17]=100
  811.   baghavelong[18]=160
  812.   baghavelong[19]=180
  813.   baghavelong[20]=25
  814.   baghavelong[21]=35
  815.   baghavelong[22]=45
  816.   baghavelong[23]=40
  817.   baghavelong[24]=60
  818.   baghavelong[25]=70
  819.   
  820.   
  821.   bagspeed[14]=1
  822.   bagspeed[15]=2
  823.   bagspeed[16]=2
  824.   bagspeed[17]=3
  825.   bagspeed[18]=4
  826.   bagspeed[19]=4
  827.   
  828.   baghurt[20]=2
  829.   baghurt[21]=2.5
  830.   baghurt[22]=4
  831.   baghurt[23]=4.5
  832.   baghurt[24]=5
  833.   baghurt[25]=6
  834.   
  835.   bagblood[7]=1
  836.   baghunger[7]=0
  837.   bagblood[8]=3
  838.   baghunger[8]=3
  839.   bagblood[26]=2
  840.   baghunger[26]=3
  841.   bagblood[27]=3
  842.   baghunger[27]=3
  843.   bagblood[28]=3
  844.   baghunger[28]=3
  845.   bagblood[29]=3
  846.   baghunger[29]=4
  847.   bagblood[30]=0
  848.   baghunger[30]=1
  849.   bagblood[33]=4
  850.   baghunger[33]=5
  851. EndSub  Sub typerinformation
  852.   exchangerblood[1]= "❤"
  853.   exchangerblood[2]= "❤❤"
  854.   exchangerblood[3]= "❤❤❤"
  855.   exchangerblood[4]= "❤❤❤❤"
  856.   exchangerblood[5]= "❤❤❤❤❤"
  857.   exchangerblood[6]= "❤❤❤❤❤❤"
  858.   exchangerblood[7]= "❤❤❤❤❤❤❤"
  859.   exchangerblood[8]= "❤❤❤❤❤❤❤❤"
  860.   exchangerblood[9]= "❤❤❤❤❤❤❤❤❤"
  861.   exchangerblood[10]="❤❤❤❤❤❤❤❤❤❤"
  862.   
  863.   exchangerhung[1]= "★"
  864.   exchangerhung[2]= "★★"
  865.   exchangerhung[3]= "★★★"
  866.   exchangerhung[4]= "★★★★"
  867.   exchangerhung[5]= "★★★★★"
  868.   exchangerhung[6]= "★★★★★★"
  869.   exchangerhung[7]= "★★★★★★★"
  870.   exchangerhung[8]= "★★★★★★★★"
  871.   exchangerhung[9]= "★★★★★★★★★"
  872.   exchangerhung[10]="★★★★★★★★★★"
  873.   
  874.   haveblood[46]=6
  875.   haveblood[47]=8
  876.   haveblood[48]=6
  877.   haveblood[49]=8
  878.   haveblood[49]=11
  879.   
  880.   '其它变量
  881.   animalplace=48
  882.   hasescaped=0
  883.   sleeping=0
  884.   changeshowmessage=0
  885. EndSub
  886. '地图分配
  887. '1-18              水
  888. '19-28           树木
  889. '29                 南瓜
  890. '30                 蘑菇
  891. '31-35           石头
  892. '36-38          铁
  893. '39-40         黄金
  894. '41                钻石
  895. '42                黑曜石
  896. '43-45          煤
  897. '46                猪
  898. '47                 牛
  899. '48                羊
  900. '49                野人
复制代码


回复

使用道具 举报

 楼主| 发表于 2014-10-24 18:00:51 | 显示全部楼层
顶贴,以后会继续更新
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|Small Basic中文站-快乐编程 ( 闽ICP备09051788号 |

GMT+8, 2019-5-26 19:32 , Processed in 0.199998 second(s), 7 queries , Gzip On, File On.

Powered by Discuz! X3.3

快速回复 返回顶部 返回列表