Isi kandungan:
Video: Flappy Bird pada Paparan ATtiny85 dan OLED SSD1306: 6 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Hai semua, Hari ini saya akan menunjukkan kepada anda klon burung flappy asas yang saya buat, dan bagaimana anda boleh membuat permainan serupa. Pada dasarnya saya akan membaca kod saya dengan anda dan menerangkan bagaimana ia berfungsi setiap langkah. Permainan ini dibuat untuk berjalan pada ATtiny85 yang dicatat pada 1MHz, dengan paparan OLED I2C. Maju!
Langkah 1: Perkakasan
Sekiranya anda tidak berminat untuk benar-benar membina litar untuk permainan tetapi memahami teori di belakangnya, anda boleh melangkau langkah ini.
Permainan saya memerlukan dua butang, ATtiny85, layar I2C OLED 128x64px, dan beberapa sumber kuasa. Kad Perniagaan / Konsol Permainan Saya yang Dapat Diajar: ATtiny85 dan OLED Screen menunjukkan kepada anda cara membina papan yang mempunyai semua yang anda perlukan! Sekiranya anda tidak berminat membuat papan saya, keluarkan papan roti anda dan saya akan memberitahu spesifikasinya. Anda boleh menggunakan sebarang varian ATtiny85. Saya cadangkan paparan OLED seperti ini.
- Kabelkan satu sisi dari dua butang tekan ke pin 2 dan 3 pada ATtiny85 anda. Pada wayar ini, tambahkan perintang 10k ohm yang disambungkan ke tanah (perintang tarik ke bawah).
- Kabelkan bahagian lain butang tekan ini ke voltan. Apabila butang tidak ditekan, keadaan pin akan rendah. Apabila ditekan, keadaan pin akan tinggi.
- Sambungkan pin 7 ke pin SCL pada paparan anda, dan pin 5 ke pin SDA pada paparan anda. Kabelkan pin kuasa (VCC dan GND) pada paparan dengan sewajarnya.
- Akhir sekali, sambungkan pin 4 pada ATtiny ke tanah dan pin 8 ke voltan.
Langkah 2: Perisian
Terlampir di sini adalah folder dengan semua fail yang anda perlukan untuk menjalankan permainan. Dua fail, FlappyBird.ino dan WallFunctions.h, sangat baik dikomen untuk keseronokan membaca anda. Anda boleh memuat naik lakaran FlappyBird.ino ke ATtiny85 anda (pada 1MHz), dan bermain! Sekiranya mempelajari teori di sebalik permainan ini menarik minat anda, atau anda ingin membuat permainan anda sendiri, maka baca terus!
Masih ada beberapa masalah dengan permainan saya. I2C bukanlah kaedah terbaik untuk menghantar data dengan cara apa pun. Menurut catatan ini, paparan hanya dapat menerima data pada sekitar 100KHz, jadi walaupun kita menaikkan kecepatan jam ATtiny hingga 8MHz, saluran I2C akan tetap menjadi hambatan. Paparan boleh menghasilkan maksimum 10fps. Semakin banyak gambar yang terpisah yang perlu dilukis oleh paparan, semakin perlahan keseluruhan prosesnya. Oleh itu, permainan saya agak mudah kerana anda tidak boleh bergerak ke dinding dengan sangat pantas! Berikut adalah beberapa cabaran untuk anda jika anda fikir anda mampu melaksanakan tugas:
- Untuk menjadikan permainan lebih sukar, lihat apakah jarak antara dinding menjadi 2 dan bukannya 4. Tidak semestinya terlalu sukar setelah anda memahami bagaimana program saya berfungsi:). Sila masukkan komen jika anda dapat membuatnya berfungsi!
- Perkara lain yang kurang dimiliki oleh permainan saya adalah sistem skor dan cara untuk memaparkan skor dan menyimpannya. Lihat sama ada anda boleh melaksanakannya!
- Terakhir, alih-alih membuat dinding menggerakkan satu lajur pada satu masa, cubalah setiap dinding menggerakkan satu piksel pada satu masa untuk gerakan yang lebih lancar.
Langkah 3: Flappy Bird ATtiny85: Teori
Walaupun layar yang kami gunakan memiliki ketinggian 64 piksel untuk digunakan, permainan hanya dapat menempatkan elemen dalam blok 8 piksel. Oleh itu, hanya ada 8 kemungkinan koordinat-y. Untuk mempermudah, dalam perisian saya membahagikan keseluruhan skrin dengan cara ini, membuat grid 16 blok dengan 8 blok, di mana setiap blok berukuran 8x8 piksel. Untuk mengisi setiap blok, setiap sprite dalam permainan adalah 8x8 piksel. Ini menjadikan semuanya JAUH lebih mudah diuruskan. Sekiranya anda melihat gambar di atas, anda dapat melihat bagaimana saya membahagikan skrin. Setiap dinding terdiri dari 6 blok, dengan lubang 2 blok tinggi, menjadikan total ketinggian setiap dinding 8 blok.
Dalam program, setiap dinding diwakili sebagai struktur, yang disebut Wall. Setiap struktur Dinding mempunyai dua sifat - kedudukan lubang dan lajur. 'holePosition' adalah nombor 0-6, kerana hanya ada 7 kemungkinan posisi di dinding 8 blok untuk lubang setinggi 2 blok. 'kolom' adalah nombor 0-15, kerana terdapat 16 lajur blok yang mungkin di layar.
Disyorkan:
Mainkan Permainan PONG Dengan Arduino Uno dan OLED 0.96 SSD1306 Paparan: 6 Langkah
Mainkan Permainan PONG Dengan Arduino Uno dan OLED 0.96 SSD1306 Paparan: Hai kawan-kawan hari ini kita akan membuat Permainan PONG dengan Arduino. Kami akan menggunakan paparan 0.96 oled adafruit untuk memaparkan permainan & tekan butang untuk mengawal permainan
Grafik pada Paparan SSD1306 I2C OLED 128x64 Dengan CircuitPython Menggunakan Itsybitsy M4 Express: 13 Langkah (dengan Gambar)
Grafik pada Paparan SSD1306 I2C OLED 128x64 Dengan CircuitPython Menggunakan Itsybitsy M4 Express: Paparan OLD SSD1306 berukuran kecil (0.96 "), murah, banyak tersedia, I2C, paparan grafik monokrom dengan 128x64 piksel, yang mudah dihubungkan (hanya 4 wayar) ke papan pengembangan mikropemproses seperti Raspberry Pi, Arduino atau
Paparan Suhu dan Kelembapan dan Pengumpulan Data Dengan Arduino dan Pemprosesan: 13 Langkah (dengan Gambar)
Paparan Suhu dan Kelembapan dan Pengumpulan Data Dengan Arduino dan Pemprosesan: Pengenalan: Ini adalah Projek yang menggunakan papan Arduino, Sensor (DHT11), komputer Windows dan program Pemprosesan (boleh dimuat turun percuma) untuk memaparkan data Suhu, Kelembapan dalam digital dan borang graf bar, masa dan tarikh paparan dan jalankan waktu mengira
Suhu Paparan pada Modul Paparan LED P10 Menggunakan Arduino: 3 Langkah (dengan Gambar)
Suhu Paparan pada Modul Paparan LED P10 Menggunakan Arduino: Dalam tutorial sebelumnya telah diberitahu bagaimana cara memaparkan teks pada Modul P10 Paparan LED Dot Matrix menggunakan Konektor Arduino dan DMD, yang dapat anda periksa di sini. Dalam tutorial ini kita akan memberikan tutorial projek yang mudah dengan menggunakan modul P10 sebagai tampilan med
Teks Paparan pada Paparan LED P10 Menggunakan Arduino: 5 Langkah (dengan Gambar)
Teks Paparan di Paparan LED P10 Menggunakan Arduino: Dotmatrix Display atau lebih sering disebut sebagai Running Text sering dijumpai di kedai sebagai alat untuk mengiklankan produk mereka, praktikal dan fleksibel dalam penggunaannya yang mendorong pelaku perniagaan menggunakannya sebagai nasihat iklan. Kini penggunaan Dot