เคล็ดลับสำหรับการเล่นกอล์ฟในกระบวนการผลิต


13

ไม่มีใครมีเคล็ดลับสำหรับการเล่นกอล์ฟในการประมวลผล ? มันเป็นส่วนขยายกราฟิกของจาวาและค่อนข้างยากที่จะเล่นกอล์ฟ


เป็นคำถามที่ดี ฉันเชื่อว่าเคล็ดลับควรอยู่ใน Community Wiki ฉันตั้งค่าสถานะเพื่อการโยกย้าย
ระดับแม่น้ำเซนต์

4
downvote ??? ทำไม?
ควานหา

ไม่ต้องกังวลกับ downvote ... คุณจะสูญเสียตัวแทนทั้งหมดที่คุณได้รับจากโพสต์นี้หลังจากถูกทำเครื่องหมายเป็น community wiki อยู่แล้ว ...
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

@quat ตราบใดที่คุณไม่ได้กำหนดวิธีการอื่นใดแล้วทุกอย่างจะถูกใส่ไว้ในวิธีการตั้งค่า หากคุณต้องการกำหนดวิธีการคุณจะต้องตั้งชื่อวิธีการตั้งค่าอย่างชัดเจน
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สีขาว

สิ่งนี้สามารถขยายได้สำหรับอัลฟาเช่นกัน:

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

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 ไบต์



1

การตั้งค่าและการส่งพิกเซลโดยใช้ set ()

การตั้งค่าพิกเซลทางพิกเซลมีประสิทธิภาพยิ่งขึ้น[] :

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

อย่างไรก็ตามที่ต้องใช้updatePixels()และยังใช้ดัชนีซึ่งขึ้นอยู่กับสถานการณ์จะต้องแปลงตำแหน่ง x, y เป็นดัชนีพิกเซล เพื่อให้สิ่งต่าง ๆ สั้นแม้ว่า CPU จะมีประสิทธิภาพน้อยลง (ในขณะที่การโทรแต่ละครั้งอัพเดตบัฟเฟอร์ทั้งหมด) set ()จะอนุญาตให้พิกเซลตั้งค่าและกำหนดให้บัฟเฟอร์ทันทีในการโทรเพียงครั้งเดียว

set(0,0,color(255));
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.