Kod:
#!/usr/bin env yabasic
# Yabasic sürüm 2.78.0
# Yazar : K110
# Dosya : Nemo.yab
# Olay : Akvaryum Animasyonu
# Lisans: Artistic
# Önsöz : Tüm, bu proje çalışmalarım esnasında beni destekleyen ve bana anlayış
# gösteren, aileme, kedimize, köpeğimize, teşekkürlerimi sunarım.
// Akvaryum ---------------------------------------------------------------------
open window 960,600
backcolor 170,160,250
clear window
// Akvaryum zemini --------------------------------------------------------------
color 120,80,0
fill rectangle 0,530,960,600
for x = 0 to 960 step 5+ran(10)
fill circle x,530,ran(5)
next x
color 70,70,70
for x = 10 to 950 step 20+ran(20)
fill circle x,540,5+ran(5)
next x
color 130,90,0
fill rectangle 0,540,960,600
for x = 0 to 960 step 5+ran(12)
fill circle x,540,ran(6)
next x
color 90,90,90
for x = 10 to 950 step 30+ran(20)
fill circle x,555,6+ran(5)
next x
color 140,100,0
fill rectangle 0,555,960,600
for x = 0 to 960 step 5+ran(15)
fill circle x,555,ran(7)
next x
color 100,100,100
for x = 10 to 950 step 50+ran(30)
fill circle x,580,10+ran(10)
next x
color 110,70,0
fill rectangle 0,570,960,600
for x = 0 to 960 step 10+ran(20)
fill circle x,570,ran(8)
next x
color 100,60,0
for x = 0 to 960 step 20+ran(10)
fill circle x,580+ran15,ran(8)
next x
// Değişkenler ------------------- Değişkenler -------------------- Değişkenler
Oynat=0
y=0
x=100
my=0
mx=0
c=0
d=0
yy=700
xx=0
cx=0
cy=0
ny=840
n=0
oran=0.5
buran=0.5
suran=0.5
neren=0.5
kopuk1=520
// Ana Program ****************** Ana Program ********************** Ana Program
while(Oynat <> -100)
Nimik()
Nemo()
Nemissa()
Nimita()
Kopuk()
sleep 0.05
clear fill rectangle 0,0,960,525
wend
// Nemo -------------- Nemo ---------------- Nemo ------------------------ Nemo
Sub Nemo()
Son=ran(300)
Don=ran(50)
goto Nemo1
Label Ara2
x=c
y=d
Son=ran(300)
Don=ran(50)
goto Nemo1
Label Nemo1
if x > 500+Son then
goto Ara1
endif
if y > 200+Don then
oran = -0.5
elsif y < -50
oran = 0.5
endif
y=y+oran
x=x+2
color 250,250,0
fill triangle x+30,y+90, x+50,y+70, x+90,y+110
fill triangle x+30,y+110, x+50,y+130, x+90,y+90
fill triangle x+12,y+100, x+30,y+100, x+0,y+65
fill triangle x+12,y+100, x+30,y+100, x+0,y+135
color 210,210,0
fill triangle x+12,y+100, x+30,y+100, x+12,y+83
fill triangle x+12,y+100, x+30,y+100, x+12,y+117
color 25,25,0
fill triangle x+40,y+82, x+40,y+118, x+18,y+100
fill circle x+40,y+100,15
color 230,230,0
fill circle x+50,y+100,20
color 25,25,0
fill circle x+60,y+100,25
color 50,50,0
fill circle x+50,y+100,18
color 230,230,0
fill circle x+70,y+100,25
color 250,250,0
fill circle x+60,y+100,18
color 25,25,0
fill circle x+80,y+100,20
color 50,50,0
fill circle x+70,y+100,15
color 230,230,0
fill circle x+90,y+100,15
color 250,250,0
fill circle x+85,y+100,10
color 170,160,250
fill triangle x+97,y+90, x+105,y+100, x+101,y+90
fill triangle x+97,y+110, x+105,y+100, x+101,y+110
color 0,0,0
fill circle x+90,y+95,3
line x+95,y+105, x+100,y+105
color 200,200,0
fill triangle x+62,y+99, x+45,y+85, x+50,y+99
fill triangle x+62,y+101, x+45,y+115, x+50,y+101
c=x
d=y
Return
Label Ara1
mx=c
my=d
Son=ran(300)
Don=ran(50)
x=800
goto Nemo2
Label Nemo2
if mx < 6+Son then
goto Ara2
endif
if my > 200+Don then
oran = -0.5
elsif my < -50
oran = 0.5
endif
my=my+oran
mx=mx-2
color 250,250,0
fill triangle mx+75,my+90, mx+55,my+70, mx+5,my+110
fill triangle mx+75,my+110, mx+55,my+130, mx+5,my+90
fill triangle mx+93,my+100, mx+75,my+100, mx+105,my+65
fill triangle mx+93,my+100, mx+75,my+100, mx+105,my+135
color 210,210,0
fill triangle mx+93,my+100, mx+75,my+100, mx+93,my+83
fill triangle mx+93,my+100, mx+75,my+100, mx+93,my+117
color 25,25,0
fill triangle mx+65,my+82, mx+65,my+118, mx+87,my+100
fill circle mx+65,my+100,15
color 230,230,0
fill circle mx+55,my+100,20
color 25,25,0
fill circle mx+45,my+100,25
color 50,50,0
fill circle mx+55,my+100,18
color 230,230,0
fill circle mx+35,my+100,25
color 250,250,0
fill circle mx+45,my+100,18
color 25,25,0
fill circle mx+25,my+100,20
color 50,50,0
fill circle mx+35,my+100,15
color 230,230,0
fill circle mx+15,my+100,15
color 250,250,0
fill circle mx+20,my+100,10
color 170,160,250
fill triangle mx+6,my+90, mx+0,my+100, mx+2,my+90
fill triangle mx+6,my+110, mx+0,my+100, mx+2,my+110
color 0,0,0
fill circle mx+15,my+95,3
line mx+10,my+105, mx+5,my+105
color 200,200,0
fill triangle mx+43,my+99, mx+60,my+85, mx+55,my+99
fill triangle mx+43,my+101, mx+60,my+115, mx+55,my+101
c=mx
d=my
Return
End Sub
// Nemissa --------------- Nemissa --------------- Nemissa ------------- Nemissa
Sub Nemissa()
Sonra=ran(300)
Daha=ran(50)
goto Nemissa1
Label Tekrar2
xx=cx
yy=cy
Sonra=ran(300)
Daha=ran(50)
goto Nemissa1
Label Nemissa1
if yy<6+Sonra then
goto Tekrar1
endif
if xx > 100+Daha then
buran = -0.5
elsif xx < -100
buran = 0.5
endif
yy=yy-2
xx=xx+buran
color 250,250,0
fill triangle yy+75,xx+190, yy+55,xx+170, yy+5,xx+210
fill triangle yy+75,xx+210, yy+55,xx+230, yy+5,xx+190
fill triangle yy+93,xx+200, yy+75,xx+200, yy+105,xx+165
fill triangle yy+93,xx+200, yy+75,xx+200, yy+105,xx+235
color 210,210,0
fill triangle yy+93,xx+200, yy+75,xx+200, yy+93,xx+183
fill triangle yy+93,xx+200, yy+75,xx+200, yy+93,xx+217
color 25,25,0
fill triangle yy+65,xx+182, yy+65,xx+218, yy+87,xx+200
fill circle yy+65,xx+200,15
color 230,230,0
fill circle yy+55,xx+200,20
color 25,25,0
fill circle yy+45,xx+200,25
color 50,50,0
fill circle yy+55,xx+200,18
color 230,230,0
fill circle yy+35,xx+200,25
color 250,250,0
fill circle yy+45,xx+200,18
color 25,25,0
fill circle yy+25,xx+200,20
color 50,50,0
fill circle yy+35,xx+200,15
color 230,230,0
fill circle yy+15,xx+200,15
color 250,250,0
fill circle yy+20,xx+200,10
color 170,160,250
fill triangle yy+6,xx+190, yy+0,xx+200, yy+2,xx+190
fill triangle yy+6,xx+210, yy+0,xx+200, yy+2,xx+210
color 0,0,0
fill circle yy+15,xx+195,3
line yy+10,xx+205, yy+5,xx+205
color 200,200,0
fill triangle yy+43,xx+199, yy+60,xx+185, yy+55,xx+199
fill triangle yy+43,xx+201, yy+60,xx+215, yy+55,xx+201
cy=yy
cx=xx
Return
Label Tekrar1
cxx=cx
cyy=cy
Sonra=ran(300)
Daha=ran(50)
yy=6
goto Nemissa2
Label Nemissa2
if cyy > 500+Sonra then
goto Tekrar2
endif
if cxx > 100+Daha then
buran = -0.5
elsif cxx < -100
buran = 0.5
endif
cyy=cyy+2
cxx=cxx+buran
color 250,250,0
fill triangle cyy+30,cxx+190, cyy+50,cxx+170, cyy+90,cxx+210
fill triangle cyy+30,cxx+210, cyy+50,cxx+230, cyy+90,cxx+190
fill triangle cyy+12,cxx+200, cyy+30,cxx+200, cyy+0,cxx+165
fill triangle cyy+12,cxx+200, cyy+30,cxx+200, cyy+0,cxx+235
color 210,210,0
fill triangle cyy+12,cxx+200, cyy+30,cxx+200, cyy+12,cxx+183
fill triangle cyy+12,cxx+200, cyy+30,cxx+200, cyy+12,cxx+217
color 25,25,0
fill triangle cyy+40,cxx+182, cyy+40,cxx+218, cyy+18,cxx+200
fill circle cyy+40,cxx+200,15
color 230,230,0
fill circle cyy+50,cxx+200,20
color 25,25,0
fill circle cyy+60,cxx+200,25
color 50,50,0
fill circle cyy+50,cxx+200,18
color 230,230,0
fill circle cyy+70,cxx+200,25
color 250,250,0
fill circle cyy+60,cxx+200,18
color 25,25,0
fill circle cyy+80,cxx+200,20
color 50,50,0
fill circle cyy+70,cxx+200,15
color 230,230,0
fill circle cyy+90,cxx+200,15
color 250,250,0
fill circle cyy+85,cxx+200,10
color 170,160,250
fill triangle cyy+97,cxx+190, cyy+105,cxx+200, cyy+101,cxx+190
fill triangle cyy+97,cxx+210, cyy+105,cxx+200, cyy+101,cxx+210
color 0,0,0
fill circle cyy+90,cxx+195,3
line cyy+95,cxx+205, cyy+100,cxx+205
color 200,200,0
fill triangle cyy+62,cxx+199, cyy+45,cxx+185, cyy+50,cxx+199
fill triangle cyy+62,cxx+201, cyy+45,cxx+215, cyy+50,cxx+201
cy=cyy
cx=cxx
Return
End Sub
// Nimik -------------- Nimik -------------------- Nimik ----------------- Nimik
Sub Nimik()
Sonradan=ran(300)
Dondu=ran(50)
goto Nimik1
Label Arada2
nx=cnx
xy=axy
Sonradan=ran(300)
Dondu=ran(50)
goto Nimik1
Label Nimik1
if nx > 500+Sonradan then
goto Arada1
endif
if xy > 100+Dondu then
suran = -0.5
elsif xy < -150
suran = 0.5
endif
xy=xy+suran
nx=nx+2
color 250,200,0
fill triangle nx+70,xy+285, nx+70,xy+315, nx+88,xy+300
fill triangle nx+20,xy+280, nx+50,xy+300, nx+32,xy+300
fill triangle nx+20,xy+320, nx+50,xy+300, nx+32,xy+300
fill triangle nx+40,xy+275, nx+50,xy+300, nx+55,xy+290
fill triangle nx+40,xy+325, nx+50,xy+300, nx+55,xy+310
color 220,80,0
fill circle nx+60,xy+300,15
color 250,90,0
fill circle nx+50,xy+300,10
color 220,80,0
fill circle nx+65,xy+300,15
color 250,90,0
fill circle nx+55,xy+300,10
fill triangle nx+56,xy+285, nx+56,xy+315, nx+35,xy+298
fill triangle nx+56,xy+285, nx+56,xy+315, nx+35,xy+302
color 220,180,0
fill circle nx+72,xy+300,10
color 250,200,0
fill circle nx+68,xy+300,8
fill triangle nx+55,xy+295, nx+55,xy+305, nx+60,xy+300
color 0,0,0
fill circle nx+77,xy+297,2
color 250,90,0
line nx+84,xy+300, nx+86,xy+300
cnx=nx
cxy=xy
Return
Label Arada1
anx=cnx
axy=cxy
Sonradan=ran(300)
Dondu=ran(50)
nx=840
goto Nimik2
Label Nimik2
if anx<8+Sonradan then
goto Arada2
endif
if axy > 100+Dondu then
suran = -0.5
elsif axy < -150
suran = 0.5
endif
axy=axy+suran
anx=anx-2
color 250,200,0
fill triangle anx+38,axy+285, anx+38,axy+315, anx+20,axy+300
fill triangle anx+88,axy+280, anx+58,axy+300, anx+76,axy+300
fill triangle anx+88,axy+320, anx+58,axy+300, anx+76,axy+300
fill triangle anx+68,axy+275, anx+58,axy+300, anx+53,axy+290
fill triangle anx+68,axy+325, anx+58,axy+300, anx+53,axy+310
color 220,80,0
fill circle anx+48,axy+300,15
color 250,90,0
fill circle anx+48,axy+300,10
color 220,80,0
fill circle anx+43,axy+300,15
color 250,90,0
fill circle anx+53,axy+300,10
fill triangle anx+52,axy+285, anx+52,axy+315, anx+73,axy+298
fill triangle anx+52,axy+285, anx+52,axy+315, anx+73,axy+302
color 220,180,0
fill circle anx+36,axy+300,10
color 250,200,0
fill circle anx+40,axy+300,8
fill triangle anx+53,axy+295, anx+53,axy+305, anx+48,axy+300
color 0,0,0
fill circle anx+31,axy+297,2
color 250,90,0
line anx+24,axy+300, anx+22,axy+300
cnx=anx
cxy=axy
Return
End Sub
// Nimita ---------------- Nimita ----------------- Nimita --------------- Nimita
Sub Nimita()
DahaSonra=ran(300)
Dahanereyekadar=ran(50)
goto Nimita1
Label Tekrarla2
ny=cc
n=nc
DahaSonra=ran(300)
Dahanereyekadar=ran(50)
goto Nimita1
Label Nimita1
if ny<12+DahaSonra then
goto Tekrarla1
endif
if n > 40+Dahanereyekadar then
neren = -0.5
elsif n < -250
neren = 0.5
endif
ny=ny-2
n=n+neren
color 250,200,0
fill triangle ny+38,n+385, ny+38,n+415, ny+20,n+400
fill triangle ny+88,n+380, ny+58,n+400, ny+76,n+400
fill triangle ny+88,n+420, ny+58,n+400, ny+76,n+400
fill triangle ny+68,n+375, ny+58,n+400, ny+53,n+390
fill triangle ny+68,n+425, ny+58,n+400, ny+53,n+410
color 220,80,0
fill circle ny+48,n+400,15
color 250,90,0
fill circle ny+48,n+400,10
color 220,80,0
fill circle ny+43,n+400,15
color 250,90,0
fill circle ny+53,n+400,10
fill triangle ny+52,n+385, ny+52,n+415, ny+73,n+398
fill triangle ny+52,n+385, ny+52,n+415, ny+73,n+402
color 220,180,0
fill circle ny+36,n+400,10
color 250,200,0
fill circle ny+40,n+400,8
fill triangle ny+53,n+395, ny+53,n+405, ny+48,n+400
color 0,0,0
fill circle ny+31,n+397,2
color 250,90,0
line ny+24,n+400, ny+22,n+400
cc=ny
nc=n
Return
Label Tekrarla1
bny=cc
bn=nc
DahaSonra=ran(300)
Dahanereyekadar=ran(50)
ny=8
goto Nimita2
Label Nimita2
if bny > 500+DahaSonra then
goto Tekrarla2
endif
if bn > 40+Dahanereyekadar then
neren = -0.5
elsif bn < -250
neren = 0.5
endif
bny=bny+2
bn=bn+neren
color 250,200,0
fill triangle bny+70,bn+385, bny+70,bn+415, bny+88,bn+400
fill triangle bny+20,bn+380, bny+50,bn+400, bny+32,bn+400
fill triangle bny+20,bn+420, bny+50,bn+400, bny+32,bn+400
fill triangle bny+40,bn+375, bny+50,bn+400, bny+55,bn+390
fill triangle bny+40,bn+425, bny+50,bn+400, bny+55,bn+410
color 220,80,0
fill circle bny+60,bn+400,15
color 250,90,0
fill circle bny+50,bn+400,10
color 220,80,0
fill circle bny+65,bn+400,15
color 250,90,0
fill circle bny+55,bn+400,10
fill triangle bny+56,bn+385, bny+56,bn+415, bny+35,bn+398
fill triangle bny+56,bn+385, bny+56,bn+415, bny+35,bn+402
color 220,180,0
fill circle bny+72,bn+400,10
color 250,200,0
fill circle bny+68,bn+400,8
fill triangle bny+55,bn+395, bny+55,bn+405, bny+60,bn+400
color 0,0,0
fill circle bny+77,bn+397,2
color 250,90,0
line bny+84,bn+400, bny+86,bn+400
cc=bny
nc=bn
Return
End Sub
// Kabarcıklar ................... Kabarcıklar .................... Kabarcıklar
Sub Kopuk()
Label Baloncuk1
if kopuk1<100 kopuk1=520
kopuk1=kopuk1-2
color 250,250,250
circle 200-ran(3),kopuk1-ran(3),4
circle 260-ran(3),kopuk1-10-ran(3),4
circle 230-ran(3),kopuk1-20-ran(3),4
Return
End Sub