Bu sayfadaki yazılar
Sayfanın metni
Sayfa 63
Atari 800 XL/XE - Bölüm 2
lda OyuncuXx sta $d000 ; Oyuncu 0 X pozisyonu
olustur İsr OyuncuyuOlustur
;fuzeleri olustur FuzeleriOlustur
;kesme rutini ayarla ldy #<Rutin ldx #>Rutin lda #$07 jsr $e45c ; SETVBV İmp *
lda Fuze2X cmp #$e0 oyuncu fuze.a bne Devam2 lda #$48 sta Fuze2X BASLANGIC ADRESI - $0600 Devam2 inc Fuze3X !to "oyuncu fuze.xex",plain lda Fuze3X cmp #$e0 * — BASLANGIC ADRESI-6 bne Devam3 BASLANGIC ADRESI, BITIS ADRESI lda #$48 sta Fuze3X * — BASLANGIC ADRESI Devam3 inc Fuze4X ;yarat#klar#n bellek adreslerini belirle lda Fuze4Xx lda $6a cmp #$e0 sec bne Devamâ sbc #$08 lda #$48 sta $6a sta Fuze4X sta $d407 ; PMBASE HI Fuzelx sta YaratikBellegitl sta $d004 ; Fuze 0 X pozisyonu lda #$00 lda Fuze2Xx sta YaratikBellegi sta $d005 ; Fuze 1 X pozisyonu lda Fuze3X ;yarat#k ve fuzeleri ac sta $d006 ; Fuze 2 X pozisyonu lda #$03 lda Fuze4x sta $d0ld ; GRACTL sta $d007 ; Fuze 3 X pozisyonu
; grafik ekrani ac RETURN
ldy #$1f yaratik bellegini temizle sty ; DMACTL YaratikBelleginiTemizle lda YaratikBellegi ve fuze rengi sta, 9 ida i lda ; sta a lda #$99 ; Oyuncu 1 ve ele sta $02cl ; Fuze 1 rengi ade #$08 lda #$cc ; Oyuncu 2 ve sta endOfBlock sta $02c2 ; Fuze 2 rengi ldy #$00 lda #$ee ; Oyuncu 3 ve lda #$00 sta $02c3 ; Fuze 3 rengi Dongul sta ($f9),y in ;tüm yaratik bellegini temizle bne Dongul İsr YaratikBelleginiTemizle inc $fa ldx $fa ;oyuncunun adresini belirle cpx : endOfBlock - *-1 yda bne Dongul sta rts sta lda ;oyuncuyu olustur ele OyuncuyuOlustur adc #$03 ldx #$00 sta $f8 ldy Oyuncuy ele Dongu3 I1da HaritaBasil,x ade #$01 sta sta $f6 iny inx
x pozisyonu
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 62
Atari 800 XL/XE - Bölüm 2
sta $f8 BASLANGIC ADRESI - $0600 clc !to "oyuncu hareketi.xex",plain adc #$08 sta endOfBlock * — BASLANGIC ADRESI-6 ldy #$00 $££f£f, BASLANGIC ADRESI, BITIS ADRESI lda #$00 Dongul sta * — BASLANGIC ADRESI iny ;yarat#klar#n bellek adreslerini belirle bne Dongul lda $6a inc $£8 sec ldx $£8 sbec #$08 epx #ŞEf endOfBlock - *-I1 sta $6a bne Dongul sta $d407 ; PMBASE HI rts sta YaratikBellegitl lda #$00 ;oyuncunun bulundugu alani temizle
sta YaratikBellegi
;yaratık ve füzeleri aç
lda #$03 sta $d0ld ; GRACTL ;grafik ekrani ac ldy #$1f sty $022f ; DMACTL rengi lda #$aa sta $02c0 ; Oyuncu 0 rengi ;tüm yaratik bellegini temizle İsr YaratikBelleginiTemizle
adresini belirle lda YaratikBellegi sta $f5 lda YaratikBellegitl ele adc #$04 sta $f6
;kesme rutini ayarla ldy #<Rutin ldx #>Rutin lda #$07 jsr $e45c ; SETVBV jmp *
şana rutin Rütin temizle jsr OyuncuyuSil
;oyuncuyu yeni y koordinatinda olustur
jsr OyuncuyuOlustur şeski y pozisyonunu kaydet lda sta OyuncuYEski ;oyuncuyu yeni x koordinatina tasi lda OyuncuXx sta $d000 ; ;sinus tablosuna gore oyuncuya ;dairesel hareket yapt#r ldy SinusPozisyonu lda SinusTablosut64,y ele adc #$28 sta OyuncuXx lda SinusTablosu,y ele ade #$20 sta OyuncuYy ;sinus tablosu uzerinde ilerle ine SinusPozisyonu jmp $e462 ; RETURN
#2kb'lik yaratik bellegini temizle YaratikBelleginiTemizle lda YaratikBellegi sta $İ7 lda YaratikBellegitl
Oyuncu 0 X pozisyonu
OyuncuyuSil ldy OyuncuYEski lda #$00 Dongu2 sta ($£5),y iny
cpy #HaritaSonu-HaritaBasi
bne Dongu2 rts
olustur OyuncuyuOlustur ldx #$00 ldy Oyuncuy
Dongu3 HaritaBasi,x
sta ($£5),y iny inx
cpx #HaritaSonu-HaritaBasi
bne Dongu3
rts HaritaBasi !byte !byte !byte !byte !byte !byte !byte !byte !byte !byte !byte HaritaSonu - * OyuncuX !byte OyuncuYy !byte OyuncuYEski !byte SinusPozisyonu !byte YaratikBellegi !byte SinusTablosu !byte
!byte
BITIS ADRESI -— * $02e0,
$02e1,
500000000 $10000001 #11000011 $01100110 $00111100 $00111100 $01100110 $11000011 $10000001 500000000
©2900
,0
sinus tablosu| sinus tablosu|
BASLANGIC ADRESI
Bu örnekte henüz öğrenmediğimiz bazı kısımlar geçiyor. Bu kısımlara takılmadan yaratıklarla ilgili öğrendiğimiz bölümleri incelemenizi tavsiye ediyorum.
Füze Atan Oyuncu Örneği
Aşağıda ateş eden bir uzay gemisi örneği göreceğiz. Kullanılacak yaratıklar Oyuncu 0, Füze 0, Füze 1, Füze 2 ve Füze 3.