Pinoo ile Meyve Toplama Oyunu
Projenin Amacı: Pinoo Kontrol Kartını kullanarak joystick modülü ile meyve toplama oyunu oluşturmak.
Süre: 2 ders
Yaş Grubu: 7 yaş ve üzeri
Pinoo Seti: Maker set ve tam set.
Kazanımları:
- Pinoo kontrol kartını kodlamayı öğrenir
- Joystick modülünü kodlamayı öğrenir.
- Algoritma kurma becerisi gelişir.
- Kodlama becerisi gelişir.
Kullanılması Gereken Malzemeler: Mblock 3 programı, Pinoo KontrolKartı, Joystick Modülü, bağlantı kablosu.
Tasarım için Gereken Malzemeler: Mukavva,Renkli Karton,silikon tabancası,makas
Proje Yapılışı:
Mukavvaya orta büyüklükte bir elma resmi çiziyoruz ve kesiyoruz.Bu bizim gamepad'imiz olacak.Dilerseniz siz başka bir meyve çizimi de kullanabilirsiniz.
Yuvarlağın alt bölümüne joystick boyutunda bir kare çiziyoruz ve kesiyoruz. Daha sonra ise yuvarlağa sapını ekleyerek kaplıyoruz.
Joystick'i üstündeki yazılar sol tarafa gelecek şekilde (yatay konumda) silikon tabancası ile sabitliyoruz.
Elmanın arka bölümüne Pinoo kartı sabitliyoruz ve bağlantıları yapıyoruz.
Joystick bağlantımız için modül üzerinde bulunan renklerle dikkat ediyoruz. Pinoo kart üzerine aynı renklere sahip olan kırmızı-sarı girişe (9 numara) bağlantımızı yapıyoruz.
Kodlama kısmı için mblock-3 uygulamasını kullanacağız.
Pinoo Kontrol Kartımızı bağlantı kablosu yardımıyla bilgisayara bağlayalım ve Mblock3 uygulamasına giriş yapalım. Daha sonra Pinoo Kontrol Kartımızı bilgisayar ile tanıştıralım. Bunun için öncelikle Bağlan sekmesinden seri port seçeneğine tıklıyoruz.Daha sonra COM4’ü seçiyoruz.(Bilgisayara ve porta göre rakam farklılık gösterebilir.)
Seri port bağlantısını yaptıktan sonra kartlar sekmesinden kullanacağımız kartı seçelim. Biz Arduino’nun Nano modeli ile çalışıyoruz.
Pinoo uzantısını bilgisayarımıza ekleyebilmek için uzantılar sekmesinden uzantıları yönet seçeneğine tıklıyoruz. Açılan pencerede arama motoruna “Pinoo” yazıyoruz ve çıkan sonuca indir dememiz yeterli. Bilgisayarımıza yüklendi.
Kartımızı seçtikten sonra Uzantılar sekmesinden Pinoo seçeneğine tıklıyoruz. Pinoo uzantısı ile kodlarımızı yazacağız.
Kodlama kısmında öncelikle oyun tasarımını yapacağız.Bunun için panda kuklasının üzerinde mouse'un sağ tuşuna tıklayarak pandayı siliyoruz. Daha sonra ise yeni kukla butonuna tıklayarak üç adet meyve ve buton2 (bu kukla sepetimiz olacaktır) adlı kuklayı ekliyoruz.
Dilerseniz siz dekoru kütüphaneden seç butonuna tıklayarak arka planı da değiştirebilirsiniz.
Eklediğimiz ilk meyve olan Apple kuklasına tıklıyoruz ve oyunun başlaması için Olaylar menüsünden Yeşil Bayrağa tıklanınca kodunu alıyoruz.
Oyun başladığı anda meyvelerin rastgele konumlarda ortaya çıkması için hareket sekmesinden fare okuna git komutunu alıyoruz ve açılır menüsünden fare okuna git ifadesini rastgele sahne noktası olarak değiştiriyoruz.
Meyvenin dikey bir düzlem (y ekseni) üzerinde hareket edebilmesi için başlangıç koordinatı belirliyoruz. Hareket sekmesinden y 0 olsun komutunu alıyoruz ve 0 ifadesini 180 olarak değiştiriyoruz.
Sürekli olarak meyvenin y ekseninde(dikey olarak)hareket edebilmesi için öncelikle kontrol sekmesinden sürekli tekrarla komutunu alıyoruz. Daha sonra ise hareket sekmesinden y'yi 0 arttır komutunu alıp 0 ifadesini -5 olarak değiştiriyoruz.
Meyve dikey hareketi esnasında sahnenin en sonuna geldi ise sahne içerisinde rastgele bir konumdan yukarı aşağı(y konumu 180'den) şeklinde hareket etsin istiyoruz. Bunun için öncelikle kontrol sekmesinden eğer ise bloğunu alıyoruz. Sahnenin y konumunun(dikey hareketin) sonunu -170 olarak kabul ediyoruz.
*** Aynı kod bloklarını tüm meyveler için yazıyoruz.
Toplanacak her meyve için 10 puan kazanılsın istiyoruz.Bunun için Veri&Blok sekmesinden puan adında bir değişken oluşturuyoruz.Oyun başladığında ( yeşil bayrağa tıklanıldığında) ise puan 0 olsun.
Eğer Buton2(sepete) kuklasına meyve değmiş ise (meyve toplanıldı) puan değişkeni 10 artsın ve meyve sahne içerisinde yukarı aşağı(y konumu 180'den) şeklinde hareket etsin.Tüm bu işlemlerin ise sürekli olmasını istiyoruz.
Kontrol sekmesinden sürekli tekrarla kod bloğunu ve eğer ise bloğu alıyoruz. Eğer bloğunun koşul alanına buton2'ye(sepet) değip değmediğini algılayabileceğimiz blok olan algılama sekmesinden değdi mi komutunu alıyoruz ve açılır menüsünden buton2'yi seçip yerleştiriyoruz. Şart sağlandığında yapılacak işlemler içinse hareket sekmesinden rastgele noktadan başlangıca dönme komutlarını ekliyoruz.
*** Aynı kod bloklarını tüm meyveler için yazıyoruz.
Buton2(sepet) kuklasına tıklıyoruz. Oyunun başlangıcında (yeşil bayrağa tıklandığı zaman) kukla belirli bir başlangıç noktasında (x:0 y:-136)olsun istiyoruz.
Sepetimizin yani buton2'nin hareketini joystick'in x ekseninde aldığı değerler ile sağlayacağız. Değerleri öğrenmek için Veri&Blok sekmesinden x adında yeni bir değişken oluşturuyoruz.
X değişkeninin joystickten gelen değere sürekli olarak eşit olduğunu belirtmek için kontrol sekmesinden sürekli tekrarla bloğu,Veri&Blok sekmesinden x 0 olsun kod bloğunu alıyoruz ve 0 yerine robotlar sekmesinden joystick ile ilgili olan kod bloğunu yerleştiriyoruz.
*** Yeşil bayrağa tıklayalım ve joystick'i sağ ve sola hareket ettirerek ekranın solunda yazan x başlığında değerlerin değişimini gözlemleyelim.
Joystick hareketlerinin (x'in) eşik değerlerini belirlemek için joystick'in en sağda,sabit halde ve en solda aldığı değerleri tespit etmemiz gerekmektedir.
- En sağ (kuklanın ileri hareketi)için değerler 1023'e yaklaşıyor.600 olarak ortalama bir değer belirlendi.
- Sabit hali ortalama 500,
- En sol (kuklanın geri hareketi)için ise değerler 0'a yaklaşıyor.300 olarak ortalama bir değer belirlendi.
Siz kendi oyununuza göre bu değerleri güncelleyebilirsiniz.
Şimdi ise tüm bu eşik değerleri için gerekli koşul durumlarını oluşturalım. Kontrol sekmesinden eğer bloğu ve işlemler sekmesinden küçüktür ve büyüktür bloğunu alıp şart ifademizi oluşturuyoruz.
Kuklanın ileri ve geri hareketi için kullanacağımız komutlar hareket sekmesinden x'i 10 arttır komutunu alıyoruz. Kuklanın geri hareketi için 10 değerini -10 olarak değiştiriyoruz.
***Yeşil bayrağa tıklayarak joystick'i sağa ve sola hareket ettirelim.Kuklanın hareketini gözlemleyelim.
Oyunu belirli bir süre içerisinde oynamak için Veri&Blok sekmesinden süre adında bir değişken oluşturuyoruz.
Yeşil bayrağa tıklandığında yani oyun başladığında süre 0 olsun ve daha sonra süre sürekli olarak 1 sn aralıklarla artsın istiyoruz.
Eğer süre 30'a eşit ise ekrana oyun bitti yazsın ve oyun dursun istiyoruz.
Bunun için kontrol sekmesinden eğer ise ve işlemler sekmesinden eşittir ifadesini alıyoruz. Koşulun sağlanması durumunda gerçekleşecek işlemler için görünüm sekmesinden merhaba de 2 sn komutu ve kontrol sekmesinden hepsini durdur bloğunu alıyoruz. Merhaba ifadesini OYUN BİTTİ olarak değiştiriyoruz.
Kodlarımızı tamamladıktan sonra yeşil bayrağa tıklayarak oyunumuzun çalışmasını kontrol ediyoruz.
- Süremiz oyunun başlaması ile artmaya başlayacak,
- Joystick'i sağ doğru çektiğimiz zaman sepet sağa doğru, sola çektiğimizde ise sola doğru hareket etmeli,
- Meyveler sepete değdiğinde ise puanımız artmalı,
- Süre 30'a eşit olduğunda ise oyun bitmeli.
Pinoo setleri ile çocuklar, evlerinde rahatlıkla bulabilecekleri malzemeler ile yüzlerce proje yapabilirler.