2014-01-19 64 views
0

截至目前,我已經創建了新的容器幼崽,其中我添加了所有的對象和地圖。所以當用戶向右移動鼠標時,我將容器幼體移動到左邊,看起來所有東西都向左移動。代碼:根據鼠標移動移動容器幼崽

var pt:Point = new Point(character.x, character.y); 
pt = dori.localToGlobal(pt); 
if (pt.x > (stage.width * 0.5)) 
{ 
        container.x -= 5; 
} 

當鼠標超出舞臺中間......它創建鼠標位置和字符之間的距離..!我的意思是,它確實按照鼠標移動,但在鼠標和角色之間創建了一段距離。隨着我繼續將鼠標移離舞臺中心,這個距離不斷增加!! Help Help!

+0

你爲什麼不刪除最後一個'if'聲明?應該做。 – Vesper

回答

1

使用線性插值來確定對象應該如何移動。例如,如果當鼠標處於x=stage.stageWidth,BG應該在stage.stageWidth-bg.width,當鼠標處於x=0,BG應該在0使用:

paramF(bg,stage.stageWidth,stage.stageWidth-bg.width,0,0); 

//in a loop that updates with mouse movement: 
bg.x=bg.m*mouseX+bg.b; 

function paramF(mc:MovieClip,x1:Number,y1:Number,x2:Number,y2:Number):void{ 
    mc.m=(y1-y2)/(x1-x2); 
    mc.b=y1-mc.m*x1; 
}