2016-10-13 197 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找到。