У кого-нибудь есть какие - нибудь советы по коду для игры в гольф в Processing ? Это графическое расширение Java, и его немного сложно играть в гольф.
У кого-нибудь есть какие - нибудь советы по коду для игры в гольф в Processing ? Это графическое расширение Java, и его немного сложно играть в гольф.
Ответы:
void draw()
и поместить все в void setup()
.(100, 100)
по умолчанию.height
и width
в вашем коде, обычно вместо этого использовать их числовые значения. Например, с размером холста (100, 100)
, используя 99
для замены height
и width
может сэкономить вам 7 байтов.Если вы запускаете код только в методе установки, вам не нужно писать схему метода. Например, вы можете написать:
rect(10,10,90,90);
вместо того
void setup {
rect(10,10,90,90);
}
И пока вы не используете другие методы, все будет помещено в метод установки перед запуском
(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
Если вы когда-либо используете одно из ключевых слов с заглавными буквами при обработке (например, DIFFERENCE
или TRIANGLE_FAN
), посмотрите, не короче ли число, которому они соответствуют.
Например, DIFFERENCE
это просто int
равно 32. Вместо того, чтобы использовать DIFFERENCE
здесь , я мог бы написать 32
, сохраняя 8 символов.
void keyPressed(){}
void draw(){}void keyPressed(){foo;} //36 bytes
void draw(){if(key>0)foo;} //26 bytes
void draw(){}
Требуется по умолчанию для того , чтобы key
обновить. Если пользователь не нажимал клавишу с момента запуска программы, key
ему присваивается значение 0
. 0
Проверяя, больше ли это (то есть пользователь нажал клавишу), мы получаем код для игры в гольф и сохраняем 10 байтов.
#FFFFFF
Связанные: Цветовая нотация
Вместо того, чтобы использовать это для белых:
color(255) //10 bytes
ты можешь сделать это:
color(-1) //9 bytes
и сохранить 1 байт.
Более эффективно устанавливать пиксели через пиксели [] :
pixels[0] = color(255)
updatePixels();
Однако это требует, updatePixels()
а также использования индекса, который в зависимости от сценария потребует преобразования позиции x, y в индекс пикселя. Короче говоря, даже при том, что он менее эффективен с точки зрения использования процессора (поскольку каждый вызов обновляет весь буфер), set () позволяет пикселю устанавливать и фиксировать для буферизации сразу в одном вызове.
set(0,0,color(255));