处理中打高尔夫球的技巧


Answers:


7
  • 如果不需要动画,则可以跳过void draw()并将所有内容放入void setup()
  • 有时不需要初始化画布的大小- (100, 100)默认情况下将初始化为画布。
  • 如果需要在代码中使用heightwidth,通常使用它们的数字值会更短。例如,对于大小的画布(100, 100),用99更换heightwidth可以为您节省7个字节。

3

如果仅在设置方法中运行代码,则无需编写方法概述。例如,您可以编写:

rect(10,10,90,90);

代替

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

只要您不使用任何其他方法,所有内容都将在运行之前放入setup方法中


这可能有点问题。我注意到,如果你试图定义在静态模式下的功能,处理可以得到一个有点困惑:puu.sh/tpzP8.png

@quat只要您没有定义任何其他方法,那么所有内容都将放入setup方法中。如果需要定义方法,则需要显式命名设置方法。
HEGX64

2

颜色(R, G, B)表示法

十六进制颜色

颜色格式的处理非常灵活。

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

可以使用十六进制表示法编写为

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

灰阶

如果所有红色,绿色和蓝色值都相同(白色),这是颜色的一种特殊用法:

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

这三个参数都可以简化为一个包含灰度值的参数:从0黑色到255白色。

这也可以扩展为alpha:

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

两者都表示相同的颜色,但后一种方式则缩短了8个字节。

Α

尽管很明显,但应该指出,指定颜色时的alpha参数是可选的,因为默认情况下颜色的alpha值为255(100%不透明)。

摘要:颜色格式

使用最短的颜色格式来表达您的颜色(请记住,不要多余的位,具体取决于程序的上下文,例如:alpha或灰度)

R:红色 G:绿色 B:蓝色 A:alpha g:灰度

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

2

缩写常数

如果您在Processing中使用了全大写关键字之一(例如DIFFERENCETRIANGLE_FAN),请查看它们对应的数字是否较短。

例如,等于32。DIFFERENCEint使用8个字符,而不用在DIFFERENCE 这里编写32


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()设置和提交像素

通过pixel []设置像素更有效:

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

然而,这需要updatePixels()并且还使用根据场景将需要将x,y位置转换为像素索引的索引。为了简短起见,即使CPU效率较低(因为每次调用都会更新整个缓冲区),set()允许像素设置并承诺在一次调用中立即缓冲。

set(0,0,color(255));
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.