★ APPLICATIONS ★ PROGRAMMATION ★ SPRİTE İLE HAREKETLENDİRME ★ |
3D-Road (Sizin Amstrad) | Applications Programmation |
Araba oyunları bizim için her zaman bir bilmece olmuştur. Çeşitli hareketli oyunları değişik sprite propramları kullanarak Basic'te bile yazmak mümkündür. Ama araba oyunlarının kıvrılan yolunu, yaklaştıkça büyüyen arabalarını genelde kafamızda koca bir soru işareti ile seyretmişizdir. Esasında bunu yapmak o kadar da zor değildir. Olay ikinci dereceden bir denkiem kullanarak noktaları buna göre yerleştirmekten başka bir şey değildir. Doğal olarak böyle bir program Basic dilinde yazılırsa çok yavaş olur. Bu yüzden program makine dilinde yazılmıştır. Arabanın çizimi ise bir dizi DRAW komutuna eşdeğer makine dili döngüsünden oluşmaktadır. Program mode O'da ekranda 3 boyutlu bir yol çizip onu hareket ettirir ve çeşitli boyutlarda bir araba çizer. Araba çizgilerden oluşmaktadır. Program Basic'e üç tane RSX komutu ekler: |VIEV, |ROAD, |CAR Önce yükleme programını yazıp kaydedin. Sonra da çalıştırın. Program data satırlarını okuyup kontrol edecektir. Eğer data satırlarında hata varsa hatalı satırları size gösterecektir. Tüm datalar hatasız bir şekilde hafızaya yüklendikten sonra sizden makine dili programı kaydetmek için bir disket veya kaset hazırlamanız istenecektir. Kayıt yapıldıktan sonra artık 3-D ROAD programı kullanılabilir haldedir. Bundan sonra yapacağınız programlarda 3-D ROAD'u kullanmak istediğinizde: MEMORY &9FFF:LOAD "3D-ROAD”,&A000 :CALL &A138 yazmanız yeterli olacaktır. YENİ KOMUTLAR VE KULLANIMLARI 3-D ROAD bir tek mode O'da kullanılabilir. Yolun çizimi ekranın yukarıdan 5. ve 16. satırları, sondan 3. ve 18. kolonları tarafından sınırlanan bir dikdörtgen içinde yapılır. Bir dizi window ve cls komutlarıyla bu dikdörtgenin rengi değiştirilerek araba penceresine benzetilebilir |VIEW, yön, eğim |VIEW komutu boş ekrana yolu çizmek veya ekrandaki yolu silmek için kullanılır, ilk parametre yönü belirler. Sıfır sağ, bir ise sol anlamına gelir, ikinci parametre ise eğim derecesidir. 21 ile 4096 veya daha büyük bir sayı olursa yol dümdüz olacaktır. Yolu ekrandan silmek için en son verilen parametreleri vermek gerekir. Örneğin yolun eğimi en son |ROAD, 1,234 ile değiştirilmişse |VIEW, 1,234 ile yol silinebilir. |ROAD, yön, eğim |VIEW komutu ile çizilmiş yolun, eğimini değiştirmeye yarar. Parametreler yine aynıdır. Yalnız burada dikkat edilecek iki nokta vardır. Birincisi yönün hiçbir zaman |ROAD komutu ile değiştirilemeyeceğidir. Yani yön değişkeni her zaman aynı kalmalıdır. Yön değiştirmek için |VIEW komutu ile yol silinmeli ve yeni bir |VIEW komutu ile de yol diğer yönde çizilmelidir. Örneğin sağa doğru 400 eğiminden, sağa doğru 200 eğimine geçmek istiyoruz. Bunun için aşağıdaki işlemleri yapmak gerekir: |ROAD,0,400:REM eğimi sağa doğru 400 yap |VIEW,0,400:REM yolu sil |VIEW,1,200 : REM sola doğru 200 eğiminde çiz Dikkat edilmesi gereken ikinci konu ise yolun eğiminin program tarafından ikinci dereceden bir denklem kullanılarak hesaplanıp ekrana çizildiğidir. Bu yüzden, örneğin 21'den 2000'e kadar bir döngü içinde yolun eğimi değiştirilirse eğimin azalmasının gittikçe yavaşladığı gözlenecektir. Mesela eğim 21'den 22'ye çıkarılınca yolun eğiminin değişmesine rağmen 2000'den 2001'e çıkarılınca bir fark görülmemektedir. Bundan dolayı yolun kıvırlamasının düzgün olması için demo programındaki gibi bir döngü kullanılması gerekir. |CAR,x,y,büyüklük,renk |CAR komutu x ve y koordinatlarında bir araba çizer. Rengi son parametreyle seçilebilir. Ayrıca 3 boyut efektinin sağlanabilmesi için araba değişik boyutlarda çizilebilir. Arabanın büyüklüğü 1 ile7arasında değişebilen büyüklük parametresi ile belirlenir. Arabanın çizimi Basic'deki DRAW ve MOVE komutlarına benzer döngüler kullandığından x, 0 ile 640 arasında, y ise 0 ile 400 arasında bir sayı olmalıdır. Eğer arabaların yolun çizildiği araba penceresinin dışına taşmaması isteniyorsa grafik penceresi Basic'in ORIGIN komutu ile ufaltılabilir. Arabaların yolun eğimine göre her zaman yolun içinde çizilebilmeleri için demo programının son satırlarındaki araba hareket alt programı veya ona benzer bir program kullanılabilir. Arabayı silmek için ise aynı |VIEW komutunda olduğu gibi verdiğiniz son parametrelerin aynısını vermeniz gerekir. Örneğin: "|CAR, 320, 200,5,11" ekrana bir araba çizer. "|CAR,320,200,5,11" bir daha yazılırsa araba silinir. Böylece araba çizilip silinerek hareket etmesi sağlanır. 3-D ROAD'U KULLANIYORUZ... 3-D Road programı ile. çok değişik şeyler yapılabilir. Bundan sonrası sizin programcılığınıza kalıyor. Programın yapabildiklerini görmek için demo programını yazın. Her ihtimale karşı kaydedin. Eğer 3-D Road hafızada yoksa: MEMORY &9FFF: LOAD “3D-ROAD'',&A000:CALL &A138 yazın. Sonra da demo programını çalıştırın. Demo programı ekrana 3 gösterge çizer. Sonra bir motor gürültüsü başlar. Motorun devri yükseldikçe göstergelerden biri de yükselir. Sonra ekrandaki yol kıvrılmaya başlar.SPACE'e her bastığınızdabir araba çıkar. 3-D Road programını daha iyi kullanabilmek için demo programını incelemenizi tavsiye ederim. Gerisi sizin yaratıcılığınıza ve sizin programcılığınıza kalıyor... NOT: Önceki sayılarda yayınlanan XOR-SPRITE programının adresleri ile 3-D Road programının adresleri iki program aynı anda kullanılabilecek şekilde ayarlanmıştır. Yani hem sprite'ları hem de yolu aynı anda kullanabileceksiniz. Böylece biraz uğraşırsanız siz de belki bir SÜPER CYCLE veya OUT RUN programlayabilirsiniz !!!
|