Python ile Android Oyun Yapmak: PyGame Subset for Android

Yükleniyor

Bu yazımda yeni keşfettiğim, heyecan verici bir PyGame subset’ini ve bir Android uygulamasını sıfırdan basitçe yazmayı anlatmak istiyorum.

PyGame Subset for Android (kısa adıyla pgs4a), Python diliyle oyun yazmak için kullanılan PyGame’in Android mecrasında oyun üretebilen bir parçası. Ortalama bir programlama bilgisiyle Android uygulaması yazabilmek istiyorsanız PyGame’i ve pgs4a’yı denemenizi şiddetle öneriyorum.

PGS4A Yükleme

Gerekenler

  • pgs4a, (İçindeki dosyaları C: sürücünüzde pgs4a klasörüne çıkartın)
  • Python 2.7 kodlama dilimiz python olacağından python’u indirip kurmalısınız.
  • JDK (Java Development Kit)

Tüm indirme ve yükleme işlemleri bittiyse gelelim pgs4a’da oyun yazmaya hazırlanmaya.

Başlıyoruz!

Öncelikle pgs4a, python ve jdk tam olarak yüklenmiş mi, kontrol edelim.
Windows kullanıyorsanız komut satırına girin (Çalıştır > cmd.
phs4a klasörünü cd komutuyla gelin ve android.py test komutunu çalıştırın.
Sonuç şu şekildeyse iyi haber.

Aynı şekilde komut satırında android.py installsdk komutunu çalıştırın ve Apache Ant ve Android SDK’nın kuruluşunu izleyin :)
Not: Yükleme sırasında tarayıcı açılıp Android kullanım koşulları sayfasını gösterecek. Komut satırına dönerek koşulları kabul ettiğinizi belirtin.

Koşulları kabul ettiğinizde Android SDK kurulumu başlayacak ve birkaç dakika içerisinde kurulum tamamlanacak.


Kurulum bittiğinde key oluşturup oluşturmayacağınızı soracak. Bu key Google Play gibi mağazalar için önemli. Bir key oluşturun ve key dosyasının yedeğini alın ve bu dosyayı kesinlikle gizli tutun.

Oyun Paketimizi Oluşturalım

Yükleme işlemleri bitti. Şimdi bir deneme uygulaması hazırlayalım.
Öncelikle pgs4a klasörünün içinde yeni bir klasör oluşturun ve adını Tikmatik yapın. Bu klasör uygulama dosyalarımızın yer alacağı klasör.
Komut satırına dönün ve android.py configure tikmatik komutunu çalıştırın.
Bu komutu çalıştırdığınızda art arda 10’dan fazla soru soracaktır. Şu cevapları verin:

Full name of the app: tikmatik

short name: [leave default] tikmatik

package name: com.mht.tikmatik

application’s version: 1.0

version code: 100

application to be displayed: [2] Dikey mod

create an expansion APK: [1] No.

application laid out: [1] A single directory.

include the python sourcecode: [no]

permissions: default [vibrate]

include SQLite3: [no]

include Python Imaging Library: [no]

Bu cevapların ardından uygulamamızın ayarları tamamlanmış oldu.

Oyunu Yazalım

Oyunumuzu python dilinde, tikmatik klasörünün içinde bir main.py dosyasına yazacağız. Adından da anlaşılacağı üzere ekrana dokundukça dokunma sayımızı gösteren bir uygulama yapacağız. Uygulamamız çok basit görünebilir ancak işin temellerini öğrenmek her zaman önemlidir.

Kodlar Gelsin!

# -*- coding: utf-8 -*-
import pygame, sys

# android'e ulaşmayı dene.
# eğer ulaşamazsak, ugyulamayı masaüstünde de çalıştırabiliriz.
try:
    import android
except ImportError:
    android = None

# Event sabiti.
TIMEREVENT = pygame.USEREVENT

# Uygulamanın saniyede göstereceği frame sayısı.
FPS = 30

# Renk sabitleri.
RED = (255, 0, 0, 255)
GREEN = (0, 255, 0, 255)
BLACK = (0,0,0,255)

# ana fonksiyonumuz  
def main():
    #pygame'i başlat
    pygame.init()

    # Ekran genişliğini belirleyelim.
    screen = pygame.display.set_mode((240, 400))

    # Android geri ve çıkış tuşları.
    if android:
        android.init()
        android.map_key(android.KEYCODE_BACK, pygame.K_ESCAPE)

    # FPS kontrolü için zamanlayıcı.
    pygame.time.set_timer(TIMEREVENT, 1000 / FPS)

    # Ekran rengimiz.
    color = BLACK
    
    #başlangıç sayısı
    kac = 0
    
    # Uygulama döngümüz
    while True:

        ev = pygame.event.wait()

        # Uygulama şu an kullanılıyor mu? Durdurulmuş mu?
        if android:
            if android.check_pause():
                android.wait_for_resume()

        # Saniyede 30 Kere (FPS değerimiz) kontrol edilip yapılacaklar.
        if ev.type == TIMEREVENT:
            #ekranı boya
            screen.fill(color)
            #tık sayısını yazıdır
            if int(kac) != 0:
                myfont = pygame.font.SysFont("Comic Sans MS", 30)
                label = myfont.render(str(kac), 1, (255,255,255))
                # 50x50 koordinatlarına yazımızı ekle
                screen.blit(label, (50, 50))
            # henüz hiç tıklanmamış. "Dokunmaya Başla!" yazdıralım
            else:
                myfont = pygame.font.SysFont("Comic Sans MS", 30)
                label = myfont.render("Dokunmaya".decode('utf8'), 1, (255,255,255))
                label2 = myfont.render("Başla!".decode('utf8'), 1, (255,255,255))
                screen.blit(label, (50, 50))
                screen.blit(label2, (50, 150))
            # Yukarıdakileri göstermesi için:
            pygame.display.flip()

        # Ekrana dokunulunca yapılacaklar:
        elif ev.type == pygame.MOUSEBUTTONDOWN:
            # ekranı kırmızılaştır
            color = RED
            # tık sayısını bir arttır.
            kac = kac + 1

        # Ekrandan parmak çekilince ekranı yeşilleştir :)
        elif ev.type == pygame.MOUSEBUTTONUP:
            color = GREEN

        # Çıkış ya da geri tuşuna basılınca uygulamayı bitir
        elif ev.type == pygame.KEYDOWN and ev.key == pygame.K_ESCAPE:
            break

# Bu kodlar bilgisayardan çalıştırabilmek için
if __name__ == "__main__":
    main()

Dosyayı main.py olarak tikmatik klasörüne kaydettikten sonra çift tıklayarak deneyebilirsiniz.
Yaptığınızı beğendiyseniz telefonunuzu USB ile bilgisayarınıza bağlayıp, komut satırınıza android.py build tikmatik release installPygame + Android game. PGS4A tutorial 1
http://pygame.renpy.org/

Kodlar ya da anlatımla ilgili soru, sorun ya da öneriniz varsa lütfen yorum olarak göndermekten çekinmeyin. Keyifli oyun geliştirmeler diliyorum :)

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir