Mẹo chơi gôn trong chế biến


13

Có ai có bất kỳ lời khuyên cho việc chơi golf trong chế biến ? Nó là một phần mở rộng đồ họa của java, và hơi khó chơi golf.


Câu hỏi hay. Tôi tin rằng các mẹo nên có trên Community Wiki. Tôi đánh dấu nó để di chuyển.
Cấp sông St

4
Downvote ??? tại sao?
TARDIS

Đừng lo lắng về downvote ... bạn sẽ mất tất cả các đại diện bạn nhận được từ bài đăng này sau khi nó được đánh dấu là wiki cộng đồng ...
user12205

3
@ace: Danh tiếng đạt được trước khi bài đăng được đánh dấu CW sẽ được lưu giữ: meta.stackexchange.com/a/11741/229438
Chương trìnhFOX

Câu trả lời:


7
  • Nếu không có hình ảnh động được yêu cầu, bạn có thể bỏ qua void draw()và đặt mọi thứ vào void setup().
  • Khởi tạo kích thước của khung vẽ đôi khi không cần thiết - nó sẽ được khởi tạo (100, 100)theo mặc định.
  • Nếu bạn cần sử dụng heightwidthtrong mã của mình, thường sử dụng các giá trị số của chúng thường ngắn hơn. Ví dụ: với một khung có kích thước (100, 100), sử dụng 99để thay thế heightwidthcó thể giúp bạn tiết kiệm 7 byte.

3

Nếu bạn chỉ chạy mã trong phương thức thiết lập thì bạn không cần viết phác thảo phương thức. Ví dụ bạn có thể viết:

rect(10,10,90,90);

thay vì

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

Và miễn là bạn không sử dụng bất kỳ phương pháp nào khác thì mọi thứ sẽ được đưa vào phương thức thiết lập trước khi chạy


Điều này có thể là một chút lỗi. Tôi đã nhận thấy rằng nếu bạn cố gắng xác định một chức năng trong chế độ tĩnh, Quá trình xử lý có thể gây ra một chút nhầm lẫn: puu.sh/tpzP8.png
quat

@quat miễn là bạn không xác định bất kỳ phương thức nào khác thì mọi thứ sẽ được đưa vào phương thức thiết lập. Nếu bạn cần xác định phương thức thì bạn cần đặt tên rõ ràng cho phương thức thiết lập.
HEGX64

2

(R, G, B)Ký hiệu màu sắc

Màu thập lục phân

Xử lý rất linh hoạt trong định dạng màu sắc.

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

có thể được viết bằng cách sử dụng ký hiệu thập lục phân như

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

Thang độ xám

Dưới đây là cách sử dụng đặc biệt cho màu sắc nếu tất cả các giá trị Đỏ, Xanh lục và Xanh lam giống nhau (trắng):

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

Tất cả ba tham số có thể được rút ngắn thành một tham số có chứa giá trị thang độ xám: từ 0đen sang 255trắng.

Điều này cũng có thể được mở rộng cho alpha:

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

Cả hai đều có cùng màu, nhưng cách thứ hai ngắn hơn 8 byte.

Alpha

Mặc dù rõ ràng, cần phải nói rằng tham số alpha trong việc chỉ định màu là tùy chọn vì màu được mặc định là giá trị alpha 255(mờ 100%).

Tóm tắt: Định dạng màu

Sử dụng định dạng màu ngắn nhất để thể hiện màu của bạn (nhớ bỏ đi các bit không cần thiết - phụ thuộc vào ngữ cảnh của chương trình - ví dụ: alpha hoặc thang độ xám)

R: Đỏ G: xanh lá cây B: xanh dương A: alpha g: thang độ xám

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

2

Hằng viết tắt

Nếu bạn đã từng sử dụng một trong những từ khóa toàn chữ trong Xử lý (chẳng hạn như DIFFERENCEhoặc TRIANGLE_FAN), hãy xem liệu số lượng chúng tương ứng có ngắn hơn không.

Ví dụ: DIFFERENCEchỉ intbằng 32. Thay vì sử dụng DIFFERENCE ở đây , tôi có thể viết 32, lưu 8 ký tự.


2

Thay thế ngắn hơn để void keyPressed(){}

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

Cái void draw(){}này là cần thiết theo mặc định keyđể được cập nhật. Nếu người dùng không nhấn phím kể từ khi bắt đầu chương trình, keysẽ được cung cấp một giá trị là 0. Bằng cách kiểm tra xem nó có nhiều hơn 0(tức là người dùng đã nhấn một phím), chúng tôi có mã golfier và lưu 10 byte.


2

trắng #FFFFFF

Liên quan: Ký hiệu màu

Thay vì sử dụng màu trắng này:

color(255)     //10 bytes

bạn có thể làm được việc này:

color(-1)      //9 bytes

và lưu 1 byte.


1

Cài đặt và cam kết pixel bằng set ()

Hiệu quả hơn khi đặt pixel qua pixel [] :

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

Tuy nhiên, điều đó đòi hỏi updatePixels()và cũng sử dụng một chỉ mục tùy thuộc vào kịch bản sẽ yêu cầu chuyển đổi vị trí x, y thành chỉ mục pixel. Để giữ mọi thứ ngắn gọn, mặc dù nó ít hiệu quả CPU hơn (vì mỗi cuộc gọi cập nhật toàn bộ bộ đệm), set () cho phép một pixel được đặt và cam kết đệm ngay lập tức trong một cuộc gọi.

set(0,0,color(255));
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.