这个例子昨天正好看了,话说那本书的例子都很不错~
* l' m( U* t5 F6 t6 ]不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
1 @9 Q0 a) S' N: a. W3 H1 Q5 P) Q3 Fis1 ]4 \% G, d6 \
i,no,m:integer; --定义整型
) r+ Z2 t4 e8 j t Buf:object; --定义object5 v& W6 V/ W/ M# o9 _( C2 W) l6 c
do
) Y) m4 I# s) M& X& O, r5 g m:=0;
7 p/ S$ S5 O7 T4 ? no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)! O2 |8 ^- X" a" p
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
5 \- s- b4 E" P, E) i" _1 j if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 8 D+ Y9 A2 X: {: v" b2 o, J
@._From:=PartsTable[5,i];
9 Y* T1 a! g3 [' B @._To:=PartsTable[6,i];
9 U$ ^8 P. i" v$ L0 m if no=PartsNo+PartsTable[2,i] then 3 n! H. [" V; X& u" }
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
; S0 S7 ?, h$ l% E
" P3 _8 b/ R% r/ o6 j end;- S3 X6 Q- n) K4 L* h
i:=PartsTable.YDim+1;
# r. g- ] B/ L: W2 D6 T$ e end;1 V- o- y: U; M5 J1 y7 L, R; E3 U
m:=m+PartsTable[2,i];- s4 L! O1 A4 a6 f
next;6 E8 t# V6 y" o' b7 i
8 N2 @" a$ @; \+ ~& Z Buf:=str_to_obj(sprint("BF",@._From));& D9 \9 Y$ H, ~8 p5 [
@.move(Buf);* y1 n5 E7 z& ^: ]7 K
end; |