Aattelin vaan, että jos jollain ois ollu hyvää ideaa mikä vois olla pielessä, mut pistetään se koodikin nyt tänne, ei oo vaan mikään ihan lyhyt eikä mikään kaikkein siistein.
Code: Select all
'----------- ALUSTUS--------------------
loading = LoadImage("img/loading.jpg")
DrawImage loading,0,0
DrawScreen
'PLAYER
oikea=LoadAnimObject("img\walkright.png",15,26,0,4)
MaskObject oikea,32,156,0
ShowObject oikea,OFF
ObjectRange oikea,15,26
vasen=LoadAnimObject("img\walkleft.png",15,26,0,4)
MaskObject vasen,32,156,0
ShowObject vasen,OFF
ObjectRange vasen,15,26
pelihahmo=CloneObject(oikea)
ObjectRange pelihahmo,15,26
' CAMERA
camera = CloneObject(pelihahmo)
ShowObject camera,OFF
'BOXIT
boxi1=LoadObject("img/test.png")
boxi2=LoadObject("img/test.png")
boxi3=LoadObject("img/test.png")
boxi4=LoadObject("img/test.png")
boxi5=LoadObject("img/test.png")
boxi6=LoadObject("img/test.png")
'LAAVA
laava=LoadObject("img/lava.png")
MaskObject laava,255,0,255
veri=LoadImage("img/veri.png")
'COLLISIONS
SetupCollision pelihahmo,boxi1,1,1,2
SetupCollision pelihahmo,boxi2,1,1,2
SetupCollision pelihahmo,boxi3,1,1,2
SetupCollision pelihahmo,boxi4,1,1,2
SetupCollision pelihahmo,boxi5,1,1,2
SetupCollision pelihahmo,boxi6,1,1,2
'TAKASEINÄ
floor = MakeObjectFloor ()
seinä = LoadImage ("img\seinä.jpg")
lattia=LoadObject("img\lattia.jpg")
MaskObject lattia,255,0,255
DeleteImage loading
'----------------------------------------------
'*************** MAIN *************************
'----------------------------------------------
Repeat
Gosub Peli
DrawScreen
Forever
'----------------------------------------------
'*************** Valikko ******************
Tiedot:
Return
'----------------------------------------------
'*************** GAME (PELI) SILMUKKKA!!!! ********************
' ******************
'----------------------------------------------
Peli:
alusta:
loppuuko=False
ShowObject pelihahmo,ON
PositionObject pelihahmo,-32,-270
PositionObject boxi1,0,-250
PositionObject boxi2,32,-250
PositionObject boxi3,64,-250
PositionObject boxi4,96,-250
PositionObject boxi5,128,-250
PositionObject boxi6,160,-250
PositionObject lattia,0,-425
PositionObject laava,0,-825
PaintObject floor, seinä
'SILMUKKA
Repeat
'CAMERA
PositionObject camera,0,ObjectY(pelihahmo)
CloneCameraPosition camera
Gosub liiku
Gosub kosketukset
Gosub boxi
If KeyDown(cbkeyreturn) Then Goto alusta
DrawGame
Color cbwhite
score=ObjectY(pelihahmo) + 275 'SCORE mittari
Text 0,0,"Score:" +score
Text 100,0,"maassa:" +maassa
Text 200,0,"kosketus:" +collide
DrawToWorld ON,ON
Color cbRED
If loppuuko=True And ObjectY(pelihahmo)=-275 Then
DrawImage veri,ObjectX(pelihahmo)-40,287
Text 300,275,"GAME OVER - PRESS ESC TO QUIT! LOSER"
ShowObject pelihahmo,OFF
EndIf
DrawToWorld OFF,OFF
DrawScreen
Forever
Return
'*************** PELAAJAN LIIKKEET + PVOIMA ******************
liiku:
If maassa=False Then
py=py+pvoima 'päivitä painovoima
pvoima=-1
EndIf
TranslateObject pelihahmo,px,py
UpdateGame
px=0
If LeftKey() Then
PaintObject pelihahmo,vasen
PlayObject pelihahmo,1,4,0.25
px=-7
ElseIf RightKey() Then
PaintObject pelihahmo,oikea
px=7
PlayObject pelihahmo,1,4,0.25
Else
PlayObject pelihahmo,0
EndIf
If UpKey() And maassa=1 Then
py =8
newjump=1
ElseIf UpKey() And newjump=1 Then
py=13
newjump=0
EndIf
'PELAAJA EI SAA MENNÄ LATTIAN ALLE
If ObjectY(pelihahmo) < -275 Then PositionObject pelihahmo,ObjectX(pelihahmo),-275
If ObjectX(pelihahmo) < -300 Then PositionObject pelihahmo,300,ObjectY(pelihahmo)
If ObjectX(pelihahmo) > 300 Then PositionObject pelihahmo,-300,ObjectY(pelihahmo)
'Peli loppuu jos
If py>25 And collide<1 Then
PositionCamera 0,-275
loppuuko=True
EndIf
If playerstill=False Then
laavaaika=Timer()
playerstill=True
EndIf
ObjectOrder laava,1
If Timer()>laavaaika+3500 And ObjectY(laava)<-540 And ObjectY(pelihahmo)<-200 And loppuuko=False Then MoveObject laava,0,-2
If ObjectY(laava) > -540 And ObjectY(pelihahmo)<-270 Then loppuuko=True
Return
'*************** BOXIT ******************
boxi:
bx2=ObjectX(boxi1)
by2=ObjectY(boxi1)
bx3=ObjectX(boxi2)
by3=ObjectY(boxi2)
bx4=ObjectX(boxi3)
by4=ObjectY(boxi3)
bx5=ObjectX(boxi4)
by5=ObjectY(boxi4)
bx6=ObjectX(boxi5)
by6=ObjectY(boxi5)
If Timer()>aika+1000 Then
uusiks:
kx=ObjectX(pelihahmo)
ky=ObjectY(pelihahmo)
MoveObject boxi1,bx,by
PositionObject boxi2,bx2,by2
PositionObject boxi3,bx3,by3
sx = Rand(1,3)
sy = Rand(1,2)
' BOXIN LIIKE
If sx = 1 Then bx=-32
If sx = 2 Then bx=0
If sx = 3 Then bx = 32
If sy = 1 Then by = -32
If sy = 2 Then by = 0
aika=Timer()
EndIf
If ObjectX(boxi1) < -300 Then PositionObject boxi1,300,ObjectY(boxi1)
If ObjectX(boxi1) > 300 Then PositionObject boxi1,-300,ObjectY(boxi1)
'Tarkistaa overlappaakö
If ObjectsOverlap (pelihahmo, boxi1, 3)=1 Then Goto uusiks
Return
'*****************KOSKETUKSET***********************
kosketukset:
collide=CountCollisions(pelihahmo)
If ObjectY(pelihahmo)=-275 Then
maassa=True
ElseIf collide>0 Then
maassa=True
Else
maassa=False
EndIf
Return