这个例子昨天正好看了,话说那本书的例子都很不错~
9 Z, U6 c$ `2 l j0 G' F0 e2 X不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。7 t7 r; G7 W; x% W$ d' J, e
is
5 ^7 [ W- s$ G i,no,m:integer; --定义整型6 C( x8 `; m1 Z( s" D' [, f* ^# G
Buf:object; --定义object
' F/ ?& l. o! b2 @: c Xdo: G' L3 S7 ^* S+ W m% ~
m:=0;
+ I* k5 X" u& Z% [" j9 ~( u no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
* i/ j4 Q& J% u for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
% x. Q8 a. D3 d" A if PartsNo=m and no<=PartsNo+PartsTable[2,i] then + ?# o' n, _$ {( Q& g: V
@._From:=PartsTable[5,i]; 8 Y, _6 o# B, v: m
@._To:=PartsTable[6,i];( G' D" ^, `, K. U6 r6 F% b9 o. L
if no=PartsNo+PartsTable[2,i] then
3 p+ [0 a3 t/ f6 V$ i5 U( @% P PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)# _) E4 B5 G) H7 u( U
9 w$ S! f5 Q5 w1 u end;
) H F1 R! K6 t/ m2 W1 ~( g i:=PartsTable.YDim+1;
+ ]/ X/ h% b" P6 }( Z- J0 z2 R7 G end;4 n' S2 V0 B) u& H& g
m:=m+PartsTable[2,i];0 J. s9 L2 e; d+ _6 U3 K
next;2 k% P, u# K. o7 j; }
. P& }( w8 Z; \1 F7 Y) s7 c' ^( O Buf:=str_to_obj(sprint("BF",@._From));5 F7 _/ U' K5 x' e2 c+ d
@.move(Buf);+ h6 T6 d: d/ | M& |' |
end; |