作者pet9231 (佑佑人)
看板Flash
标题[问题] 使用for回圈addChild的问题
时间Sat Nov 3 19:38:35 2012
我用for回圈 add了几个球的MovieClip 并随机放位置
然後我要做碰撞侦测,所以Push进去阵列里面
程式码如下:
for(var i:int=0;i<10;i++)
{
var bb:damn = new damn();
this.addChild(bb);
bb.x=50+Math.random()*350;
bb.y=30+Math.random()*300;
bb.width = 50-(i*3);
bb.height = 50-(i*3);
container.push(bb);
}
this.addEventListener(Event.ENTER_FRAME,onEnterFrame);
function onEnterFrame(E:Event)
{
for(var i:int = 0 ; i < container.length ; i++)
{
if(m_mc.hitTestObject(container[i]))
{
container[i].scaleX = 0;
}
}
}
目前为止还能动
再来我想要让球在这个空间反弹
像是打砖块的球那样,只是底部也是可以反弹的
程式码应该像下面这样:
var vx:Number = Math.random() * 12 - 6;
var vy:Number = Math.random() * 12 - 6;
function ballmove(e:Event)
{
bb.x+= vx;
if (bb.x > stage.width-bb.width)
{
bb.x=stage.width-bb.width;
vx*= -1;
}
else if (bb.x < 0)
{
bb.x=0;
vx*= -1;
}
bb.y+= vy;
if (bb.y > stage.height-bb.height)
{
bb.y=stage.height-bb.height;
vy*= -1;
}
else if (bb.y < 0)
{
bb.y=0;
vy*= -1;
}
}
但是我放进去之後
只有一个球会动
试问各位大大如何让每个球顺利的在反弹?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.231.140.37
1F:推 jeaby:ballmove 怎麽触发的? 似乎有漏程式码? 11/03 20:33
2F:→ pet9231:Sorry那是修正前的QQ,ballmove里的程式码应该放在 11/03 20:41
3F:→ pet9231:onEnterFrame里面 11/03 20:42
4F:→ pet9231:我有套过container[i]但是会变成一个大图在反弹 11/03 20:43
5F:→ jones86723:stage.stageWidth stage.stageHeight 才对 11/03 21:12