簡體   English   中英

Flash AS3從頂部減小載物台高度

[英]Flash AS3 Reduce stage height from top

我正在嘗試從頂部減小舞台高度,以使某個項目在特定區域下生成。 HUD所在的位置。

我曾經將HUD放在底部,這沒有造成任何問題。 因為我的功能有:

headY = Math.ceil((((stage.stageHeight - hudHeight)))/(headWidth))*Math.random())*headWidth;

這樣可以將stage.stageHeight降低80,因此可以正確生成頭部。 但是,當HUD位於頂部時,情況並非如此。 這行代碼當前所做的是使頭部無法在stageheight(80像素而不是頂部)下生成。

我的問題是; 我怎樣才能使代碼從頂部減少stageheight。

提前致謝,

喬迪

有關我的問題的更多信息:我實際上想做的只是“選擇”舞台的底部,而使舞台不在畫面之列。 我只是使用stageheight作為控制800像素的指示器。 因此,當我操作stageheight時,無需更改代碼。 但是由於這不可能。 應該有不同的方式。 希望你現在理解我的問題。 如果沒有,我想做的就是從80像素上下選擇所有內容。 舞台的高度為800像素,因此我需要選擇720像素。 但是,我找不到選擇底部720像素的方法。僅選擇頂部720像素。

盡管您的問題很難理解,但是答案很可能是您無法理解的。 stageHeight是只讀的。 您可以使用HTML進行設置,甚至可以將其設置為百分比。 但是您不能在Actionscript中更改它。

您的問題的措辭方式使您很難理解自己想要的內容。

我猜想您想要的是生成給定的對象並確保它不會與HUD出現在相同的空間中。

因此,如果您的屏幕為800 x 800,並且HUD占據了屏幕的整個寬度以及屏幕的前80個像素,則可以嘗試這樣做以獲取有效的y生成位置:

var headY:Number = Math.random() * (800 - 80) + 80;

這將為您帶來80到800之間的價值;

給定您的變量,我建議這樣做:

var headY:Number = Math.random() * (stage.stageHeight - hudHeight) + hudHeight; 

現在基於您的代碼,似乎您也在嘗試確保生成的內容不會部分偏離屏幕的頂部或底部,因此您需要考慮頭部的高度。 因此,請考慮以下代碼:

var headY:Number = Math.random() * ((stage.stageHeight - headHeight) - (hudHeight + headHeight)) + (hudHeight + headHeight);

不能完全確定這是否是您要尋找的東西,但這是我根據您的問題並嘗試假設您想要的東西時能做的最好的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM