Kategori: Programming

APyGM

APyGM means Another Python Game. it is my new project name. 🙂 Well i released new version because i traslated the project to english. From now on i will keep it in english. With this version we start to take mounster’s information from our new database(npc.db). You have a script named gm.py which helps to […]

Oyun Yapımı -4

Versiyon 0.4 hazır! Yaptıklarımıza gelecek olursak öncelikle artık bir run() fonksiyonumuz var. Bu fonksiyon sayesinde siz istemedikçe oyun kapanmayacak. Tamamen metinden oluşan bir arayüz oluşturdum ve size iki seçenek verdim. Ya savaşırsınız ya da korkak gibi sys.exit() çekersiniz. İki dosyamız var bundan sonra ana dosyayı kurcalamadan fun.py dosyası üzerinde çalışacağım. Uygulamayı çalıştırmak için bir dizine […]

Oyun Yapımı -3

Vakit bol olunca uğraşıp duruyoruz. Bundan böyle kodlar uzadığı için google code üzerinde oluşturduğum bir proje üzerinden sizlere dosyaları ulaştıracağım. Oyunumuzun adı gmsgame oldu ve bundan böyle gplv3 ile lisanslı. 0.3 numaralı versiyon şu adresten indirilebilir. Şimdi gelelim bu versiyonla birlikte neler yaptığımıza. Öncelikle artık girdiğimiz verileri bir veritabanında tutuyoruz. Veritabanı olarak Sqlite’ı tercih ettim, […]

Oyun Yapımı -2

Gece yazdığım uygulamaya sabah ek yapıyorum. Şimdi dediğim gibi rastgele çekebilirdik canavarı bende öyle yaptım ama sadece sağlığını değiştirdim. Saldırı puanını bir sonraki yazıda düzenlerim. Rastgele seçim yapmak için önce canavarlar isimli bir sözlük nesnesi oluşturdum sonra random modülünün choice() fonksiyonunu kullanarak bu sözlüğün anahtarlarından rastgele bir seçim yaptım. Aşağıda ki while döngüsüne tekrardan bir […]

Oyun Yapımı -1

Arada sırada Python bilgimi tazelemek için boş işlerle uğraşırım. Bu da uğraştığım boş işlerden birisi. Oyun programlamaya girdiğinizde tüm oyunların birer döngüden ibaret olduğunu göreceksiniz. En basitinden tutunda en karmaşık oyunlara kadar hepsi döngüler üzerine kuruludur. Zaten çoğunda Panda3d yazılarında bahsettiğim gibi loop() fonksiyonu gibi fonksiyonlar kullanırsınız. Hazır bir oyun motoru kullanırsanız bu fonksiyonlar önceden […]

Panda3D Hareket İçin Interval

Evet arkadaşlar, sahnemizi oluşturduk. İçerisine bir panda koyduk güzel oldu şimdi sırada pandamızı hareket ettirmeye geldi. Bunun için Interval denilen bir özelliği kullanacağız. Öncelikle kodlarımızı ekleyelim: import direct.directbase.DirectStartfrom pandac.PandaModules import *from direct.task import Taskfrom direct.actor import Actorfrom direct.interval.IntervalGlobal import *import mathenviron = loader.loadModel(“models/environment”)environ.reparentTo(render)environ.setScale(0.25,0.25,0.25)environ.setPos(-8,42,0)def SpinCameraTask(task): angledegrees = task.time * 6.0 angleradians = angledegrees * (math.pi / […]

Panda3D Aktörler

import direct.directbase.DirectStartfrom direct.task import Taskfrom direct.actor import Actorimport mathenviron = loader.loadModel(“models/environment”)environ.reparentTo(render)environ.setScale(0.25,0.25,0.25)environ.setPos(-8,42,0)def SpinCameraTask(task):angledegrees = task.time * 6.0angleradians = angledegrees * (math.pi / 180.0)base.camera.setPos(20*math.sin(angleradians),-20.0*math.cos(angleradians),3)base.camera.setHpr(angledegrees, 0, 0)return Task.conttaskMgr.add(SpinCameraTask, “SpinCameraTask”)pandaActor = Actor.Actor(“models/panda-model”,{“walk”:”models/panda-walk4″})pandaActor.setScale(0.005,0.005,0.005)pandaActor.reparentTo(render)pandaActor.loop(“walk”)run() Sahnemizi daha önce ki eğitsellerde yüklemiştik. Kodumuz gittikçe gelişiyor şimdi ilk olarak import ettiğimiz modüllere tekrardan bakın. Ekstradan Actor modülünü import ettik. Şimdi uygulamanın son bölümüne bakın, […]

Panda3D Kamera Kontrolü

Devam ediyoruz, şimdi aşağıdaki kodları inceleyelim: import direct.directbase.DirectStartfrom direct.task import Taskimport mathenviron = loader.loadModel(“models/environment”)environ.reparentTo(render)environ.setScale(0.25,0.25,0.25)environ.setPos(-8,42,0)def SpinCameraTask(task):angledegrees = task.time * 6.0angleradians = angledegrees * (math.pi / 180.0)base.camera.setPos(20*math.sin(angleradians),-20.0*math.cos(angleradians),3)base.camera.setHpr(angledegrees, 0, 0)return Task.conttaskMgr.add(SpinCameraTask, “SpinCameraTask”)run() Yine DirectStart’ı import ettik fakat bu sefer ekstra bir kaç modülü daha kullanmamız gerekti. Geçen sefer eklemiş olduğumuz sahnemizde kamera düzgün değildi burada işi halletmesi için […]

Panda3D Sahne Yükleme

import direct.directbase.DirectStart environ = loader.loadModel(“models/environment”)environ.reparentTo(render)environ.setScale(0.25,0.25,0.25)environ.setPos(-8,42,0) run() Yine önce DirectStart’ı import ediyoruz. environ isimli bir nesne oluşturduk bu nesnemize modelimizi yükledik. “models/environment” kısmının ayrıntılı kullanımı için dosya söz dizimi eğitseline bakabilirsiniz. Aslında pygame dokümanlarını okumuş olan arkadaşlar sistemin benzer olduğunu fark edecektir. Nesneleri yükleyip render ediyoruz sonrada oynatıyoruz. Nesnelerin açı ve pozisyon değerlerini belirliyoruz. Ayarlanabilen bir […]