Luon elkun näkyviin näin:
Code: Select all
Text 0,0, "Elkku: "+elkku
Code: Select all
Text 0,0, "Elkku: "+elkku
Code: Select all
FrameLimit 40 'rajoita nopeutta
kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp")
PlayObject kartta,0,0,1
ukko = LoadObject ("Media\guy.bmp",72)
SetupCollision ukko, kartta, 1, 4, 2
elämä=100
Repeat
'Ukon ohjaus
If LeftKey() Then TurnObject ukko,5
If RightKey() Then TurnObject ukko,-5
If UpKey() Then MoveObject ukko,2
If DownKey() Then MoveObject ukko,-2
UpdateGame
DrawGame
elämä=elämä-1
Text 0,0,"Toimiiko? Elämät: "+elämä
CloneCameraPosition ukko
DrawScreen
Forever
Code: Select all
FrameLimit 40 'rajoita nopeutta
DrawToWorld ON 'mahdollistaa piirtämisen maailmaan
'lataa kartta
kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp")
ObjectPickable kartta, ON 'aseta se poimittavaksi
PlayObject kartta,0,0,1 'animoi kartta
'lataa pelaaja
ukko = LoadObject ("Media\guy.bmp",72)
'lataa vihulainen
vihu = LoadObject ("Media\guy.bmp",72)
ObjectPickable vihu, 2 'aseta se poimittavaksi
PositionObject vihu, 32,150 'sijoita ylemmäs
'törmäykset
SetupCollision ukko, vihu, 2, 2, 2
'kartta-törmäykset on hyvä esitellä viimeiseksi
SetupCollision ukko, kartta, 1, 4, 2
Elämät=100
Repeat
If Elämät=>0 Then Elämät=Elämät-1
'Ukon ohjaus
If LeftKey() Then TurnObject ukko,5
If RightKey() Then TurnObject ukko,-5
If UpKey() Then MoveObject ukko,2
If DownKey() Then MoveObject ukko,-2
UpdateGame
CloneCameraPosition ukko
DrawGame 'tämä komennetaan ennen piirtokomentoja
'suorita poiminta
ObjectPick ukko
e=PickedObject()
'jos poiminta osui vihuun
If e=vihu Then
Color cbMagenta
Circle PickedX()-4,PickedY()+4,8,OFF
EndIf
'jos poiminta osui karttaan
If e=kartta Then
Color cbGreen
Circle PickedX()-4,PickedY()+4,8,OFF
EndIf
Color 255,255,255
Text 15,15,"Elämät: "+Elämät
DrawScreen 'piirrä näyttö
Forever
Kuten koodaaja jo sanoi niin poiminnat ei vaikuta tuohon mitenkään.Petse wrote:Toimii! Mun pelissä ei toimi. Myöhemmin huomasin että kun poiminnan poisti, teksti tuli näkyviin. Viitsiikö joku selittää??? Kiitos
Code: Select all
SCREEN 800, 600 ' aseta näytön koko
FrameLimit 40 'rajoita nopeutta
Type AMMUS 'luo kokoelma, jonka nimi on AMMUS
Field obj 'yksi kenttä nimeltään 'obj'
End Type
Type ukonAMMUS 'luo kokoelma, jonka nimi on ukonAMMUS
Field obj 'yksi kenttä nimeltään 'obj'
End Type
Type salaAMMUS 'luo kokoelma, jonka nimi on ukonAMMUS
Field obj 'yksi kenttä nimeltään 'obj'
End Type
kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp") 'lataa kartta
PlayObject kartta,0,0,1 'animoi kartta
ObjectPickable kartta, ON 'aseta se poimittavaksi
DrawToWorld ON 'mahdollistaa piirtämisen maailmaan
salapati=LoadObject("Media\bigbullet.bmp") 'lataa "isäntäluoti"...
ShowObject salapati,OFF
pati=LoadObject("Media\bullet.bmp") 'lataa "isäntäluoti"...
ShowObject pati,OFF '...ja piilota se
ukko = LoadObject ("Media\guy.bmp",72) 'lataa peliukko
vihu = LoadObject ("Media\soldier.bmp",72) 'lataa vihu
ObjectPickable vihu, 2 'aseta se poimittavaksi
PositionObject vihu, 200,-300 'sijoita vihu
PositionObject ukko, 0,0 'sijoita ukko
SetupCollision ukko, kartta, 1, 4, 2 'aseta ukko törmäämään seiniin
SetupCollision vihu, kartta, 1, 4, 2 'aseta vihu törmäämään seiniin
Vihunelämät = 100
elämät = 100
Repeat 'aloita pääsilmukka
'Ukon ohjaus---------------------------------------------------------
If LeftKey() Then TurnObject ukko,5
If RightKey() Then TurnObject ukko,-5
If UpKey() Then MoveObject ukko,3
If DownKey() Then MoveObject ukko,-3
UpdateGame
CloneCameraPosition ukko 'kameraa seuraa ukkoa
'ukon ammunta
If KeyDown(cbKeyRControl) And reload=0 Then
ukonluoti.ukonAMMUS = New(ukonAMMUS) 'luo uusi ammus
ukonluoti\obj=CloneObject(pati) 'tee klooni
'asetetaan pati samaan paikkaan
CloneObjectPosition ukonluoti\obj,ukko
'käännetään pati samaan suuntaan
CloneObjectOrientation ukonluoti\obj,ukko
reload=5 'aseen lataus
EndIf
'päivitä aseen lataaminen
If reload>0 Then reload=reload-1
'Päivitä kaikki ammukset
For ukonluoti.ukonAMMUS = Each ukonAMMUS
MoveObject ukonluoti\obj,6
If ObjectsOverlap (ukonluoti\obj, vihu) Then 'jos luoti on päällekkäin ukon kanssa...
Vihunelämät -5
DeleteObject ukonluoti\obj
Delete ukonluoti
EndIf
Next ukonluoti
If KeyDown(cbKeyRshift) And reload=0 Then
salaluoti.salaAMMUS = New(salaAMMUS) 'luo uusi ammus
salaluoti\obj=CloneObject(salapati) 'tee klooni
'asetetaan pati samaan paikkaan
CloneObjectPosition salaluoti\obj,ukko
'käännetään pati samaan suuntaan
CloneObjectOrientation salaluoti\obj,ukko
reload=400 'aseen lataus
EndIf
'päivitä aseen lataaminen
If reload>0 Then reload=reload-1
'Päivitä kaikki ammukset
For salaluoti.salaAMMUS = Each salaAMMUS
MoveObject salaluoti\obj,6
If ObjectsOverlap (salaluoti\obj, vihu) Then 'jos luoti on päällekkäin vihun kanssa...
Vihunelämät -90
DeleteObject salaluoti\obj
Delete salaluoti
EndIf
Next salaluoti
'Vihun toiminta------------------------------------------------------
MoveObject vihu,2 'liikuta vihua
If CountCollisions(vihu) Then TurnObject vihu, Rand (0,12) 'jos vihu törmää, etsi uusi suunta
If CanSee(vihu, ukko, 360) Then PointObject vihu, ukko 'jos hahmo osuu vihun näkökenttään, käännä vihu ukkoa kohti...
If CanSee(vihu, ukko, 360) And reload=0 Then '...ja ammu ukkoa
luoti.AMMUS = New(AMMUS) 'luo uusi ammus
luoti\obj=CloneObject(pati) 'tee klooni
'asetetaan pati samaan paikkaan
CloneObjectPosition luoti\obj,vihu
'käännetään pati samaan suuntaan
CloneObjectOrientation luoti\obj,vihu
reload=5 'aseen lataus
EndIf
'päivitä aseen lataaminen
If reload>0 Then reload=reload-1
'Päivitä kaikki ammukset
For luoti.AMMUS = Each AMMUS
MoveObject luoti\obj,6 'liikuta ammusta
If ObjectsOverlap (luoti\obj, ukko) Then 'jos luoti on päällekkäin ukon kanssa...
elämät -5
DeleteObject luoti\obj
Delete luoti
EndIf
Next luoti
'Tutkitaan missä kulmassa _obj2 on objektista _obj1 katsottuna
Function ObjectDirection(_obj1, _obj2)
a# = GetAngle2(_obj1, _obj2) - ObjectAngle(_obj1)
If a > 180 Then a = a - 360
If a < -180 Then a = a + 360
Return a
EndFunction
'Tutkitaan näkeekö ukon
Function CanSee(_obj1, _obj2, _fov)
'Ensin tarkistetaan että kakkonen on ykkösen näkökentässä
If Abs(ObjectDirection(_obj1, _obj2)) > _fov Then Return False
'Tarkistetaan ettei ole seinää välissä
Return ObjectSight(_obj1, _obj2)
EndFunction
DrawGame
Text 0,0,"Vihun elkku: "+VihunElkku
If Vihunelämät < 0 Then'¨
MakeError "Voitit!"
Else
EndIf
If elämät < 0 Then'¨
MakeError "Kuolit"
Else
EndIf
DrawGame
ObjectPick ukko
e=PickedObject()
'jos poiminta osui vihuun
If e=vihu Then
Color cbMagenta
Circle PickedX()-4,PickedY()+4,8,OFF
EndIf
'jos poiminta osui karttaan
If e=kartta Then
Color cbGreen
Circle PickedX()-4,PickedY()+4,8,OFF
EndIf
DrawScreen
Forever