а для буилда 2x2 можно проверять в X.Y; X+1.Y; X+1.Y+1; X.Y+1 для 4x8 соответственно, тем более можно будет создать ещё матрицу допустим хиты, или процент сборки строения, а каждому отдельный индекс.
я сделаю чтоб для каждой кординать X был отдельный массив Y, где были индексы содержимого.
Все проблемы решены спс большое
------------ Дoбавленo в 07.29:
Хотя матрицу лучше ненадо, что если создать bmp с пикселами - индексаторами?
------------ Дoбавленo в 09.02:
теперь не наклеиваются, внизу что-то вроде мини мапа
Add(MainForm,2953706,21,105) { Width=200 Height=250 BorderStyle=0 Position=1 Point(onMouseDown) link(onCreate,13649626:doCreate,[(85,125)(85,521)]) } Add(Timer,15745283,343,210) { Interval=20 link(onTimer,12257353:doEvent1,[]) } Add(StrList,934577,546,133) { Point(onGetString) Point(doGetString) Point(IdxToSelect) link(onGetString,8240448:doSplit,[]) link(IdxToSelect,16177689:Position,[(566,121)(528,121)(528,261)(489,261)]) } Add(For,16177689,483,217) { End=100 link(onEvent,934577:doGetString,[(520,223)(520,181)]) link(End,934577:Count,[(496,198)(559,198)]) } Add(MultiStrData,8240448,609,140) { Char="." Count=3 link(onPart1,8513470:doValue,[(691,146)(691,153)]) link(onPart2,5741224:doValue,[(669,153)(669,160)]) link(onPart3,11695560:doEvent1,[(699,160)(699,118)]) } Add(Memory,8513470,742,147) { } Add(Memory,5741224,697,154) { } Add(PointXY,16117481,707,224) { link(X,8513470:Value,[(713,217)(748,217)]) link(Y,5741224:Value,[(720,217)(703,217)]) } Add(IndexToChanel,11996168,805,119) { Count=4 link(onEvent2,12882557:doDraw,[(849,132)(849,247)(712,247)(712,362)]) link(onEvent3,3939332:doDraw,[(849,139)(849,219)(709,219)(709,300)]) link(onEvent4,12638837:doDraw,[(849,146)(849,288)(709,288)(709,431)]) } Add(Img_Rectangle,3939332,721,294) { Point2AsOffset=0 Point(Point1) Point(Point2) link(Bitmap,16376460:Var1,[(727,276)]) link(Point1,9241532:Var2,[(741,275)]) link(Point2,14578662:Point,[(748,277)(751,277)]) } Add(PointXY,14578662,745,228) { X=50 Y=30 } Add(Hub,11695560,756,112) { link(onEvent1,11996168:doEvent,[(788,118)(788,125)]) link(onEvent2,3917663:doData,[(780,125)(780,144)(798,144)(798,174)]) } Add(Bitmap,16720311,889,91) { HWidth=200 HHeight=200 FillColor=16777215 Point(doCreate) } Add(DoData,3917663,917,168) { link(onEventData,707096:doLoad,[(961,174)(961,160)]) link(Data,4924875:Var3,[(923,138)]) } Add(GetDataEx,4924875,889,133) { link(Data,16720311:Bitmap,[]) } Add(Image,707096,973,154) { Width=200 Height=200 Point(MouseX) Point(MouseY) Point(onMouseDown) link(onMouseDown,3234301:doEvent,[(1013,167)(1013,181)]) } Add(Memory,15846558,231,126) { link(onData,1576570:doCalc,[]) } Add(FormatStr,9466776,455,126) { DataCount=3 Mask="%2.%3.%1" link(onFString,934577:doAdd,[(496,132)(496,139)]) link(Str1,15846558:Value,[(461,114)(349,114)(279,114)(279,173)(237,173)]) link(Str2,1576570:Result,[(468,114)(407,114)(407,169)(346,169)]) link(Str3,13874571:Result,[(475,114)(437,114)(437,170)(398,170)]) } Add(Img_Rectangle,12882557,724,356) { Point2AsOffset=0 Point(Point1) Point(Point2) link(Bitmap,2156202:Var2,[]) link(Point1,2685494:Var2,[]) link(Point2,15535645:Point,[(751,344)(779,344)(779,371)(808,371)]) } Add(GetDataEx,16376460,777,271) { Angle=1 link(Data,4924875:Var2,[(895,276)]) } Add(GetDataEx,9241532,707,266) { link(Data,16117481:Point,[]) } Add(PointXY,15535645,802,327) { X=10 Y=10 } Add(Hub,12257353,410,210) { OutCount=3 link(onEvent1,16720311:doCreate,[(656,216)(656,111)]) link(onEvent2,16177689:doFor,[]) link(onEvent3,13752899:doData,[(471,230)(471,572)]) } Add(Img_Rectangle,12638837,721,425) { Point2AsOffset=0 BgColor=255 Style=1 Point(Point1) Point(Point2) link(Bitmap,2156202:Var1,[(727,383)(721,383)(721,341)]) link(Point1,2685494:Var1,[(741,379)(735,379)(735,334)]) link(Point2,15004149:Point,[(748,413)(776,413)(776,440)(805,440)]) } Add(PointXY,15004149,799,396) { X=10 Y=20 } Add(GetDataEx,2156202,724,336) { link(Data,16376460:Var2,[(730,318)(783,318)(786,299)]) } Add(GetDataEx,2685494,738,329) { link(Data,9241532:Var3,[(744,271)]) } Add(PointHint,9101039,399,21) { Info=#39:x.y.z x - ось x y - ось y z - тип| Width=267 } Add(MathParse,13874571,392,126) { DataCount=1 MathStr="%1 - %1 mod 10" link(onResult,9466776:doString,[]) link(X1,7219633:Var2,[(398,114)(696,114)(696,212)(993,212)]) } Add(MathParse,1576570,340,126) { DataCount=1 MathStr="%1 - %1 mod 10" link(onResult,13874571:doCalc,[]) link(X1,16140697:Var2,[(346,114)(666,114)(666,212)(932,212)(941,212)(941,222)(986,222)]) } Add(IndexToChanel,3234301,1022,175) { link(onEvent1,15277335:doCalc,[(1080,181)(1080,259)]) } Add(Switch,9990749,1071,322) { Default=0 Point(doCheck) Point(onOn) Point(onOff) Point(DataOn) Point(doOn) link(onOn,1103828:doCompare,[]) link(DataOn,15803272:Var3,[(1077,310)(984,310)(984,713)]) } Add(MathParse,15277335,1107,253) { DataCount=1 MathStr="%1 div 10" link(onResult,9415545:doCalc,[]) link(X1,16140697:Var3,[(1113,222)]) } Add(MathParse,9415545,1161,253) { DataCount=1 MathStr="%1 div 10" link(onResult,8174586:doGetPixel,[(1205,259)(1205,301)(1010,301)(1010,342)]) link(X1,7219633:Var3,[(1167,208)]) } Add(GetDataEx,16140697,980,217) { link(Data,707096:MouseX,[]) } Add(GetDataEx,7219633,987,203) { link(Data,707096:MouseY,[]) } Add(Memory,3978340,511,672) { Default=Integer(1) } Add(Hub,11147489,1184,329) { link(onEvent1,12970348:doDraw,[(1208,335)(1208,370)]) link(onEvent2,15846558:doValue,[(1210,342)(1210,237)(219,237)(219,132)]) } Add(GetDataEx,15803272,630,708) { Angle=3 link(Data,3978340:Value,[(517,713)]) } Add(Bitmap,13649626,557,501) { HWidth=20 HHeight=20 Point(doCreate) } Add(Button,13440950,452,566) { Left=175 Top=230 Width=20 Caption="0" } Add(DoData,13752899,518,566) { link(onEventData,4988505:doLoad,[(564,572)(564,570)]) link(Data,7710408:Var2,[(524,550)(563,550)]) } Add(Image,4988505,578,564) { Left=130 Top=225 Width=20 Point(MouseX) Point(MouseY) Point(onMouseDown) } Add(Message,12785515,1176,406) { Message="NO!" Caption=" " } Add(Img_GetPoint,8174586,1022,336) { link(onGetPixel,16765156:doGetRGB,[(1064,342)(1064,375)(1010,375)(1010,384)]) link(Bitmap,7710408:Var3,[(1028,325)(849,325)(849,544)]) link(X,15428359:Var2,[(1035,310)(1113,310)]) link(Y,10099506:Var1,[(1042,310)]) } Add(GetDataEx,7710408,557,539) { link(Data,13649626:Bitmap,[]) } Add(ToRGB,16765156,1022,378) { link(onResult,9990749:doCheck,[(1062,384)(1062,342)]) link(Color,8174586:Color,[]) } Add(If_else,1103828,1127,329) { Op2=Integer(0) link(onTrue,11147489:doEvent1,[]) link(onFalse,12785515:doMessage,[(1167,342)(1167,412)]) link(Op1,16765156:G,[(1133,317)(1084,317)(1084,422)(1035,422)]) } Add(Hub,6328440,472,665) { link(onEvent1,9990749:doOn,[(876,671)(876,349)]) link(onEvent2,3978340:doValue,[]) } Add(Img_Point,12970348,1218,364) { X=3 Y=3 Color=16777215 Point(X) Point(Y) link(Bitmap,7710408:Var1,[(1224,352)(554,352)(554,544)]) link(X,15428359:Var3,[(1231,292)]) link(Y,10099506:Var3,[(1238,310)]) } Add(GetDataEx,15428359,1107,287) { link(Data,15277335:Result,[]) } Add(GetDataEx,10099506,1161,305) { link(Data,9415545:Result,[]) }
|