1 Ocak 1991 Tarihli Commodore Gazetesi Sayfa 23

1 Ocak 1991 tarihli Commodore Gazetesi Sayfa 23
Metin içeriği (otomatik olarak oluşturulmuştur)

X koordinatları. Bunları sırası geldikçe, doğrudan doğ- ruya sprite'ların x koordinatlarına koyarak yıldızları de- ğişik yerlerde gibi gösteriyoruz. Fakat bu arada düzelt- memiz gereken bir şey kalıyor. Biliyorsunuz $DO10 ad- resinde x koordinatlarının 9. bitleri yer alıyor ve ancak bu biti kullanarak ekranın tamamında sprite gösterebili- yoruz. Bu yüzden her x koordinatı için bir de $DO10 de- ğeri ayarlamamız gerekiyor. Bu değerleri de $CIGA ad- resinden okuyoruz. Lda — $C1ZA,X Sta $DO27 Yıldızların üç boyutlu olarak kaydıklarını söylemiştim. Bu efekti yaratmanın en güzel ve kolay yolu arkada ol- ması gereken yıldızların rengini öndekilerden daha koyu yapmaktır. Bunun için de her yıldızın rengi $C12A ad- resinde bir tablo olarak saklanır. Lda — $COAA,X Ade — $COBA,X Sta $COAA,X $COFEFA adresinde her yıldızın x koordinatının artma miktarı, daha açık bir ifadeyle hızı saklanıyor. Bu saye- de üç boyut efektini, arkada olması gereken yıldızları da- ha yavaş kaydırarak pekiştiriyoruz. Lda — $CIĞSA,X Ade — # $00 And — # $01 Sta $CISA,X Şimdi CI6A'daki değerlere 0 eklemek de nereden çık- tı? Eğer Adc komutuna bakarsanız, eklediği her sayıya bir de elde flag'ini eklediğini görürsünüz. Yani yıldızar x—255'den daha büyük bir değer alınca elde bayrağı | olur ve bu sayede CİĞA,X'in değeri | artırılır. Bu adres- lerin değerlerini O ve |1 ile kısıtlarsak (and4$ $01) yıldız- lar 0-512 arasında bir x koordinatı alabilirler. İny İny Iny Bir sonraki yıldız, bunun üç raster satırı aşağısında ol- sun istediğimiz için, Y değeri üç kere artırılıyor. (daha değişik bir sayıda satır beklemek isterseniz, sprite data- larını değiştirin ve buradaki Iny sayısıyla oynayın. Sa- kın üç satırdan aşağı inmeyin, bu derece basit bir rutinle daha sık yıldız sürüsü elde edemezsiniz.) Inx Cpx — #$3E Bec Bekle Inc $DO19 Gösterilen yıldız sayısını bir artırıyoruz ve bu değer 62'den küçükse, bir yıldız daha gösteriyoruz. Eğer 62. yıldız da gösterildiyse, interrupt'tan çıkmaya hazırlanı- yoruz. Şimdi de rutinin size söylemediğim sürpriz kısmına gel- dik. Eğer hâlâ bu yazıyı okuyorsanız bu özellikten ya- rarlanabilecek kişiler arasında yer alacaksınız. Ldx —#S$7D Ldy # $69 Lda — $CO4A Beg Atla Ldy # SAF9 Ldx $FD Atla Si $CO79 Sty $C082 Evet işte sürpriz rutinimiz burada. Eğer $CO4A değe- rini değiştirirseniz sürprizimizle karşılaştırsınız. Artık bu- nun ne olduğunu ve nasıl yapıldığını anlamayı size bıra- kıyorum. Jmp — $EASİI Ve işte o sihirli komutla interrupt'ı bitiriyoruz. Eğer bu rutinde yıldız hız ve renklerini değiştirmek is- terseniz, yerlerini belirten şu basit listeye başvurun. $COAA-$COF9: Yıldız koordinatları. $COBA-$CI29: Yıldız hızları. $CI2A-$CI169: Yıldız renkleri $CIGA-$CIA9: Yıldız x koordinatlarının 9. bitleri. Eh bu aylık bu kadarı yeterli olur sanırım. Gelecek ay görüşene kadar hepiniz hoşçakalın.

Bu sayıdan diğer sayfalar: