Kiat untuk bermain golf dalam pemrosesan

13

Adakah yang punya tips untuk bermain golf di Pemrosesan ? Ini adalah ekstensi grafis dari java, dan agak sulit untuk bermain golf.

TARDIS
sumber
Pertanyaan yang bagus Saya yakin tipsnya ada di Komunitas Wiki. Saya menandainya untuk migrasi.
Level River St
4
Downvote ??? Mengapa?
TARDIS
Jangan khawatir tentang downvote ... Anda akan kehilangan semua rep yang Anda dapatkan dari pos ini setelah ditandai sebagai komunitas wiki ...
user12205
3
@ace: Reputasi yang diperoleh sebelum tulisan ditandai CW akan disimpan: meta.stackexchange.com/a/11741/229438
ProgramFOX

Jawaban:

7
  • Jika tidak diperlukan animasi, Anda dapat melewati void draw()dan memasukkan semuanya ke dalam void setup().
  • Menginisialisasi ukuran kanvas kadang-kadang tidak perlu - itu akan diinisialisasi (100, 100)secara default.
  • Jika Anda perlu menggunakan heightdan widthdalam kode Anda, biasanya lebih pendek untuk menggunakan nilai numeriknya. Misalnya, dengan kanvas ukuran (100, 100), gunakan 99untuk mengganti heightdan widthdapat menghemat 7 byte.
pengguna12205
sumber
3

Jika Anda hanya menjalankan kode dalam metode pengaturan maka Anda tidak perlu menulis garis besar metode. Misalnya, Anda dapat menulis:

rect(10,10,90,90);

dari pada

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

Dan selama Anda tidak menggunakan metode lain maka semuanya akan dimasukkan ke dalam metode pengaturan sebelum dijalankan

HEGX64
sumber
Ini bisa agak buggy. Saya perhatikan bahwa jika Anda mencoba mendefinisikan fungsi dalam mode statis, Pemrosesan dapat sedikit membingungkan: puu.sh/tpzP8.png
quat
@quat selama Anda tidak mendefinisikan metode lain maka semuanya akan dimasukkan ke dalam metode pengaturan. Jika Anda perlu mendefinisikan metode, Anda harus secara eksplisit memberi nama metode penyiapan.
HEGX64
2

(R, G, B)Notasi warna

Warna heksadesimal

Pemrosesan sangat fleksibel dalam format warna.

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

dapat ditulis menggunakan notasi heksadesimal sebagai

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

Skala abu-abu

Berikut ini adalah penggunaan khusus untuk warna jika semua nilai Merah, Hijau dan Biru sama (putih):

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

Ketiga parameter dapat disingkat menjadi satu parameter yang berisi nilai skala abu-abu: dari 0hitam ke 255putih.

Ini dapat diperluas untuk alpha juga:

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

Keduanya berarti warna yang sama, tetapi cara yang terakhir lebih pendek sebesar 8 byte.

Alfa

Meskipun jelas, harus dinyatakan bahwa parameter alpha dalam menentukan warna adalah opsional karena warna default ke nilai alpha 255(100% buram).

Ringkasan: Format warna

Gunakan format warna terpendek untuk mengekspresikan warna Anda (ingat untuk meninggalkan bit yang tidak perlu - tergantung pada konteks program - misalnya: alpha atau skala abu-abu)

R: Merah G: hijau B: biru A: alpha g: abu-abu

RRR,GGG,BBB
#RRGGBB
ggg
RRR,GGG,BBB,AAA
ggg,AAA
Kritixi Lithos
sumber
2

Singkatan konstan

Jika Anda pernah menggunakan salah satu kata kunci semua-huruf besar dalam Memproses (seperti DIFFERENCEatau TRIANGLE_FAN), lihat apakah nomor yang sesuai dengan mereka lebih pendek.

Sebagai contoh, DIFFERENCEhanya sebuah intyang sama dengan 32. Alih-alih menggunakan di DIFFERENCE sini , saya bisa menulis 32, menyimpan 8 karakter.

quat
sumber
2

Alternatif yang lebih pendek void keyPressed(){}

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

Itu void draw(){} dibutuhkan secara default agar keydiperbarui. Jika pengguna belum menekan tombol sejak awal program, keydiberi nilai 0. Dengan memeriksa apakah lebih dari 0(yaitu pengguna telah menekan tombol), kami memiliki kode golfier dan menyimpan 10 byte.

Kritixi Lithos
sumber
2

putih #FFFFFF

Terkait: Notasi Warna

Alih-alih menggunakan ini untuk putih:

color(255)     //10 bytes

kamu bisa melakukan ini:

color(-1)      //9 bytes

dan simpan 1 byte.

Kritixi Lithos
sumber
1

Mengatur dan melakukan piksel menggunakan set ()

Lebih efisien mengatur piksel melalui piksel [] :

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

Namun, itu memerlukan updatePixels()dan juga menggunakan indeks yang tergantung pada skenario akan memerlukan konversi posisi x, y ke indeks piksel. Agar semuanya singkat, meskipun CPU kurang efisien (karena setiap panggilan memperbarui seluruh buffer), set () memungkinkan piksel untuk mengatur dan berkomitmen untuk buffer langsung dalam satu panggilan.

set(0,0,color(255));
George Profenza
sumber