Buat visibilitas platform berbeda dari latar belakang

15

Saya memiliki jenis permainan pelari tak terbatas 2d yang latar belakangnya terus berubah warna. Sementara itu warna platform tetap sama. Dengan cara ini platform di beberapa titik (ketika warnanya sama dengan latar belakangnya) menjadi "tidak terlihat" untuk pemain.

Bagaimana saya bisa secara kreatif, singkat dan meyakinkan menghindari masalah ini dengan persatuan?

PS Saya sudah mencoba menambahkan bahan glossy tapi tidak berhasil .

ZenVentzi
sumber

Jawaban:

20

Trik lama - tampilan baru:

Contoh 1

Tambahkan lapisan warna ke platform Anda yang membantu menjaga garis yang ditentukan itu.

Contoh 2

Solusi Anda baik untuk garis atau grafik lain dapat bervariasi tetapi prinsipnya sama - warna yang Anda pilih dapat halus atau setajam yang Anda inginkan.

Piddock Tom 'Biru'
sumber
Jawaban yang paling tampan di seluruh saya .. Saya akan mengatakan hidup di sini, tapi kita semua tahu itu akan bohong. i1.memy.pl/obrazki/8f68408024_no_life.jpg
ZenVentzi
1

Karena ini adalah pelari tanpa batas, saya menganggap warna latar belakang Anda dihasilkan secara prosedural. Saya tidak yakin tentang algoritme Anda, tetapi ambil output warna itu dan batasi kisarannya.

  1. Anda cukup mengecualikan warna platform Anda sebagai opsi warna latar belakang yang mungkin (tetapi latar belakangnya bisa sedikit berbeda dan sulit dibedakan). Sebagai contoh: JIKA backColor = platformColor KEMUDIAN GetNextBackgroundColor (). Anda dapat membuat fungsi 'IsColorSimilar (color1, color2)' untuk ini juga, tetapi lebih sulit.

  2. Gunakan daftar warna latar belakang yang valid yang diketahui, dan daur ulang.

  3. Memiliki 'gaya' warna yang berbeda untuk keduanya. Platform Anda bisa cerah dan ceria, dan membatasi warna latar belakang Anda ke warna desaturated. Anda harus menjauh dari cara tradisional RBG untuk mewakili warna, dan pindah ke model seperti HSL.

Pengaya Unity yang hebat untuk bekerja dengan warna adalah ColorTools. Harganya $ 10, tetapi sepadan.https://www.assetstore.unity3d.com/en/#!/content/21966

Ini memiliki metode untuk menghasilkan warna untuk apa yang Anda cari, seperti Desaturate () untuk desaturasi warna latar belakang yang Anda hasilkan, dan IsSimilar () untuk memeriksa apakah kedua warna terlalu dekat satu sama lain.

Anda dapat menemukan fungsionalitas serupa lainnya secara gratis di perpustakaan lain di internet dengan sedikit pencarian.

Doug.McFarlane
sumber