NightNetwork - yazılım, yazın, verim vs.

3.4. Hareketli Barlar

Şimdi küçük bir değişiklik ile efektimizin etkileyiciliğini 8 kat artıralım

      renkleri_degistir:
      jsr renkleri_temizle

      ldx bar_pozisyonu_okunacak_index
      ldy sin_table+$00,x
      jsr bar_ciz

      ldy sin_table+$04,x
      jsr bar_ciz

      ldy sin_table+$08,x
      jsr bar_ciz

      ldy sin_table+$0c,x
      jsr bar_ciz

      ldy sin_table+$10,x
      jsr bar_ciz

      ldy sin_table+$14,x
      jsr bar_ciz

      ldy sin_table+$18,x
      jsr bar_ciz

      ldy sin_table+$1c,x
      jsr bar_ciz


      inc bar_pozisyonu_okunacak_index
      rts
    

Artık burada tek bir bar çizmek yerine birbirini 4 sayfa arkadan takip eden 8 bar çiziyoruz. Bar çizmeyi alt rutin yapmanın iyi bir fikir olduğunu söylemiştim.

ayrıca en altta sinüs tablosunu iki kere tekrar etmemiz gerekiyor.

      !align 255,0
      sin_table:
      !src "sin_table_00.a64"
      !src "sin_table_00.a64"
    

bunu yapmaz isek ne olacağını düşünün. bar_pozisyonu_okunacak_index değişkeninin değerinin $e4 olduğu anı düşünün (elbet bir an gelecek olacak çünkü sürekli birer birer artırıyoruz kendisini) Bu anda

      ldy sin_table+$1c,x
    

komutu 256 baytlık sinüs tablosundan taşıp bir sonraki alakasız bir baytı okur. Bunu istemediğimiz için sinüs tablosunu devam ettiriyoruz. Elimizdeki tablo öyle ayarlandı ki sonundan başına geçiş yumuşak ve devamlı bir geçiş.

Sonuç heyecan verici değil mi?

Eğlenmeye devam... Renkleri temizlemek yerine raster2 programındaki güzel renk tablomuzu arka plan olarak kullanmaya ne dersiniz. Bunun için bütün yapmamız gereken renkleri_temizle rutini yerine arka_plan_kopyala rutini kullanmak tıpkı Hareketlı raster 2 programındaki gibi.

      renkleri_degistir:
      jsr arka_plan_kopyala

      ...
      ...
      ;; ------------------------------------------------
      arka_plan_kopyala:
      ldx #$00
      apk_dongu1:
      lda arka_plan,x
      sta renk_tablo,x
      inx
      cpx #$60
      bne apk_dongu1
      rts
    

Bu kadar basit... Şu an itibariyle old school efektler aleminde gayet geçerli sayılabilecek süper görünen bir raster efekti elde etmiş bulunuyorsunuz. Bu rutinleri kendi kendinize kurcalamayı deneyerek daha kimbilir neler yapabilirsiniz.

Kursun bu bölümünü bitirmeden önce son olarak çok önemli bir konu var. İsterseniz bir tenefüs verip öyle gelin...

NightNetwork - 2009