这个例子昨天正好看了,话说那本书的例子都很不错~
* g' ^9 F2 {, H0 }7 I7 }. W不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
. _+ s7 y7 H9 C" P1 ?$ Yis
4 P1 V2 R( x* |' O" p+ D- ?! H i,no,m:integer; --定义整型" t! @- Q$ ` \- R
Buf:object; --定义object
& Q; \1 _( L, K' T0 c: |- a- u- ydo
3 V3 A4 a- n% o+ e" _9 B1 r4 E! j% o m:=0;
. G1 g# v, |" O8 Z7 F no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)6 g0 m( H4 `' _# K
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行 n- q4 y6 ~( t4 y2 y3 C7 S# d
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 3 |9 G1 Q k- Q% O
@._From:=PartsTable[5,i];
3 F- ]7 c- f, H; v! Y8 k3 I, |# s @._To:=PartsTable[6,i];' }$ N! o" c8 V% l* H# D. Z- w. R
if no=PartsNo+PartsTable[2,i] then 3 ?& z* C: f4 n$ l1 v" E4 m3 X) B9 s
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
. a+ D n* U, B4 k/ ?) z2 X% `: o3 W- z9 y: g \( y$ d3 B
end;
! F9 S. x8 u3 ?5 N) l" `6 T i:=PartsTable.YDim+1;! B% k6 r. j& c$ e3 L) j
end;
' N6 S+ e8 ]/ i+ \. S1 e2 c m:=m+PartsTable[2,i];9 O3 f6 H- V/ s2 G' k- @
next;8 P( r. Y( e: P3 A$ _, s& T
" l! ~3 q( m6 g: F' X
Buf:=str_to_obj(sprint("BF",@._From));, U$ ~4 b3 S' t, a @
@.move(Buf);
/ W( H8 u5 b9 T1 M% _: B; Q: Kend; |