ไม่มีใครมีเคล็ดลับรหัสกอล์ฟสำหรับการเล่นกอล์ฟในการประมวลผล ? มันเป็นส่วนขยายกราฟิกของจาวาและค่อนข้างยากที่จะเล่นกอล์ฟ
ไม่มีใครมีเคล็ดลับรหัสกอล์ฟสำหรับการเล่นกอล์ฟในการประมวลผล ? มันเป็นส่วนขยายกราฟิกของจาวาและค่อนข้างยากที่จะเล่นกอล์ฟ
คำตอบ:
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)
นี่คือการใช้งานพิเศษสำหรับสีถ้าค่าทั้งหมดสีแดงสีเขียวและสีน้ำเงินเหมือนกัน (สีขาว):
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 ไบต์
ถึงแม้ว่าจะชัดเจน แต่ก็ควรระบุว่าพารามิเตอร์ alpha ในการระบุสีเป็นทางเลือกเนื่องจากสีจะถูกกำหนดเป็นค่าเริ่มต้นเป็นค่า alpha 255
(ทึบแสง 100%)
ใช้รูปแบบสีที่สั้นที่สุดเพื่อแสดงสีของคุณ (อย่าลืมบิตที่ไม่จำเป็นออกไป - ขึ้นอยู่กับบริบทของโปรแกรม - ตัวอย่างเช่น: alpha หรือ grayscale)
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 เป็นดัชนีพิกเซล เพื่อให้สิ่งต่าง ๆ สั้นแม้ว่า CPU จะมีประสิทธิภาพน้อยลง (ในขณะที่การโทรแต่ละครั้งอัพเดตบัฟเฟอร์ทั้งหมด) set ()จะอนุญาตให้พิกเซลตั้งค่าและกำหนดให้บัฟเฟอร์ทันทีในการโทรเพียงครั้งเดียว
set(0,0,color(255));