
Köstebeği Yakala! Oyunu
Android Uygulama Geliştirme Ders Notları
Proje Tanımı
Köstebeği Yakala, ekranda beliren köstebeklere dokunarak puan toplanılan bir oyun.
- Oyunu Android Studio'da Java dili ile geliştireceğiz.
- Kullanıcı kaydı için Firebase Authentication kullanılacak ve
en yüksek puan Firebase Realtime Database'e kaydedilecek.
- Oyunun sesleri ve titreşim efekti kullanılacak.
- Oyunun başlığı ve butonları animasyon efektleri ile
hareketli olacak.
Oyun 3 ekrandan oluşacak:
LoginActivity, GameActivity ve ResultActivity.
LoginActivity:

Bu ekranda:
- Başlık görseli,
- Oyunun karakteri olan köstebek görseli,
- Kullanıcı adı girilen alanı,
- Kaydet/Başla butonu,
- Ses açma kapama butonu
bulunacak.
Uygulama ilk kez açıldığında kullanıcı adı girilecek. Girilen kullanıcı adı Firebase Authentication ve Firebase Realtime Database'de kontrol edilecek. Eğer kullanıcı adı daha önce kayıtlıysa uyarı verilecek. Yeni kullanıcı adı hem SharedPreferences'a hem de Firebase Realtime Database'e kaydedilecek.
Uygulama tekrar açıldığında kullanıcı adı SharedPreferences'tan hatırlanacak ve tekrar düzenlenemeyecek.
Uygulama ilk kez açıldıysa Kaydet butonu, daha önce
kaydedilmişse Başla butonu gösterilecek.
Başla butonuna tıklandığında GameActivity'e geçip oyun başlayacak.
Kullanıcının varsa daha önce kaydettiği En yüksek puan da
SharedPreferences'ta saklanacak gösterilecek.
Eğer uygulama ilk kez açılıyorsa en yüksek puan olmadığı için
gösterilmeyecek.
Ses açma kapama butonu ile oyunun sesi açılıp kapatılacak ve bu durum
SharedPreferences ile saklanacak.
Ses durumununa göre butonun resmi değişecek.
Uygulama tekrar açıldığında ses durumu hatırlanacak.
Butonlara tıklandığında küçülüp büyüyecek.
GameActivity:

Ekranın üst kısmında kalan süre gösterilecek.
Süre son 3 saniyede kırmızıya dönecek.
Süre sona erdiğinde oyun sona erecek ve ResultActivity'e geçilecek.
Ortada oyun alanı olacak ve bu alanda rastgele köstebekler
belirecek.
Köstebeğin hareketi için animasyon kullanılacak.
Animasyon her tekrarlandığında bir ses çalacak.
Köstebek tıklandığında vurulma sesi çalacak ve titreşim olacak.
Vurulan köstebeğin resmi değişecek.
Puan artacak.
Bazen rastgele köstebek yerine bomba belirecek.
Bomba tıklandığında patlama sesi çalacak ve titreşim olacak.
Puan azalacak.
Ekranın alt tarafında puan gösterilecek.
Puan, köstebek vurulduğunda artacak.
Her puan arttığında Puan bölümü animasyon ile büyüyüp küçülecek.
Gradle Scripts > build.gradle (modul: app):
android {
// diğer kodlar
viewBinding {
enabled = true
}
}
manifest > AndroidManifest.xml dosyasındaki MainActivity ile ilgili kısmı silin:
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#885218"
tools:context=".LoginActivity" >
public class LoginActivity extends AppCompatActivity {
// diğer kodlar
// Köstebeğin vurulma durumu
private boolean vurulduMu = false;
// Handler, köstebeğin yukarı çıkma ve aşağı inme animasyonlarını kontrol eder
private final Handler handler = new Handler(Looper.getMainLooper());
// Yukarı çıkma animasyonu
private final TranslateAnimation animUp = createTranslateAnimation(150, 0, 300);
// Aşağı inme animasyonu
private final TranslateAnimation animDown = createTranslateAnimation(0, 150, 300);
// diğer kodlar