Code: Select all
If nappia_painettu Then
soldiers_created + 1
soldier.SOLDIERS = new(SOLDIERS)
soldier\ID = i
soldier\name = "sotamies"+ soldiers_created
soldier\defence = rand(4,6)
soldier\attack = rand(2,5)
EndIf
Code: Select all
If nappia_painettu Then
soldiers_created + 1
soldier.SOLDIERS = new(SOLDIERS)
soldier\ID = i
soldier\name = "sotamies"+ soldiers_created
soldier\defence = rand(4,6)
soldier\attack = rand(2,5)
EndIf
Huuda mun ip:tä!
Code: Select all
SCREEN 800, 600, 0, 0
AddText "LOADING..."
DrawScreen
//rajoitetaan pelin ruudunpäivitysnopeutta ja siten myös pyörimisnopeutta
FrameLimit 40
ShowMouse OFF
Include "RainEngine.cb"
//tyyppi ukon ammuksille
Type AMMUS_ukko 'luo kokoelma, jonka nimi on AMMUS_ukko
Field obj 'yksi kenttä nimeltään 'obj'
End Type
//tyyppi bottien ammuksille
Type AMMUS_botit 'luo kokoelma, jonka nimi on AMMUS_botit
Field obj 'yksi kenttä nimeltään 'obj'
End Type
//Ladataan kartta
kartta = LoadMap("cdm2.til", "tileset.bmp")
//Ammuksen kuva
pati=LoadObject("bullet.bmp")
//botit
Dim botit(8, 4)
//kuinka monta bottia vielä hengissä
botteja = 8
//muutama vakio helpottamaan taulukointia
Const masterbotti = 0
Const objekti = 0
Const energia = 1
Const hengissä = 2
Const ampuuko = 3
Const reload_botti = 4
//masterbotti, jota kloonataan
botit(masterbotti, objekti) = LoadObject("guy.bmp", 360)
//piilotetaan isäntäobjekti
ShowObject botit(masterbotti, objekti), OFF
//kloonataan isäntäobjektista käytettävät botit
For kloonattava = 1 To 8
botit(kloonattava, objekti) = CloneObject(botit(masterbotti, objekti))
//arvotaan botin energia
botit(kloonattava, energia) = Rand(10, 20)
//botti on hengissä
botit(kloonattava, hengissä) = 1
//botti ei ammu
botit(kloonattava, ampuuko) = 0
//botin ase on latingissa
botit(kloonattava, reload_botti) = 0
Next kloonattava
//sijoitetaan botit kartalle
PositionObject botit(1, objekti), -465,865
PositionObject botit(2, objekti), 110,1120
PositionObject botit(3, objekti), -50,1120
PositionObject botit(4, objekti), 465,865
PositionObject botit(5, objekti), 465,705
PositionObject botit(6, objekti), 400,130
PositionObject botit(7, objekti), 400,480
PositionObject botit(8, objekti), 400,-130
//tekstuuri kuolleelle botille
dead_master = LoadObject("dead.bmp")
//piilotetaan se
ShowObject dead_master, OFF
//taulukko ruumiin kuvia varten
Dim dead_tekstuurit(7)
For kloonattava = 0 To 7
//kloonataan
dead_tekstuurit(kloonattava) = CloneObject(dead_master)
//piilotetaan
ShowObject dead_tekstuurit(kloonattava), OFF
Next kloonattava
//pelaaja
ukko = LoadObject("soldier.bmp", 360)
//pelaajan energia
maxukkoenergia = 255
//hiiri
kursori = LoadObject("target.bmp")
//hiiri keskelle ruutua
PositionMouse ScreenWidth()/2, ScreenHeight()/2
//asetetaan ukko törmäämään karttaan
SetupCollision ukko, kartta, 2, 4, 2
//asetetaan pelaaja törmäämään botteihin
For läpikäytävä = 1 To 8
SetupCollision ukko, botit(läpikäytävä, objekti), 2, 2, 2
Next läpikäytävä
//alustetaan pelaajan energia
ukkoenergia = maxukkoenergia
gRainVolume = 100
gRainType = 1
//---------------------------------------------------------------------------------
//LUUPPI
//---------------------------------------------------------------------------------
Repeat
//putsataan tekstit
ClearText
//tulostetaan joitakin tietoja
Color 255 - ukkoenergia, ukkoenergia, 0
AddText "Sinun energiasi: " + 100 * ukkoenergia/maxukkoenergia + "%"
AddText ""
Color 255, 255, 255
AddText "Botteja hengissä: " + botteja + "/8"
AddText ""
AddText "Botin 1 energia: " + botit(1, energia)
AddText "Botin 2 energia: " + botit(2, energia)
AddText "Botin 3 energia: " + botit(3, energia)
AddText "Botin 4 energia: " + botit(4, energia)
AddText "Botin 5 energia: " + botit(5, energia)
AddText "Botin 6 energia: " + botit(6, energia)
AddText "Botin 7 energia: " + botit(7, energia)
AddText "Botin 8 energia: " + botit(8, energia)
AddText ""
//hiiriohjaus
PointObject ukko, kursori
//ukon eteen-taakse liikkeet
If UpKey() Then MoveObject ukko, 3
If DownKey() Then MoveObject ukko, -3
//ukon side-step-liikkeet, eli sivuaskeleet
If RightKey() Then MoveObject ukko, 0, 2
If LeftKey() Then MoveObject ukko, 0, -2
//tarkistetaan näkevätkö botit
For läpikäytävä = 1 To 8
//jos ko. botti hengissä (JOS TÄTÄ EI OLE, TULEE MAV)
If botit(läpikäytävä, hengissä) = 1 Then
//jos seinät eivät ole tiellä ja etäisyys < 300
If ObjectSight(botit(läpikäytävä, objekti), ukko) = 1 And Distance2(botit(läpikäytävä, objekti), ukko) < 300
//botti näkyviin
ShowObject botit(läpikäytävä, objekti), ON
//käännetään botti osoittamaan pelaajaan
PointObject botit(läpikäytävä, objekti), ukko
//liikutetaan bottia kohti pelaajaa
MoveObject botit(läpikäytävä, objekti), 1
//tulostetaan teksti, joka kertoo, että botti näkee
Color 255, 0, 0 : AddText "LINE OF SIGHT! Bot: " + läpikäytävä
//botti ampuu 10%:n todennäköisyydellä
botit(läpikäytävä, ampuuko) = Rand(0, 9)
Else
//muuten piilotetaan botti
ShowObject botit(läpikäytävä, objekti), OFF
EndIf
EndIf
Next läpikäytävä
//copypastetettu ja hiukan modattu ampumishärdelli oppitunnista 18 :D
'Ammu-systeemi. Vain, jos ase on ladattu
If MouseDown(1) And reload_ukko=0 Then
luoti.AMMUS_ukko = New(AMMUS_ukko) 'luo uusi AMMUS_ukko
luoti\obj=CloneObject(pati) 'tee klooni
'asetetaan pati samaan paikkaan pelaajan kanssa
CloneObjectPosition luoti\obj,ukko
'käännetään pati samaan suuntaan pelaajan kanssa
CloneObjectOrientation luoti\obj,ukko
reload_ukko=8 'aseen lataus
'asetetaan törmäykset
SetupCollision luoti\obj, kartta, 2, 4, 1
//jätetään törmäys väliaikaisesti huomiotta
ResetObjectCollision luoti\obj
//asetetaan luodit törmäämään botteihin
For läpikäytävä = 1 To 8
//jos ko. botti on hengissä (JOS TÄTÄ EI OLE, TULEE MAV)
If botit(läpikäytävä, hengissä) = 1 Then
SetupCollision luoti\obj, botit(läpikäytävä, objekti), 2, 2, 1
EndIf
Next läpikäytävä
EndIf
//Bottien ampumis-härdelli
For läpikäytävä = 1 To 8
//jos ko. botti on hengissä (JOS TÄTÄ EI OLE, TULEE MAV)
If botit(läpikäytävä, hengissä) = 1 Then
//jos ampuuko-muuttuja on 9 ja ase ladattu, niin ammutaan
If botit(läpikäytävä, ampuuko) = 9 And botit(läpikäytävä, reload_botti) = 0 Then
//nollataan ampuuko
botit(läpikäytävä, ampuuko) = 0
luoti_botit.AMMUS_botit = New(AMMUS_botit) 'luo uusi AMMUS_botit
luoti_botit\obj=CloneObject(pati) 'tee klooni
'asetetaan pati samaan paikkaan botin kanssa
CloneObjectPosition luoti_botit\obj, botit(läpikäytävä, objekti)
'käännetään pati samaan suuntaan botin kanssa
CloneObjectOrientation luoti_botit\obj, botit(läpikäytävä, objekti)
botit(läpikäytävä, reload_botti)=8 'aseen lataus
'asetetaan törmäykset
SetupCollision luoti_botit\obj, kartta, 2, 4, 1
//jätetään törmäys väliaikaisesti huomiotta
ResetObjectCollision luoti_botit\obj
//asetetaan luodit törmäämään pelaajaan
SetupCollision luoti_botit\obj, ukko, 2, 2, 1
EndIf
EndIf
Next läpikäytävä
'päivitä pelaajan aseen lataaminen
If reload_ukko>0 Then reload_ukko = reload_ukko-1
'päivitä bottien aseen lataaminen
For läpikäytävä = 1 To 8
//jos ko. botti on hengissä (JOS TÄTÄ EI OLE, TULEE MAV)
If botit(läpikäytävä, hengissä) = 1 Then
//jos ase ei ole latingissa
If botit(läpikäytävä, reload_botti) > 0 Then
botit(läpikäytävä, reload_botti) = botit(läpikäytävä, reload_botti) - 1
EndIf
EndIf
Next läpikäytävä
'Päivitä kaikki pelaajan ammukset
For luoti.AMMUS_ukko = Each AMMUS_ukko
//siirretään AMMUS_ukkoa
MoveObject luoti\obj,6
If CountCollisions (luoti\obj) <> 0 Then
'AMMUS_ukko törmää -> tuhoa se
//botit ovat objektit nro 6 - 13
törmätty = GetCollision(luoti\obj, 1)
If törmätty > 5 And törmätty < 14 Then
botit(törmätty - 5, energia) = botit(törmätty - 5, energia) - 1
EndIf
DeleteObject luoti\obj 'poista objekti
Delete luoti 'poista luoti kokonaan
EndIf
Next luoti
'Päivitä kaikki bottien ammukset
For luoti_botit.AMMUS_botit = Each AMMUS_botit
//siirretään AMMUS_botit:a
MoveObject luoti_botit\obj,6
//Törmäsikö AMMUS_botit johonkin?
If CountCollisions (luoti_botit\obj) <> 0 Then
//Ovatko AMMUS_botit ja pelaaja päällekäin?
If ObjectsOverlap (luoti_botit\obj, ukko, 2) <> 0 Then
'AMMUS_botit törmää pelaajaan -> vähennä pelaajan energiaa
ukkoenergia = ukkoenergia - 3
EndIf
'AMMUS_botit törmää -> tuhoa se
DeleteObject luoti_botit\obj 'poista objekti
Delete luoti_botit 'poista luoti kokonaan
EndIf
Next luoti_botit
//tarkistetaan bottien energiataso
For läpikäytävä = 1 To 8
//jos ko. botti on hengissä (JOS TÄTÄ EI OLE, TULEE MAV)
If botit(läpikäytävä, hengissä) = 1 Then
//jos botin energia 0, tai pienempi
If botit(läpikäytävä, energia) =< 0 Then
botit(läpikäytävä, hengissä) = 0
//vähennetään hengissä olevien bottien määrää
botteja = botteja - 1
//laitetaan kuolleen botin paikalle "ruumiin" kuva
CloneObjectPosition dead_tekstuurit(läpikäytävä - 1), botit(läpikäytävä, objekti)
ShowObject dead_tekstuurit(läpikäytävä - 1), ON
//"tapetaan" botti
DeleteObject botit(läpikäytävä, objekti)
EndIf
EndIf
Next läpikäytävä
//tarkistetaan, onko mikään botti päällekkäin pelaajan kanssa
For läpikäytävä = 1 To 8
//jos ko. botti on hengissä (JOS TÄTÄ EI OLE, TULEE MAV)
If botit(läpikäytävä, hengissä) = 1 Then
If ObjectsOverlap(botit(läpikäytävä, objekti), ukko, 3) = 1 Then
//vähennetään pelaajan energiaa
ukkoenergia = ukkoenergia - 1
EndIf
EndIf
Next läpikäytävä
//liimataan kamera pelaajaan
CloneCameraPosition ukko
//asetetaan kursori-objekti hiireksi
PositionObject kursori, MouseWX(), MouseWY()
//PIIRRETÄÄN RUUTU
DrawScreen ON, ON
DrawGame()
DrawRain()
//jos kaikki botit kuolleet, rikkoudutaan ulos silmukasta
If botteja = 0 Then GoTo win
//jos pelaaja kuolee, niin näytetään teksti
If ukkoenergia =< 0 Then GoTo kuolema
Forever
win:
//putstataan ruutu ja poistetaan objektit
ClearObjects
Cls
ClearText
Color 0, 255, 0
//tulostetaan teksti
AddText "PÄÄSIT LÄPI!"
DrawScreen ON, ON
//odotetaan 2 s
Wait 2000
ClearMouse
ClearKeys
WaitKey
End
kuolema:
//putstataan ruutu ja poistetaan objektit
ClearObjects
Cls
ClearText
Color 255, 0, 0
//tulostetaan teksti
AddText "HÄVISIT! VERENHIMOISET BOTIT RAATELIVAT SINUT! YRITÄ UUDELLEEN!"
DrawScreen ON, ON
//odotetaan 2 s
Wait 2000
ClearMouse
ClearKeys
WaitKey
End
Code: Select all
type ukot
field x
field y
end type
Code: Select all
If keyhit(cbkeydown) and ukko\y+20<>(TÄHÄN PITÄISI JOTENKIN SAADA NIIDEN MUIDEN Y:T)ukko\y then ukko\y+20
Code: Select all
For ukko.ukot = Each ukot
For ukko2.ukot = Each ukot
If KeyHit(cbKeyDown) And ukko\y+20<>ukko2\y Then ukko\y = ukko\y + 20
Next ukko2
Next ukko
Pistä kaikki ikkunat alas,ja käy klikkaamassa rastia kun löydät sieltä sen ikkunan,jossa CB-ohjelma ajetaan.danueli wrote:Alotin just käyttään coolbasiciä, ensimmäinen ongelma johon törmäsin alko kun oli kattonut ekan lessonin läpi ja menin toiseen, painoin f5 ja sitten se alko valittaa että The program could not be run because the previous run is still active. no sit tuli ongelma miten hoitaa toi eka ongelma.
Huuda mun ip:tä!
Code: Select all
puu = 0
tym = 15
työ = 0
Repeat
Color 255,255,255
Text 25,25,"PUUTA:"+puu
Text 25,38,"UKKOJA:"+tym
Text 25,51,"TYÖSSÄ:"+työ
Color 0,255,0 'Ekapainike
Box 25,64,49,15
Color 0,0,0
Text 25,65,"TÖIHIN"
'painikkeeksi
If MouseX()>25 And MouseX()<74 And MouseY()>64 And MouseY()<79
If MouseHit(1)
ClearText
If tym > 0 ' jos on työläisiä...
työ = työ + 1
tym = tym - 1
Else
Color 255,0,0 ' jos ei...
AddText "EI OLE TYÖLÄISIÄ!"
EndIf
EndIf
EndIf
Color 255,0,0 'TOinen painike
Box 25,80,49,15
Color 0,0,0
Text 25,81,"POISTA"
If MouseX()>25 And MouseX()<74 And MouseY()>80 And MouseY()<95
If MouseHit(1)
ClearText
If työ > 0 'Jos töitätehdään
tym = tym + 1
työ = työ - 1
Else
Color 255,0,0 ' Jos ei
AddText "KUKAAN EI OLE TÖISSÄ!"
EndIf
EndIf
EndIf
DrawScreen
Forever
Code: Select all
If työ Then
If Timer() > nextpuu Then
puu + 1
nextpuu = Timer() + 60000/työ
EndIf
EndIf
lataat 2 karttaa yhtäaikaa ja auton jälkeen ladattavadanueli wrote:Code: Select all
koodia
Code: Select all
Code: Select all
SetupCollision pati, kartta, 1, 4, 2
Code: Select all
Type AMMUS 'luo kokoelma, jonka nimi on AMMUS
Field obj 'yksi kenttä nimeltään 'obj'
End Type
FrameLimit 70
musa = PlaySound ("Media\SK_Battle2.mp3")
SCREEN 1200,1000
ääniAmmu = LoadSound ("Media\Blaster.wav")
kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp")
PlayObject kartta,0,0,2
auto2 = LoadObject("Media\car2.bmp", 72)
auto = LoadObject("Media\car2.bmp", 72)
pati=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF
SetupCollision pati, kartta, 1, 4, 2
SetupCollision auto, kartta, 1, 4, 2
SetupCollision auto2, kartta, 1, 4, 2
Repeat
'soita musiikki uudelleen, jos se lo4ppuu
If SoundPlaying(musa)=0 Then
musa = PlaySound ("Media\SK_Battle2.mp3")
'satunnainen tapahtuma..
'tasataanko ääni oikealle vai vasemmalle
If Rand(1,2)=1 Then
SetSound musa,0,100,-100 'vasen kajari
Else
SetSound musa,0,100,100 'oikea kajari
EndIf
EndIf
'Ammu-systeemi. Vain, jos ase on ladattu
If KeyDown(cbKeyRControl) And reload=0 Then
luoti.AMMUS = New(AMMUS) 'luo uusi ammus
luoti\obj=CloneObject(pati) 'tee klooni
'asetetaan pati samaan paikkaan
CloneObjectPosition luoti\obj,auto
'käännetään pati samaan suuntaan
CloneObjectOrientation luoti\obj,auto
reload=5 'aseen lataus
EndIf
'Ammu-systeemi. Vain, jos ase on ladattu
If KeyDown(cbKeyLControl) And reload=0 Then
luoti.AMMUS = New(AMMUS) 'luo uusi ammus
luoti\obj=CloneObject(pati) 'tee klooni
'asetetaan pati samaan paikkaan
CloneObjectPosition luoti\obj,auto2
'käännetään pati samaan suuntaan
CloneObjectOrientation luoti\obj,auto2
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
If KeyDown(cbKeyRControl) And reload=0 Then
PlaySound ääniAmmu,50
reload=10 'lataa 1/4 sekunnissa (koska framelimit 40)
EndIf
'lataaminen
If reload>0 Then reload-1
Next luoti
'päivitä aseen lataaminen
If reload>0 Then reload=reload-1
'Päivitä kaikki ammukset
For luoti.AMMUS = Each AMMUS
MoveObject luoti\obj,6
If KeyDown(cbKeyLControl) And reload=0 Then
PlaySound ääniAmmu,50
reload=10 'lataa 1/4 sekunnissa (koska framelimit 40)
EndIf
'lataaminen
If reload>0 Then reload-1
Next luoti
'tämä ennen muuta grafiikkaa (box)
DrawGame
'piirrä "kenttä"
If LeftKey() Then TurnObject auto, 12
If RightKey() Then TurnObject auto, -12
If UpKey() Then MoveObject auto, 15
If DownKey() Then MoveObject auto, -15
If KeyDown(30) Then TurnObject auto2, 12
If KeyDown(32) Then TurnObject auto2, -12
If KeyDown(17) Then MoveObject auto2, 16
If KeyDown(31) Then MoveObject auto2, -16
CloneCameraPosition auto2
DrawScreen
Forever