|
Konu Başlığı: Parallax ipucu? Gönderen: wizofwor üzerinde Aralık 11, 2013, 12:11:25 ÖS Akşam hazırladığım tile map'i ekrana basmayı becerebilirsem, parallax olayına girmeyi planlıyorum. Zaman kazanmak için işi bilen abilerim, ablalarıma sormak istedim. Varsayımlarım doğru mudur?
1. Ekranı için sola kaydırmak için aşağıdaki gibi bir rutin kurguladım. Tabi sondaki karakterleri bir yana kaydıran SHIFTCAR kısmının her satır için ayrı ayrı (25 kere) çalışması gerekiyor. Burdaki mantığım doğru mu? Rutin her çalıştığında $D016'nın son 3 bitini bir eksiltiyor. Sıfıra varınca bu sefer karekter belleğini 1 sola kaydırıyor. Kod: SHIFT = $03 ; $03 adresini parametere olarak ayır 2. Kaydırma kodunun kusursuz çalıştığını varsayıyorum. Parallax için ekranı 3 ayrı bant halinde kaydırmak istiyorum. Aklımdaki yöntem şu:
3. Son olarak geldik zurnanın zırt dediği yere. Parallax'ı hızlandırıp yavaşlatabilmek istiyorum. Bunun için bir timer IRQ kurup bu iş için bir bayrak atayarak şöyle bir işlem yapmak istiyorum.
Sorun: IRQ olduğunda Raster mı, yoksa timer IRQ'mu olduğunu nasıl anlacağım? Arada timer IRQ tetikleniyor olması raster IRQ'mun stabilitesini bozar mı? (Gecikme) Konu Başlığı: Ynt: Parallax ipucu? Gönderen: blackturk üzerinde Aralık 11, 2013, 20:09:20 ÖS 1--------------------------------------------------------------------
1-------------------------------------------------------------------- 2++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3//////////////////////////////////////////////////////////////////// 4******************************************************************** 4******************************************************************** 1,2,3,4 numaralı satırlar scroll yapmak istediğin alanlar.Ekranı tarama satırı 1 geldiğinde olana ait raster irq çağır.2 ,3,4 içinde aynı şeyler geçerli.örneğin 2 numaralı satır için raster irq olduğunda sola shift yapacaksın.Burda önemli olan raster irq başladığın satırdan bitiş satırına kadar.shift işlemini ve diğer satıra yeni veri koyma işlemini bitirmen lazım.Buna dikkat etmen lazım çünkü zamanlamaları doğru yapmazsan ekran hatalı scroll yaparsın.örneğin bir ekran satırının taraması işlemci 64 cycle süre alır.Ona göre yapabilirisin. Birde grafikleri tile olduğunu söylemişsin.Tile map hazırladın m ? tile 4X4 karakterden mi oluşuyor ? Tile Map kaç'a kaç alan maksiumum çiziyor ?Tile map göre tile'ları belleğe mi yada ekrana mı doğrudan çizdiriyorsun ? Nasıl bir algoritma tasarladın ? .Basic kullarakr karakterlerden oluşan labirent "maze" bir grafik mi ? loop edip kullanmak mı istiyorsun ? Konu Başlığı: Ynt: Parallax ipucu? Gönderen: wizofwor üzerinde Aralık 11, 2013, 20:47:53 ÖS Hazırladığım map aşağıda.
işin içine timer IRQ'da sokmayı düşündüğüm için raster ların zamanlamasında problem yaşamaktan kokuyordum. 64 cycle benim için önemli bir ipucu oldu. Mesela yıldızlar 1. bant olacak ve 4 satır yüksekliğindeler. O zaman 1 bant için tüm işlemleri 4 x 8 x 64 = 2048 cycle'da bitirmem gekiyor ve bu süreye eğer timer irq bu aralığa denk gelirse onun harcayacağı süre de dahil. 4x4 tile'lardan oluşuyor. Tile'ları henüz oyuna dahil etmedim. Aşağıdaki resmi charpad'den export ettim. Konu Başlığı: Ynt: Parallax ipucu? Gönderen: blackturk üzerinde Aralık 11, 2013, 21:47:50 ÖS Bir raster satırı 64 cycle süresi yiyor.bir karakter 8 pixel satırdan oluşuyor.8*64 cycle tamamlaman gerekiyor.Bir karakter basıldığında 8*64 cycle süre geciyor.Bad line durmu var. Bu konuyla fazla girmek istemiyorum konu uzuyor.Senin bu konularla ilgili dökümanları okumanı tavsiye ederim.c64 wiki gerekli yazılar ve kaynak kodlar mevcut.
Hazırladığın tile map ilgili olarak Aşağıdaki resimde kutu olarak işaretlediğim alanlarla ilgili yazıcam.kırmızı kutu evet istediğin kaydırabilirsin.sorun yok .2 kutu olan yeşil yuvarlak içine aldığım yerler ön taraftaki beeyaz binalar ve arka fonda gölgeli mavi binalar aynı hızda scroll edemezsin. karakter tabanlı aynı satırda durdukları için yeşil yuvarlak içindekiler sorun yaratır.aracların yolunu istediğin gibi scroll edebilirsin.sorun yok. Birde binalar aynı loop ediyor.yoldaki çukur ve engellerde kendini tekrar ediyor.sorun yok. Binaların arkasındaki mavi fonu karakter olarak değilde sprite kullanırsan daha iyi olur.sebebi ise beyaz binaların arkasında mavi fon binaları istediğin gibi scroll edebilirsin.Burda sprite multiplex tekniğini kullanman lazım. (http://i1082.photobucket.com/albums/j379/sekoseko1/tmap_zps5cc34c02.jpg) Konu Başlığı: Ynt: Parallax ipucu? Gönderen: wizofwor üzerinde Aralık 11, 2013, 22:58:42 ÖS Şu anda bir text scroller üzerinde deneme yapıyorum, onu halledebilirsem bu map'i biraz daha basitleştirip sonsuz döngüde yerleştirmeyi deneyeceğim.
Sprite multiplexer konusuna şimdilik girmek istemiyorum. Onun vakti gelecek. Yeşil işaretlediğin binalar için belediyeden yıkım kararı aldırmayı düşünüyorum :) Onlar traşlanacak. Bir de şu an 274 karater kullanıyorum bunu 256'ya çekmem lazım. |