[英]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.