作者fooleric (哇哇哇)
看板Flash
标题Re: [问题] do while的问题
时间Tue Mar 31 23:29:55 2009
※ 引述《IDontBite (大便兔子)》之铭言:
: 下面这段程式, 我希望复制出busno个bus,
: 前grannyno个把对应的"granny"+i盖住,
: 已确定各个granny不会有重叠问题,
: 希望剩下没有盖东西的bus也不要重叠,
: 但是那个do while有时候会失灵,
: 囧 有人能帮我看看吗?
: for(i=1;i<=busno;i++){
: bus.duplicateMovieClip("bus"+i,layer--);
: _root["bus"+i].v=random(8)+1;
: if(i<=grannyno){
: _root["bus"+i]._x=_root["granny"+i]._x;
: _root["bus"+i]._y=_root["granny"+i]._y+30;}
: else{
: do{
: _root["bus"+i]._x=random(5)*101+80;
: _root["bus"+i]._y=random(6)*60+48;
: for(j=1;j<i;j++)
: f=_root["bus"+i].hitTest(_root["bus"+j]);
手边没有flash可以测试....随便猜测看看...
这边假设 i=5 并且 bus5 会跟 bus3 产生碰撞...
所以当j=3时... f = 1
但是回圈会继续往下跑...跑到j=4..
此时因为bus3 跟 bus4 不会碰撞...
所以f = 0 ..... .....
然後就跳出do-while回圈了....
试看看吧...XD
: }while(f==1)
: }
: }
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.160.160.8
1F:推 cjcat2266:GJ,这应该是原因了 :) 03/31 23:54
2F:推 IDontBite:谢谢两位大大:) 问题解决了! 04/01 12:46