2016-10-13 290 views
0
final float MAX_SIZE = 35000; 
final float MIN_SIZE = MAX_SIZE/10; 
float alienSize; 
float alienY; 
float alienX; 
void draw() 
{ 
    alienX = mouseX; 
    alienY = mouseY; 
    alienSize = MAX_SIZE*mouseY/height; 
} 

我的目标是使变量alienSize是最大尺寸时,它(和鼠标),是在窗口的底部,1/10的大小时, (和鼠标)位于窗口的顶部。到目前为止,我的这个代码适用于最大尺寸,但对于外星人可以得到的外形没有限制。任何帮助,请:)设置最小和最大范围相对于窗口大小

编辑:我有这么没有作弊交出这个请喜欢具有规模或任何

+0

为什么会有'if'语句作弊? –

回答

0

if语句检查你可以使用map()功能。 map()函数需要5个值:

  • 输入值。
  • 最小输入值。
  • 最大输入值。
  • 最小输出值。
  • 最大输出值。

然后它返回一个输出值,该值基于输入值的相对位置,缩放为输出最小值和最大值。例如,如果您致电map(150, 100, 200, 500, 700),那么您将返回600的值,因为150100200之间,因此它会计算出在500700之间的中间值。

下面是一个例子:

float minSize = 50; 
float maxSize = 100; 

void setup(){ 
    size(500, 100); 
} 

void draw(){ 
    float size = map(mouseX, 0, width, minSize, maxSize); 

    background(0); 
    ellipse(mouseX, height/2, size, size); 
} 

scaling circle

更多信息可在the reference找到。