Советы по игре в гольф в обработке


13

У кого-нибудь есть какие нибудь советы по для игры в гольф в Processing ? Это графическое расширение Java, и его немного сложно играть в гольф.


Хороший вопрос Я считаю, что советы должны быть на вики сообщества. Я пометил его для миграции.
Уровень Река St

4
Downvote ??? Почему?
ТАРДИС

Не беспокойтесь о понижении голосов ... вы потеряете все репутацию, полученную из этого поста, после того, как он все равно будет помечен как вики сообщества ...
user12205

3
@ace: Репутация, полученная до того, как пост будет помечен как CW, будет сохранена: meta.stackexchange.com/a/11741/229438
ProgramFOX

Ответы:


7
  • Если анимация не требуется, вы можете пропустить void draw()и поместить все в void setup().
  • Инициализация размера холста иногда не требуется - он будет инициализирован (100, 100)по умолчанию.
  • Если вам нужно использовать heightи widthв вашем коде, обычно вместо этого использовать их числовые значения. Например, с размером холста (100, 100), используя 99для замены heightи widthможет сэкономить вам 7 байтов.

3

Если вы запускаете код только в методе установки, вам не нужно писать схему метода. Например, вы можете написать:

rect(10,10,90,90);

вместо того

void setup {
    rect(10,10,90,90);
}

И пока вы не используете другие методы, все будет помещено в метод установки перед запуском


Это может быть немного глючит. Я заметил , что , если вы пытаетесь определить функцию в статическом режиме, обработка может получить немного перепутал: puu.sh/tpzP8.png
четв

@quat, пока вы не определите другие методы, тогда все будет помещено в метод установки. Если вам нужно определить методы, вам нужно явно указать метод установки.
HEGX64

2

(R, G, B)Обозначение цветов

Шестнадцатеричные цвета

Обработка очень гибкая в цветном формате.

fill(255,255,0); //16 bytes

может быть написано с использованием шестнадцатеричной записи в виде

fill(#ffff00);   //14 bytes (2 bytes saved)

Оттенки серого

Вот специальное использование для цветов, если все значения Red, Green и Blue одинаковы (белый):

fill(255,255,255); //18 bytes
fill(#ffffff);     //14 bytes
fill(255);         //10 bytes

Все три параметра можно сократить до одного параметра, содержащего значение в градациях серого: от 0черного до 255белого.

Это может быть расширено и для альфы:

fill(175,175,175,50); //translucent gray
fill(175,50);         //8 bytes shorter

Оба означают один и тот же цвет, но последний путь короче на 8 байт.

Альфа

Хотя это очевидно, следует указать, что параметр альфа в задании цветов является необязательным, поскольку цвета по умолчанию имеют значение альфа 255(непрозрачность 100%).

Резюме: Цветовые форматы

Используйте самый короткий цветовой формат, чтобы выразить свой цвет (не забудьте пропустить ненужные биты - в зависимости от контекста программы, например: альфа или оттенки серого)

R: Красный G: зеленый B: синий A: альфа g: оттенки серого

RRR,GGG,BBB
#RRGGBB
ggg
RRR,GGG,BBB,AAA
ggg,AAA

2

Сокращать константы

Если вы когда-либо используете одно из ключевых слов с заглавными буквами при обработке (например, DIFFERENCEили TRIANGLE_FAN), посмотрите, не короче ли число, которому они соответствуют.

Например, DIFFERENCEэто просто intравно 32. Вместо того, чтобы использовать DIFFERENCE здесь , я мог бы написать 32, сохраняя 8 символов.


2

Более короткая альтернатива void keyPressed(){}

void draw(){}void keyPressed(){foo;} //36 bytes
void draw(){if(key>0)foo;}           //26 bytes

void draw(){}Требуется по умолчанию для того , чтобы keyобновить. Если пользователь не нажимал клавишу с момента запуска программы, keyему присваивается значение 0. 0Проверяя, больше ли это (то есть пользователь нажал клавишу), мы получаем код для игры в гольф и сохраняем 10 байтов.


2

белый #FFFFFF

Связанные: Цветовая нотация

Вместо того, чтобы использовать это для белых:

color(255)     //10 bytes

ты можешь сделать это:

color(-1)      //9 bytes

и сохранить 1 байт.


1

Установка и фиксация пикселей с помощью set ()

Более эффективно устанавливать пиксели через пиксели [] :

pixels[0] = color(255)
updatePixels();

Однако это требует, updatePixels()а также использования индекса, который в зависимости от сценария потребует преобразования позиции x, y в индекс пикселя. Короче говоря, даже при том, что он менее эффективен с точки зрения использования процессора (поскольку каждый вызов обновляет весь буфер), set () позволяет пикселю устанавливать и фиксировать для буферизации сразу в одном вызове.

set(0,0,color(255));
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.