25.10.2014 Views

Amiga Dunyasi - Sayi 14 (Temmuz 1991).pdf - Retro Dergi

Amiga Dunyasi - Sayi 14 (Temmuz 1991).pdf - Retro Dergi

Amiga Dunyasi - Sayi 14 (Temmuz 1991).pdf - Retro Dergi

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

çarpışan objenin hareketi kesilir.<br />

Her iki yönergede de obje-no belirtilmemişse, işlem o an aktif<br />

çıktı penceresindeki tüm objeler için yapılır.<br />

OBJECT.VX<br />

OBJECT.VY KOMUTLARI:<br />

Kullanım Şekli:<br />

KOMUT FORM ATI - FONKSİYON FORM ATI -<br />

OBJECT.VX obje-noM DEĞER=OBJECT.VX(obje-no)<br />

OBJECT.VY obje-noM DEĞER=OBJECT.VY (obje-no)<br />

Bu iki yönerge, objenin x ve y eksenlerinde hareket hızını tanımlamak<br />

için kullanılır. OBJECT.VX ile obje-no ile belirtilen<br />

objenin yatay eksendeki; OBJECT.VY ile dikey eksendeki hareket<br />

hızı tanımlanır, hız değeri pozitif olduğunda hareket yukarıdan<br />

aşağıya ve sola doğru olur. Ters istikametlerde hareket için<br />

hız değeri negatif sayı ile verilmelidir.<br />

hız, saniyede geçilecek pixel sayısı olarak verilir. Objenin hareket<br />

başlangıcı, OBJECT.START yönergesi ile belirtilen yerdir.<br />

Fonksiyon formatında kullanıldığında, yönergeler obje-no ile<br />

belirtilen objenin x ve y yönlerinde o anki hız değerlerini verirler.<br />

Bu değerleri zaman zaman değerleri değiştirmek veya hesaplamalar<br />

için kullanabilirsiniz.<br />

OBJECT.X<br />

OBJECT.Y KOMUTLARI:<br />

Kullanım Şekli:<br />

KOMUT FORMATI -<br />

FONKSİYON FORMATI-<br />

OBJECT.X obje-no,x-koordinatı DEĞER=OBJECT.X(obje-no)<br />

OBJECT.Y obje-no,y-koordinatı DEĞER= OBJECT.Y(obje-no)<br />

Bu yönergeler objenin çıktı penceresindeki yerleşimini tanımlamak<br />

ya da obje hareketinin başlangıç ve bitiş noktalarını tanımlamak<br />

için kullanılır. Objenin x-koordinatı ile y-koordinatı pencerenin<br />

sol üst köşesinden hesaplanır ve -32768 ile 32767 sınırları<br />

arasında bir sayı olarak girilir. Objenin OBJECT.ON komutunu<br />

görene kadar görüntülenmeyeceğini hatırlayın.<br />

Fonksiyon olarak kullanıldığında objenin yerleşimini verirler. Bu<br />

bilgilerle obje ile yapmak istediklerinizi gerçekleştirebilirsiniz.<br />

Evet... OBJECT yönergelerimiz burada bitti. Şimdi söz verdiğimiz<br />

gibi, tüm bu komut ve fonksiyonlarla yapılmış iki örnek<br />

verelim. İlk örneğimizin adı Yo-Yo. Yazın ve deneyin:<br />

WINDOW 1,"Yo-Yo", (0,0)-(631,184),20<br />

DIM alien$(1<strong>14</strong>)<br />

RESTORE AlienShapeData<br />

FOR n=l TO 1<strong>14</strong><br />

READ a:alien$=alien$+CHR$(a)<br />

NEXT<br />

OBJECTSHAPE l,alien$<br />

OBJECT.X 1,300:OBJECT.Y 1,10<br />

OBJECT.ON :OBJECT.START<br />

WHILE MOUSE(0)=0<br />

OBJECT. AY 1,10<br />

WHILE OBJECT.VY( 1 )< 100:WEND<br />

OBJ ECT. AY 1,-10<br />

WHILE OBJECT.VY( 1 )>-100:WEND<br />

WEND<br />

OBJECTSTOP:OBJECTCLOSE<br />

AlienShapeData:<br />

DATA 0, 0, 0, 0, 0, 0, 0, 0<br />

DATA 0, 0, 0, 2, 0, 0, 0, 26<br />

DATA 0, 0, 0, 11, 0,24, 0, 3<br />

DATA 0, 0, 0,127,128, 0, 1,255<br />

DATA 224, 0, 7,255,248, 0,31,255<br />

DATA 254, 0,248,225,199,192,248,225<br />

DATA 199,192,255,255,255,192, 12,127<br />

DATA <strong>14</strong>0, 0, 12,127,<strong>14</strong>0, 0,252, 0<br />

DATA 15,192.252, 0, 15,192, 0, 0<br />

DATA 0, 0, 0, 0, 0, 0, 0, 0<br />

DATA 0, 0, 0, 0, 0, 0, 7,30<br />

DATA 56, 0, 7, 30, 56, 0, 0, 0<br />

DATA 0, 0, 0,127,128, 0, 0,127<br />

DATA 128, 0, 0, 0, 0, 0, 0, 0<br />

DATA 0, 0<br />

Programı çalıştırdığınızda, DATA yönergeleri ile basit bir obje<br />

yaratılıyor ve yaratık ekranda yukarıdan aşağıya doğru saniyede<br />

10 pixel olmak üzere hareket etmeye başlıyor. Programı durdurmak<br />

için sol mouse »usunu kliklemeniz yeterli.<br />

ikinci örneğimiz, obje çarpışmaları ile ilgili. Program, 5 obje<br />

yaratıyor ve siz bunlardan birini mouse yardımıyla ekranda oynatabiliyorsunuz.<br />

Bu oynatma esnasında ortaya çıkan çarpışmalar,<br />

ekranın üst satırındaki mesajla bildiriliyor, programı inceleyin:<br />

SCREEN 1,320,200,3,1<br />

WINDOW 2,"Obje Çarpışma Demosu",(0,0)-(311,I85),20,1<br />

WIDTH 40<br />

PALETTE 0,0,.45,0: PALETTE 1,.9,.9,.9<br />

PALETTE 2,0,0,0:PALETTE 3,.9,.48,.I5<br />

ON BREAK GOSUB Cikis:BREAK ON<br />

ON COLLISION GOSUB Carpisma:COLLISION ON<br />

DIM alien$( 1<strong>14</strong>):RESTORE ObjeSekilData<br />

FOR n=l TO 1<strong>14</strong><br />

READ a:alien$=alien$+CHR$(a)<br />

NEXT n<br />

OBJECTSHAPE l,alien$<br />

OBJECTSHAPE 2,1 :OBJECT.SHAPE 3,1<br />

OBJECT.SH APE 4,1 :OBJECT.SHAPE 5,1<br />

OBJECT.PLANES 2,5:OBJECTPLANES 3,6<br />

OBJECT.PLANES 4,7:OBJECT.PLANES 5,6,1<br />

OBJECT.HIT 1,2,5 'diğer yaratık ve kenarlar ile çarpışma.<br />

OBJECTHIT 2,4,2 'obje hareket ederek diğerleri ile çarpışır.<br />

OBJECT.HIT 3,4,2<br />

OBJECT.HIT 4,4,2<br />

OBJECT.HIT 5,4,2<br />

FOR n=2 TO 5<br />

OBJECT.X n.n*50-40:OBJECT.Y n,n* 12+20<br />

NEXT n<br />

OBJECT.ON l,2,3,4,5:OBJECT.START:LOCATE 19,5<br />

PRINT "«Cikis için mouse'u klikleyin»"<br />

WHILE MOUSE(0)=0 'ana döngü'<br />

OBJECT.X l,MOUSE(l)-l2:OBJECTY l,MOUSE(2)-l 1<br />

WEND<br />

WHILE MOUSE(0)0:WEND<br />

Cikis:<br />

OBJECT.CLOSE:WINDOW CLOSE 2<br />

SCREEN CLOSE 1:END<br />

Carpisma:<br />

objectID=COLLISION(0)<br />

collisionID=COLLISION(objectID)<br />

LOCATE 1,1 :PRINT SPACE$(2()):PRINT SPACE$(20)<br />

LOCATE LLPRINT "obje #";objectID<br />

IF collisionID=-1 THEN PRINT "ust kenara carpti."<br />

IF collisionID=-2 THEN PRINT "sol kenara carpti."<br />

IF collisionID=-3 THEN PRINT "alt kenara carpti."<br />

IF collisionID=-4 THEN PRINT "sag kenara carpti."<br />

IF collisionID=-5 THEN PRINT "obje #";coliisionID<br />

OBJECT.START:COLLISION ON<br />

RETURN<br />

ObjeSekilData:<br />

DATA 0, 0, 0, 0, 0, 0, 0, 0<br />

DATA 0, 0, 0, 2, 0, 0, 0, 26<br />

DATA 0, 0, 0, 11, 0,24, 0, 3<br />

DATA 0, 0, 0,127,128, 0, 1,255<br />

DATA 224, 0, 7,255,248, 0,31,255<br />

DATA 254, 0,248,225,199,192,248,225<br />

DATA 199,192,255,255,255,192, 12,127<br />

DATA <strong>14</strong>0, 0, 12,127,<strong>14</strong>0, 0,252, 0<br />

DATA 15,192,252, 0, 15,192, 0, 0<br />

DATA 0, 0, 0, 0, 0, 0, 0, 0<br />

DATA 0, 0, 0, 0, 0, 0, 7, 30<br />

DATA 56, 0, 7, 30, 56, 0, 0, 0<br />

DATA 0, 0, 0,127,128, 0, 0,127<br />

DATA 128, 0, 0, 0, 0, 0, 0, 0<br />

DATA 0, 0<br />

Bu ayki Basic tanıtımını OBJECT komutlarına verdiğimiz örneklerle<br />

tamamladık. Gelecek ay bu köşede buluşmak dileğiyle,<br />

hoşçakalın...<br />

AMIGA DÜNYASİ 45

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!