我正在尝试从顶部减小舞台高度以获得在特定区域下生成的项目。 HUD在哪里。
我曾经把我的HUD放在底部,没有引起任何问题。因为我的功能有:
headY = Math.ceil((((stage.stageHeight - hudHeight)))/(headWidth))*Math.random())*headWidth;
这会使stage.stageHeight减少80,因此头部可以正常生成。然而,当HUD位于顶部时,情况并非如此。这条线目前的作用是让头部无法在舞台高度下产生 - 80像素而不是顶部。
我的问题是;如何让代码从顶部减少舞台高度。
提前致谢,
霍尔迪阿
关于我的问题的额外信息: 实际上,我正在尝试做的就是“选择”舞台的底部,让舞台脱离画面。我只是使用stageheight作为控制800像素的指标。因此,当我操纵舞台高度时,我不必更改代码。但是,因为这可能是不可能的。应该有不同的方式。我希望你现在明白我的问题。如果没有,我想要做的是从80像素向下和向下选择所有内容。舞台的高度为800像素,因此我需要选择720像素。但是,我找不到一种方法来选择底部720像素..只有前720像素。
答案 0 :(得分:1)
虽然你的问题很难理解,但答案很可能是你不能。 stageHeight是只读的。您可以在HTML中设置它,甚至将其设置为百分比。但你无法在Actionscript中改变它。
答案 1 :(得分:0)
你的问题的措辞方式,使你很难理解你想要的东西。
我猜你想要的是产生一个给定的对象,并确保它不会在与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);
不完全确定这是否是您正在寻找的,但它是我根据您的问题做的最好的,并试图假设您想要的是什么。