C64 Türkiye sayı 7, sayfa 17

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 17

Herkese merhaba. İlk olarak geçen sayıda intro teknikleri olarak başladığımız yeni yazı dizisinin adını “intro efektleri” olarak değiştirdiğimizi belirtelim. İnternette yapacağınız kısa bir araştırma ile yüzlerce intro bulabilir ve bu introlarda birbirinden güzel efektler görebilirsiniz. Bu efektleri yapabilmek için bir yerden başlamanız gerekmektedir. İşte bu nedenle “intro efektleri” bölümü sizin için başlangıç olacaktır. Benim bu sayfalarda vereceğim efekt örnekleri sadece fikir amaçlıdır ve daha güzel ve orijinal efektleri sizler de yapabilirsiniz. Aslında bu giriş yazısını geçen sayıda yazmam gerekiyordu. Neyse lafı uzatmadan bu sayıdaki efektten kısaca bahsedeyim. Efektimiz “bouncing balls” denilen zıplayan toplar efektidir. Efekte ait ekran görüntüsünü program listesinin sonunda görebilirsiniz. *=$0801 .word nextline .word 2004 ; 2004 .byte $9e ; SYS .text "2061" ; 2061 .byte 0 ; komutu nextline .word 0 start sei ;İnterruptları engelle jsr $e544 ;Ekranı sil.(geri dönüşte X registerinde 1 vardır) dex ;X registerini 1 azalt. (X registeri 0 olur) stx $d020 ;Ekran dış rengi siyah stx $d021 ;Ekran iç rengi siyah loop0 lda #(sdata/64) ;sprite datasının yerini sta $07f8,x ;sprite pointerlerine yaz lda koor,x ;0-3 arası sprite’ların koordinat değerlerini sta $d000,x ;VIC’teki ilgili koordinat registerlerine kopyala lda koor+8,x ;4-7 arası sprite’ların koordinat değerlerini sta $d000+8,x ;VIC’teki ilgili koordinat registerlerine kopyala lda #$0f ;#$0f (açık gri) değerini sta $d027,x ;sprite renk registerlerine yaz inx ;X registerini 1 arttır. cpx #$08 ;8 oldu mu ? bne loop0 ;olmadıysa işlemleri tekrarla lda #$ff ;Bütün sprite'ları sta $d015 ;göster ve sta $d01c ;multicolor yap ldx #$0b ;koyu gri renk kodu ldy #$0c ;gri renk kodu stx $d025 ;multicolor1 renk registeri sty $d026 ;multicolor2 renk registeri lda #<irq ;interrupt rutinimizin başlangıç adresi LO byte’ı ldx #>irq ;interrupt rutinimizin başlangıç adresi HI byte’ı sta $0314 ;interrupt vektörü LO byte’ına yaz stx $0315 ;interrupt vektörü HI byte’ına yaz ldx #$01 ;raster line interrupt'ı yapacağımızı stx $d01a ;VIC’e bildiriyoruz ldy #$80 ;256’dan büyük X koordinatına sahip sprite için sty $d010 ;EXB’yi aktif hale getiriyoruz cli ;interrupt'ları serbest bırakıyoruz jmp * ;sonsuz döngüye gir. irq inc $d019 ;bir sonraki interrupt'a izin ver wait lda $d012 ;raster line adresini oku bne wait ;sıfır değilse bekle. Sıfırsa devam et lda delay ;Gecikme sayacını oku bne exit ;sıfır değilse çık. lda #$0a ;sıfır olduysa başlangıç değerini

Klavyeyle gezinmek için ← ve → tuşları.