2012-04-12 30 views
0

當我想要做的所有事情都是減小寬度時,我似乎遇到矩形從其指定位置移動的問題。我正在做的一個遊戲用保險絲模擬爆炸物。隨着時鐘倒數到0,保險絲尺寸減小。我認爲問題與局部座標與全球座標有關,但我不確定如何解決問題。下面是一些代碼:如何在減少寬度時防止矩形從其位置移動

//fuse 
_fuse = new Sprite(); 
_fuse.graphics.beginFill(0x000000); 
_fuse.graphics.drawRect(630, 340, (_fuseCounter/_fuseWidth) * 120, 20); 
_fuse.graphics.endFill(); 

而且這裏是我減少其寬度每一幀:

//decrease fuse to give the player a visual of urgency. 
_fuseCounter--;   
_fuse.width = (_fuseCounter/ _fuseWidth) * 120; 

無處在我的代碼將保險絲變化的x位置。除了這個問題,rect的功能正是我想要的。任何有關這個問題的幫助表示讚賞。

+1

更改顯示對象的大小將根據矩形的註冊點更改大小。如果你想從左到右調整它的大小,把註冊點設置在圖形的左邊(把'0'放入'drawRect()'的第三個參數)。 – Marty 2012-04-12 00:46:31

+0

@馬蒂華萊士這並沒有完全解決這個問題,但我學到了一些關於如何繪製精靈的關鍵。謝謝! – King 2012-04-12 13:18:05

回答

1

你的問題是你在630,340處繪製你的矩形,然後減小它的寬度。它

這樣想

0     100 
----------------------- 
|      | 
|   -----  | 
|   |  |  | 
|   -----  | 
|      | 
|      | 
----------------------- 

如果減少了寬度你基本上拉動外影片剪輯的左邊緣向右邊緣,當您去縮放嵌套內容。導致這樣的事情

0     75 
------------------- 
|     | 
|  ---  | 
|  | |  | 
|  ---  | 
|     | 
|     | 
------------------- 

所以要解決這個問題,你可以嵌套。添加一個新的精靈_fuse和規模

var s:Sprite = new Sprite(); 
s.x =630; 
s.y = 340 
s.graphics.drawRect(0, 0, (_fuseCounter/_fuseWidth) * 120, 20); 
fuse.addChild(s); 

然後,擴展s.width

如果你不想窩,你也可以只是做一個graphics.clear(),並重新繪製矩形,以新的較小寬度

+0

我沒有太大的成功添加新的精靈,但重繪原始矩形做了訣竅。謝謝! – King 2012-04-12 13:14:36

相關問題