İçindekiler
Çılgın Kurbağa Oyunu genellikle Crazy Frog karakterine veya şarkıya dayanan bir video oyununu ifade eder. Aynı zamanda "Rahatsız Edici Şey" olarak da bilinen popüler bir internet fenomeni ve reklam karakteridir. Vahşi ve esprili bir karakter olarak tanınmaktadır ve birçok eğlenceli ve çılgın macera oyununa ilham kaynağı olmuştur.
Bu oyunlar aksiyon, yarış, platform oyunları veya çeşitli mini oyunlar gibi farklı türlerde bulunabilir. Oyuncular karakteri kontrol ederek engelleri aşmaya, yarışmaya veya görevleri tamamlamaya çalışırlar.
Her Crazy Frog oyununun kendine özgü konsepti ve oynanışı olabilir, bu nedenle sorduğunuz oyunun belirli ayrıntıları farklı yanıtlar verebilir. Genel olarak bu oyunlar keyifli ve esprili deneyimler sunmayı ve hayranlara keyifli bir oyun deneyimi sunmayı amaçlamaktadır.
Çılgın Kurbağa Oyunu
Bugün, şarkının melodisini içeren eğlenceli bir projeyi sunmanın mutluluğunu yaşıyoruz. Çılgın Kurbağa orijinal şarkısı, ritme göre titreşen senkronize RGB ışıklar ve ekranda dans rutini sergileyen sevimli bir maskot OLED Ekran. Crazy Frog oyunu sadece keyifli bir deneyim vaat etmekle kalmıyor, aynı zamanda yaratıcılığı, konsantrasyonu, çevikliği geliştiren ve temel programlama uzmanlığı kazandıran bir platform görevi de görüyor. Bu çaba sizi sadece eğlendirmeyi değil, aynı zamanda değerli becerilerle donatmayı da amaçlıyor. İşin inceliklerini daha derinlemesine inceleyelim çılgın dans eden kurbağa!
Ayrıntılar ve Algoritma
Bileşenler
1xPicoBricks
Picobricks modüllerini kablolama olmadan kodlayabilir ve çalıştırabilirsiniz. Modülleri panodan ayırarak kullanacaksanız modül bağlantılarını grove kablolarla yapmalısınız.
Bağlantı şeması
Picobricks modüllerini kablolama olmadan kodlayabilir ve çalıştırabilirsiniz. Modülleri panodan ayırarak kullanacaksanız modül bağlantılarını grove kablolarla yapmalısınız.
Çılgın Kurbağa Oyununun MicroBlock Kodları
Çılgın Kurbağa Oyununun MicroPython Kodları
Mikro Python kodu aşağıda gösterilmiştir. Resim dosyalarınız için ayrı bir Python dosyası oluşturmanız gerekecektir. Bu dosyayı kullanarak indirebilirsiniz. düğme altında.
ithalat zamanı
makineden içe aktarma Pin, I2C, PWM, ADC
picobricks'ten SSD1306_I2C'yi içe aktar
çerçeve çerçevesini içe aktar
import random #random neopixel'in rastgele çalışmasını sağlar.
picobricks'ten WS2812#ws8212 kitaplığını içe aktarın
from Crazyfrog_imgs import bar_0, bar_20, bar_50, bar_70, bar_90, bar_100, maskot_1, maskot_2, maskot_3, maskot_4 # imgs ayarını çalıştırıyoruz ve görüntüleri yapılandırmak için seçeneklerden birini oluşturuyoruz.
GENİŞLİK = 128 # oled ekran genişliği
YÜKSEKLİK = 64 # oled ekran yüksekliği
i2c = I2C(0, scl=Pin(5), sda=Pin(4), freq=200000) # GP8 ve GP9 pinlerini kullanarak I2C'yi başlatın (varsayılan I2C0 pinleri)
oled = SSD1306_I2C(WIDTH, HEIGHT, i2c, addr=0x3c) # Başlangıç oled ekranı
bar1 = çerçevebuf.FrameBuffer(bar_0, 128,64, çerçevebuf.MONO_HLSB)
bar2 = çerçevebuf.FrameBuffer(bar_20, 128,64, çerçevebuf.MONO_HLSB)
bar3 = çerçevebuf.FrameBuffer(bar_50, 128,64, çerçevebuf.MONO_HLSB)
bar4 = çerçevebuf.FrameBuffer(bar_70, 128,64, çerçevebuf.MONO_HLSB)
bar5 = çerçevebuf.FrameBuffer(bar_90, 128,64, çerçevebuf.MONO_HLSB)
bar6 = çerçevebuf.FrameBuffer(bar_100, 128,64, çerçevebuf.MONO_HLSB)
maskot1 = çerçevebuf.FrameBuffer(maskot_1, 128,64, çerçevebuf.MONO_HLSB)
maskot2 = çerçevebuf.FrameBuffer(maskot_2, 128,64, çerçevebuf.MONO_HLSB)
maskot3 = çerçevebuf.FrameBuffer(maskot_3, 128,64, çerçevebuf.MONO_HLSB)
maskot4 = çerçevebuf.FrameBuffer(maskot_4, 128,64, çerçevebuf.MONO_HLSB)
notlar = {"B0": 31, "C1": 33, "CS1": 35, "D1": 37, "DS1": 39, "E1": 41, "F1": 44, "FS1": 46 ,
"G1": 49, "GS1": 52, "A1": 55, "AS1": 58, "B1": 62, "C2": 65, "CS2": 69, "D2": 73,
"DS2": 78,"E2": 82, "F2": 87, "FS2": 93, "G2": 98, "GS2": 104, "A2": 110,
"AS2": 117, "B2": 123, "C3": 131, "CS3": 139, "D3": 147, "DS3": 156, "E3": 165,
"F3": 175, "FS3": 185, "G3": 196, "GS3": 208, "A3": 220, "AS3": 233, "B3": 247,
"C4": 262, "CS4": 277, "D4": 294, "DS4": 311, "E4": 330, "F4": 349, "FS4": 370,
"G4": 392, "GS4": 415, "A4": 440, "AS4": 466, "B4": 494, "C5": 523, "CS5": 554,
"D5": 587, "DS5": 622, "E5": 659, "F5": 698, "FS5": 740, "G5": 784, "GS5": 831,
"A5": 880, "AS5": 932, "B5": 988, "C6": 1047, "CS6": 1109, "D6": 1175,
"DS6": 1245, "E6": 1319, "F6": 1397, "FS6": 1480, "G6": 1568, "GS6": 1661,
"A6": 1760, "AS6": 1865, "B6": 1976, "C7": 2093, "CS7": 2217, "D7": 2349,
"DS7": 2489, "E7": 2637, "F7": 2794, "FS7": 2960, "G7": 3136, "GS7": 3322,
"A7": 3520, "AS7": 3729, "B7": 3951, "C8": 4186, "CS8": 4435, "D8": 4699,
"DS8": 4978}
çılgın_frog_melody = [
notlar['A4'], notlar['C5'], notlar['A4'], notlar['A4'], notlar['D5'], notlar['A4'], notlar['G4'],
notlar['A4'], notlar['E5'], notlar['A4'], notlar['A4'], notlar['F5'], notlar['E5'], notlar['C5'],
notlar['A4'], notlar['E5'], notlar['A5'], notlar['A4'], notlar['G4'], notlar['G4'], notlar['E4'],
notlar['B4'], notlar['A4'],0,
notlar['A4'], notlar['C5'], notlar['A4'], notlar['A4'], notlar['D5'], notlar['A4'], notlar['G4'],
notlar['A4'], notlar['E5'], notlar['A4'], notlar['A4'], notlar['F5'], notlar['E5'], notlar['C5'],
notlar['A4'], notlar['E5'], notlar['A5'], notlar['A4'], notlar['G4'], notlar['G4'], notlar['E4'],
notlar['B4'], notlar['A4'],0,
notlar['A3'], notlar['G3'], notlar['E3'], notlar['D3'],
notlar['A4'], notlar['C5'], notlar['A4'], notlar['A4'], notlar['D5'], notlar['A4'], notlar['G4'],
notlar['A4'], notlar['E5'], notlar['A4'], notlar['A4'], notlar['F5'], notlar['E5'], notlar['C5'],
notlar['A4'], notlar['E5'], notlar['A5'], notlar['A4'], notlar['G4'], notlar['G4'], notlar['E4'],
notlar['B4'], notlar['A4'],
]
çılgın_frog_tempo = [
2,4,4,8,4,4,4,
2,4,4,8,4,4,4,
4,4,4,8,4,8,4,4,
1,4,
2,4,4,8,4,4,4,
2,4,4,8,4,4,4,
4,4,4,8,4,8,4,4,
1,4,
8,4,4,4,
2,4,4,8,4,4,4,
2,4,4,8,4,4,4,
4,4,4,8,4,8,4,4,
1,
]
oled.blit(çubuk1, 0, 0)
oled.show()
zaman.uyku(1)
oled.blit(bar2, 0, 0)
oled.show()
zaman.uyku(1)
oled.blit(bar3, 0, 0)
oled.show()
zaman.uyku(1)
oled.blit(bar4, 0, 0)
oled.show()
zaman.uyku(1)
oled.blit(bar5, 0, 0)
oled.show()
zaman.uyku(1)
oled.blit(bar6, 0, 0)
oled.show()
zaman.uyku(1)
sesli uyarı = PWM(Pin(20))
buzzer.duty_u16(0)
neo = WS2812(6, parlaklık=0,4)
maskot_pozisyon = 0
def buzz(frekans, uzunluk):
#"vızıltı" fonksiyonunu yaratın ve ona perdeyi ve süreyi besleyin
if(frekans==0):
zaman.uyku(uzunluk)
geri dönmek
buzzer.duty_u16(4000)
buzzer.freq(frekans)
zaman.uyku(uzunluk)
buzzer.duty_u16(0)
def play(melodi, tempo, duraklama, tempo=0,7):
küresel maskot_position
i için range(0, len(melodi)):
# Şarkıyı çal
notSüre = tempo/tempo[i]
buzz(melody[i],noteDuration) # Şarkı notası boyunca frekansı değiştirin
PauseBetweenNotes = noteSüre * duraklatma
time.sleep(pauseBetweenNotes)
neo.pixels_fill((random.randint(0,255),
random.randint(0,255),
random.randint(0,255)))
neo.pixels_show()
maskot_position == 0 ise:
oled.blit(maskot1, 0, 0)
maskot_pozisyon = 1
elif maskot_pozisyon == 1:
oled.blit(maskot2, 0, 0)
maskot_pozisyon = 2
elif maskot_pozisyon == 2:
oled.blit(maskot3, 0, 0)
maskot_pozisyon = 3
elif maskot_pozisyon == 3:
oled.blit(maskot4, 0, 0)
maskot_pozisyon = 0
oled.show()
çal(crazy_frog_melody, çılgın_frog_tempo, 0.1)
PicoBricks için Arduino C Kodları
#define BUZZER_PIN 20
#define NOTE_E4 330
#define NOTE_A5 880
#define NOTE_F5 698
#define NOTE_E5 659
#define NOTE_G4 392
#define NOTE_D5 587
#define NOTE_C5 523
#define NOTE_A4 440
#define NOTE_B4 494
const int çılgınFrogMelody[] = {
NOTE_A4, NOTE_C5, NOTE_A4, NOTE_A4, NOTE_D5, NOTE_A4, NOTE_G4,
NOTE_A4, NOTE_E5, NOTE_A4, NOTE_A4, NOTE_F5, NOTE_E5, NOTE_C5,
NOTE_A4, NOTE_E5, NOTE_A5, NOTE_A4, NOTE_G4, NOTE_G4, NOTE_E4, NOTE_B4,
NOT_A4, 0,
};
const int çılgınFrogTempo[] = {
2, 4, 4, 8, 4, 4, 4,
2, 4, 4, 8, 4, 4, 4,
4, 4, 4, 8, 4, 8, 4, 4,
1, 4,
};
geçersiz kurulum() {
pinMode(BUZZER_PIN, OUTPUT);
}
geçersiz döngü () {
int size = sizeof(crazyFrogTempo) / sizeof(int);
for (int not = 0; not < boyut; not++) {
int süre = 1000 / çılgınFrogTempo[not];
tone(BUZZER_PIN, çılgınFrogMelody[not], süre);
int PauseBetweenNotes = süre * 1.30;
gecikme(PauseBetweenNotes);
ton yok(BUZZER_PIN);
}
}