2016-10-13 4 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-й размер, когда он (и мышь) находится в верхней части окна. У меня есть до сих пор этот код, который работает для максимального размера, но нет предела тому, насколько маленький инопланетянин может получить. любая помощь, пожалуйста :)Установите минимальный и максимальный диапазон по отношению к размеру окна

Edit: Я должен передать это так, не обману, пожалуйста, как иметь, если чек заявление на размер или что-нибудь

+0

Зачем было обманывать утверждение 'if'? –

ответ

0

Вы можете использовать функцию map(). Функция map() принимает 5 значений:

  • Входное значение.
  • Минимальное входное значение.
  • Максимальное входное значение.
  • Минимальное выходное значение.
  • Максимальное выходное значение.

Затем он возвращает выходное значение, основанное на относительном положении входного значения, масштабируемое до выходных min и max. Например, если вы позвоните map(150, 100, 200, 500, 700), то вы вернете значение 600, потому что 150 находится на полпути между 100 и 200, поэтому он определяет, какое значение находится на полпути между 500 и 700.

Вот пример:

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.

Смежные вопросы