Amiga Dünyası sayı 18, sayfa 43

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 43

Merhaba arkadaşlar. Bu ayki yazımızda AMOS'un "Sprite" komutlarını göreceğiz. Ama bundan önce Sprite'lar hakkında genel bazı bilgiler vereceğim. Amiga'nın en önemli yeteneklerinden biri de Sprite'lardır. AMOS hem hardware Sprite'ları hem de software Sprite'larını programlarınızda kolayca kullanabilmenizi sağlar. İlk olarak bunların ne olduğuna bakalım:

Hardware Sprite'ları, ekranda birbirlerinden bağımsız olarak gösterilebilen görüntülerdir. Bunlara örnek olarak Mouse'u verebiliriz.

Bunlar hem üzerlerinden geçtikleri yerleri bozmazlar, hem de son derece hızlı hareket ederler. Ayrıca hafızada çok az yer tutarlar. Bu yüzden oyun programlarının yazılımında ilk sırayı alırlar.

Her Sprite, 16 pixel genişliğindedir. Yüksekliği ise 255 pixel'e kadar çıkabilir. Amiga'nın hardware'i en fazla sekiz tane üç renkli veya dört tane onbeş renkli Sprite kullanmanıza izin verir. Sıfır numaralı renk her zaman için saydamdır. İlk bakışta bu miktar pek o kadar iyi değilmiş gibi gözükebilir, ama AMOS'un programlama teknikleriyle bu miktar fazlaca yükseltilebilir. Şimdi teker teker Sprite komutlarını incelemeye başlayalım.

KOMUT: Sprite KULLANILIŞ: Sprite n,x,y,g Bu komut, seçilen Sprite'ı ekranda göstermek için kullanılır. Burada 'n' Sprite numarasıdır. 'x' ve 'y' ise Sprite'ın gözükeceği koordinatlardır. Bu koordinatlar normal ekran koordinatları olmayıp, özel hardware koordinatlarıdır. Bunları normal ekran koordinatlarına çevirmeyi daha sonra göreceğiz. Burada karşımıza yeni bir kavram çıkıyor. O da Sprite'ın üzerinde 'Hot Spot' adıyla alınan bir nokta. Bu noktanın yeri, verilen koordinatlara göre belirlenir ve Sprite oraya yerleştirilir. Burası sanki Sprite'ları tuttuğu-

BURAK ÖZDEMİR muz yerdir. Genelde Sprite'ın sol üst köşesinde bulunur. Fakat bunun da yerini değiştirmek mümkündür. Neyse yakında bunu daha dikkatli inceleyeceğiz. Şimdi gelelim 'g' parametresine... Bu parametre, sprite bilgisinin alınacağı şekil numarasını belirler. Şekiller hafıza bankasının Sprite'lar için ayrılmış özel bir bölgesinde saklanır. Yukarıdaki parametrelerden x, y ve g yazılmayabilir; fakat yine de uygun yerlere virgül koymanız gereklidir.

Aşağıda bu komuta basit bir örnek var. Burada diskten hafızaya alınan bir Sprite'ı, Mouse ile hareket ettiriyorsunuz. Mouse'un herhangi bir tuşuna basınca da program bitiyor.

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 ******************************** Load"AMOS_DATA:Sprites/Octopus.abk" Get Sprite Palette Curs Off: Cls : Paper 0 Locate 0,0 : Centre "Hardware sprites Demo " Do For S=0 To 5 Sprite S+9,X Mouse+S*32,Y Mouse+S*32,l NextS Wait Vbl If Mouse Key>0 Then Exit Loop Şimdi de deminki programın biraz daha değişiğini veriyorum. Burada matematiksel bir yöntemle Sprite'ın hareketini değiştir- dim. Bakalım nasıl bulacaksınız.

Rem ******************************** Rem** AMIGA DÜNYASI ** Rem ** AMOS Demo Program ** Rem ** Written By ** Rem ** Burak Özdemir ** Rem** AMOS Copyright 1990 ** Rem ** Mandarin/Jawx ** Rem ******************************** A#=-0.9599999 B#=1.6 C#=-0.4 X1#=X Mouse Y1#=Y Mouse IX1#=X1 IY1#=Y1 Load "amos__data:Sprites/Octopus.abk" Get Sprite Palette

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