Tee muuttuja, joka kuvaa, ollaanko ampumassa. Tee myös toinen muuttuja, joka kuvaa, ollaanko lataamassa.saamari wrote:Ongelmana on siis se, että miten saan haulikon latauksen toimimaan tyyliin: 2sec -> +1 hauli -> 2sec -> +1 hauli eli kahden sekunnin välein lisätään yksi hauli niin kauan, että niitä on kasassa kaksitoista kun on painettu R näppäintä. Myöskin, että jos tulee kiire tappaa niin latauksen voi keskeyttää vaikka yhden haulin lisäyksen jälkeen ja ampua sen?
Tällä hetkellä hoidan latauksen näin, joka siis "laittaa" kaikki kaksitoista haulia kerralla:
Code: Select all
If haulikkoluodit=0 And KeyHit(cbKeyR) Then haulikkoluodit=haulikkoluodit+12
Systeeminhän pitäisi kait mennä niin että jos lataamisen aikana painat ampumisnappia niin sen hetkinen ladattava panos laitetaan vielä sisään ja sitten ammutaan suoraan. Koodaat siis ihan loogisia If -lausekkeita, jotka tarkistavat muuttujien avulla, missä tilassa ase on ja peli käsittelee aseen toimintoja sen mukaan. Jos painetaan R ja ammutaan samanaikaisesti, odotetaan ensin että senhetkinen ladattava panos on ladattu. Tähän kannattaa tehdä välimuuttuja, joka kertoo senhetkisen ladattavan panoksen järjestysluvun. Ja sitten
Code: Select all
If panokset = seuraavapanos Then
[ammutaan]
EndIf
Code: Select all
// Timer() on funktio, joka kertoo millisekunteina
// tietokoneen käynnissäoloajan. Tätä voidaan
// käyttää ajan laskemiseen ohjelmissa, kun voidaan
// laskea kahden tapahtuman välillä mitattujen
// käynnissäoloaikojen erotus.
aloitusaika=Timer()
Repeat
If KeyHit(28) Then // jos ENTERiä painetaan
aloitusaika = Timer()
EndIf
kulunutaika = Timer() - aloitusaika
Text 0,0, "Timer() = "+Timer()
Text 0,20, "aloitusaika = "+aloitusaika
Text 0,40, "Timer() - aloitusaika = kulunutaika = "+kulunutaika
Text 0,60, "Paina ENTERiä nollataksesi laskurin"
DrawScreen
Forever
Kerro ensin, jaa sitten. Lopputulos on silloin tarkempi. Jos haluat vastaukseksi desimaalilukuja, muuttujissa tulee käyttää desimaalilukumääritystä (# -merkki muuttujan nimen perään ensimmäisellä kerralla, kun muuttuja esiintyy koodissa)saamari wrote: Ja toinen ongelma on se, että miten saisin "elämäpalkin" vähenemään aina tietyn verran kun törmää zombieen.
Tällä hetkellä energiapalkin teko menee näin koodissani:
Code: Select all
'Luodaan energiapalkki energia = ObjectFloat(player) DrawImageBox imgenergia, 10, 540, 0, 0, Float(ImageWidth(imgenergia))/(100.0)*energia, 20
Esim.
energia# = 100