Amiga Dünyası sayı 18, sayfa 44

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 44

Curs Off: Cls : Paper 0 : Locate 0,0 Centre "Hardwvare sprites Demo "

Do IX#=X Mouse IY#=Y Mouse X#=A#*X1#+B#*IX#+C#*IX1# Y#=A#*Y1#+B#*IY#+C#*IY1# Sprite 1X#+5O.Y#+5O,1 IX1#=IX# IY1#=IY# X1#=IX# Y1#=IY# Wait2 If Mouse Key>0 Then Exit Loop Yukarıdaki programın ilk üç satırını şu şekilde değiştirirseniz, sonuç daha ilginç olur:

A#=0.9499994 B#=-0.6 C#=0.6299989 Gelecek ay, bunun gibi matematiksel hilelerden daha çok bahsedeceğim. Ayrıca bir de sürprizim olacak....

Şimdi komut açıklamalarına devam edelim: KOMUT: Get Sprite palette KULLANILIŞ: Get Sprite palette [m] Bu komut ile Sprite'lar için kullanılan renkler, o anki ekran için de kullanılır, 'm' parametresi ile bu renklerin sadece bir kısmının alınması sağlanır. Örneğin m=%0000000000111111 ile ilk 6 renk bu paletten alınır. Bu arada sprite'ların renkleri renk tablosunun 16 ile 32. kütükleri arasından alınır. Her Sprite'a karşılık düşen renk numaraları şöyledir:

Sprite Renk numarası 0/1 17/18/19 2/3 21/22/23 4/5 25/26/27 6/7 29/30/31 16, 20, 24 ve 28 numaralı renkler saydam kabul edilir. KOMUT: Get Sprite KULLANILIŞ: Get Sprite [e,]x1,y1 to x2,y2 Bu komut ile ekranın herhangi bir bölgesindeki şekli Sprite bankasına alabilirsiniz. Burada 'x1', 'y1', 'x2' ve 'y2' parametreleri, ekran koordinatlarını; 'e' ise ekran numarasını belirler. Eğer

'e' belirtilmemişse, o zaman o an aktif olan ekran kullanılır, 'g'

yine resim numarasıdır. Aşağıdaki örnekte bu komutların ikisi de kullanılmış. Rem ******************************** Rem** AMIGA DÜNYASI ** Rem ** AMOS Demo Program ** Rem ** Modified from ** Rem** the AMOS Manual ** Rem ** By Rem ** Burak Özdemir ** Rem ** AMOS Copyright 1990 Rem ** Mandarin/Jawx ** Rem ******************************** MAKE_OBJECT Flash Off: Get Sprite Palette Curs Off: Cls 0 : Paper 0 Locate 0,0 : Centre "Hardware sprite Demo " Hide Do Wait Vbl X=X Mouse : Y=Y Mouse For SX=0 To 3 Sprite SX+9,SX*32+X,Y,1 Next SX If Mouse Key>0 Then Exit Loop Procedure MAKE_OBJECT Cls 0

Polygon 8,0 To 16,16 To 0,16 To 8.0 Polygon0,16To0,0To4,4To 12.4 To 16.0 To 16.16 To 0.16 Get Sprite 1,0,0 To 16,16 End Proc KOMUT: x Sprite KULLANILIŞ: x Sprite(n) Bu komutla, numarası verilen Sprite'm x eksenine göre hard- ware koordinatını bulabilirsiniz. KOMUT: y Sprite KULLANILIŞ: y Sprite(n) Bu komut da deminki gibidir, ama y koordinatı için geçerlidir. Rem ******************************** Rem ** AMIGA DÜNYASI ** Rem ** AMOS Demo Program ** Rem ** Modified from ** Rem ** the AMOS Manual ** Rem ** B_y ** Rem ** Burak Özdemir ** Rem ** AMOS Copyright 1990 ** Rem ** Mandarin/Jawx ** Rem ******************************** Load"AMOS_DATA:Sprites/Octopus.abk" Get Sprite Palette Curs Off : Cls 0 : Paper 0 Hide Locate 0,0 : Print "X kordinati = "; Locate 0,1 : Print "Y kordinati = "; Do Sprite 9,X Mouse,Y Mouse, 1 Locate 20,0 : Print X Sprite(9);" "; Locate 20,1 : Print Y Sprite(9);" "; Wait Vbl If Mouse Key>0 Then Exit Loop Son olarak da, bir AMAL programı veriyorum. Bu konudan daha pek bahsetmedik, ama yine de kolay anlaşılır bir örnek. Rem ********************************

Rem** AMIGA DÜNYASI ** Rem ** AMOS Demo Program ** Rem ** Modified from ** Rem ** the AMOS Manual ** Rem ** By ** Rem ** Burak Özdemir ** Rem** AMOS Copyright 1990 ** Rem ** Mandarin/Jawx ** Rem ******************************** Flash Off : Hide : Curs Off Screen Hide 0 : View MAKE_OBJECT Hide Cls 0 Locate 0,0 : Paper 0 Centre "Patlamayi hareket ettirin" Sprite 9,X Mouse,Y Mouse, 1 Amal 9,"Loop:For R0=l To 16:Let A=R0;Next R0;Jump Loop" Amal On Screen Show Do Sprite 9,X Mouse,Y Mouse, 1 : Wait Vbl If Mouse Key>0 Then Exit Loop Procedure MAKE_OBJECT ForS=l To 15 Cls 0,0,0 To 32,32 Circle 16,16,S*2 Get Sprite S,0,0To 32,32 Next S End Proc

Bu aylık bu kadar. Tekrar görüşmek üzere...

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