Odottaa viisaampien apua!
Odottaa viisaampien apua!
Hey!
Muutama päivä sitten latasin cb:n ja tietysti ne oppitunnitkin hiihtelin läpi. Jotain jäi ymmärtämättä oppitunneista, mutta mielestäni myös erittäin olennainen jäi opettamatta: toki voin koodata ruudulle kaksi ukkelia, jotka ammuskelevat toisiaan, mutta miten saada erilaisten tekojen seuraukset toimimaan? Tarkoitan, että jos heppuun osuu kuti, niin kuinka saada heppu kuolemaan? Tai jos auto ylittää maalilinjan, niin kuinka saada peli päättymään? Sanon suoraan, että olen toistaiseksi aivan totaalinen käsi tämän koodauksen kanssa, mutta ihmiset täällä ovat vaikuttaneet rennoimmilta kuin muilla foorumeilla, mikä tuli minulle pienoisena yllätyksenä... Tulen varmasti kyselemään täällä lähes kaikkeen apua, ja olisikin mahtavaa jos joku vaivaantuisi auttamaan minua...
tässä avauspostauksessa nyt ei mitään varsinaista kysymystä ollut, mutta niitä kyllä riittää, jos jaksatte kuunnella!
Muutama päivä sitten latasin cb:n ja tietysti ne oppitunnitkin hiihtelin läpi. Jotain jäi ymmärtämättä oppitunneista, mutta mielestäni myös erittäin olennainen jäi opettamatta: toki voin koodata ruudulle kaksi ukkelia, jotka ammuskelevat toisiaan, mutta miten saada erilaisten tekojen seuraukset toimimaan? Tarkoitan, että jos heppuun osuu kuti, niin kuinka saada heppu kuolemaan? Tai jos auto ylittää maalilinjan, niin kuinka saada peli päättymään? Sanon suoraan, että olen toistaiseksi aivan totaalinen käsi tämän koodauksen kanssa, mutta ihmiset täällä ovat vaikuttaneet rennoimmilta kuin muilla foorumeilla, mikä tuli minulle pienoisena yllätyksenä... Tulen varmasti kyselemään täällä lähes kaikkeen apua, ja olisikin mahtavaa jos joku vaivaantuisi auttamaan minua...
tässä avauspostauksessa nyt ei mitään varsinaista kysymystä ollut, mutta niitä kyllä riittää, jos jaksatte kuunnella!
Re: Odottaa viisaampien apua!
Anna meidän vain auttaa itseäsi.A13 wrote:Hey!
Muutama päivä sitten latasin cb:n ja tietysti ne oppitunnitkin hiihtelin läpi. Jotain jäi ymmärtämättä oppitunneista, mutta mielestäni myös erittäin olennainen jäi opettamatta: toki voin koodata ruudulle kaksi ukkelia, jotka ammuskelevat toisiaan, mutta miten saada erilaisten tekojen seuraukset toimimaan? Tarkoitan, että jos heppuun osuu kuti, niin kuinka saada heppu kuolemaan? Tai jos auto ylittää maalilinjan, niin kuinka saada peli päättymään? Sanon suoraan, että olen toistaiseksi aivan totaalinen käsi tämän koodauksen kanssa, mutta ihmiset täällä ovat vaikuttaneet rennoimmilta kuin muilla foorumeilla, mikä tuli minulle pienoisena yllätyksenä... Tulen varmasti kyselemään täällä lähes kaikkeen apua, ja olisikin mahtavaa jos joku vaivaantuisi auttamaan minua...
tässä avauspostauksessa nyt ei mitään varsinaista kysymystä ollut, mutta niitä kyllä riittää, jos jaksatte kuunnella!
Re: Odottaa viisaampien apua!
Giyäh! Terve tuloa tänne. Kuvaamasi tilanne muistuttaa omaani kun aloitin koodaamisen. Nyt minulla on (ahh) tuohon tyhjentävä vastaus: Ohjelmointi on juuri tuota; Ongelmien ratkaisemista!A13 wrote:Hey!
Muutama päivä sitten latasin cb:n ja tietysti ne oppitunnitkin hiihtelin läpi. Jotain jäi ymmärtämättä oppitunneista, mutta mielestäni myös erittäin olennainen jäi opettamatta: toki voin koodata ruudulle kaksi ukkelia, jotka ammuskelevat toisiaan, mutta miten saada erilaisten tekojen seuraukset toimimaan? Tarkoitan, että jos heppuun osuu kuti, niin kuinka saada heppu kuolemaan? Tai jos auto ylittää maalilinjan, niin kuinka saada peli päättymään? Sanon suoraan, että olen toistaiseksi aivan totaalinen käsi tämän koodauksen kanssa, mutta ihmiset täällä ovat vaikuttaneet rennoimmilta kuin muilla foorumeilla, mikä tuli minulle pienoisena yllätyksenä... Tulen varmasti kyselemään täällä lähes kaikkeen apua, ja olisikin mahtavaa jos joku vaivaantuisi auttamaan minua...
tässä avauspostauksessa nyt ei mitään varsinaista kysymystä ollut, mutta niitä kyllä riittää, jos jaksatte kuunnella!
Kokeneena osaan lepoisasti seuraavan tapahtuma sarjan: "Haluan saada pelihahmon hypäämään" -> "Mikä, millainen? Kuinka? Miten?" -> "Kirjoitan Randoom koodia" -> "Etsin tarvittavaa materiaalia, tietoa, mallia tapahtumalle" -> "Ensimmäinen kokeilu" -> "AHAAAAAAAAAAAA!!!!" -> "Ratkaisu, koodin kirjoittaminen paremmaksi" Tämä ketju ei siis ole lähellekkään fakta, vaan pätee enimmäkseen minuun.
Lyhyempänä: Yrityksen ja erehdyksen kautta, älä jää jahkailemaan vaan kokeile, _mutta_ kokemuksen kautta opit pois-sulkemaan täysin mahdottomat/huonot vaihtoehdot.
-On selkeästi impulsiivinen koodaaja joka...
Re: Odottaa viisaampien apua!
Kyllä niissä oppitunneissa on moniakin esimerkkejä jonkun teon seurauksista. Esimerkiksi oppitunnissa Ammukset 2 poistetaan luodit kun ne menevät rajan yli.A13 wrote:Jotain jäi ymmärtämättä oppitunneista, mutta mielestäni myös erittäin olennainen jäi opettamatta: toki voin koodata ruudulle kaksi ukkelia, jotka ammuskelevat toisiaan, mutta miten saada erilaisten tekojen seuraukset toimimaan? Tarkoitan, että jos heppuun osuu kuti, niin kuinka saada heppu kuolemaan? Tai jos auto ylittää maalilinjan, niin kuinka saada peli päättymään?
Luodinosumien tarkistukseen on todella monia eri tapoja, mutta perusperiaate on usein tämä:
Code: Select all
If LuotiOsuu Then
PelaajanHP = PelaajanHP - 1
DeleteObject luoti\obj
Delete luoti
EndIf
If PelaajanHP =< 0 Then
PelaajaKuolee()
EndIf
- tarkistetaan ovatko luoti ja pelaaja päällekkäin ObjectsOverLap-funktiolla
- katsotaan distance-funktiolla onko luoti tarpeeksi lähellä pelaajaa
- jos luoti ja pelaaja ovat kuvia (eivätkä objekteja), tarkistaan niiden päällekkäisyys ImagesCollide, tai ImagesOverlap -funktiolla.
PelaajaKuolee()-funktiossa taas voitaisiin vaikka tehdä popup "GAME OVER" tai jotain vastaavaa.
- -Z-
- Devoted Member
- Posts: 682
- Joined: Tue Aug 28, 2007 3:33 pm
- Location: In ur danmaku, grazin ur bullets
Re: Odottaa viisaampien apua!
Funktiot on mielestäni vähän liian kehittyneitä aloittelijan opetella. Itse ainakin olin hyvän aikaa hukassa niiden kera. Aloittelijan kannattaa opetella ensin kaikki olennainen, sitten opetella ne vähän paremmin, ja siitä hioa ne täydellisyyteen opettelemalla peruskommennot ja niiden sovellukset ulkoa. Siis kaikki tyyppeihin asti. Sitten funktiot, muistipalat, ymsmyms. Tie ohjelmointiin on kivikkoinen ja sen varrella kuten päässäkin odottaa vain työtä ja turhautumista. Työkin on sellaista sorttia, että palkka on erittäin vaihtelevaa.
Mutta tervetuloa foorumeille. Porukka on täällä tosiaan keskiverto-nettiyhteisöä asiallisempaa ja avuliaampaa.
Ja älä lannistu mun puheista Neljä vuotta tätä tehty, eikä mitään valmista. Mutta olenkin poikkeustapaus.
Mutta tervetuloa foorumeille. Porukka on täällä tosiaan keskiverto-nettiyhteisöä asiallisempaa ja avuliaampaa.
Ja älä lannistu mun puheista Neljä vuotta tätä tehty, eikä mitään valmista. Mutta olenkin poikkeustapaus.
"Fallout 3 (#10) marked a shift in the industry, a move that saw the western RPG begin to surpass its Japanese counterparts." -IGN top 100 RPGs of all time
Re: Odottaa viisaampien apua!
Ei koodauksen opettelemiseen kovin kauaa mene, kunhan muistaa pyytää apua. Itselläni reilut 3kk CoolBasicilla koodausta takana ja aika hyvin hommat hanskassa. Tietysti kokoajan tulee jotain mitä ei osaa, silloin kannattaa vaan kysyä suoraan : )
Itse suosittelen tuohon Mestari & Oppipoika (viewtopic.php?f=13&t=25) -kampanjaan liittymistä. Itselläni on tuo "mestari" auttanut erittäin paljon varsinkin sillon, kun koodissa useampi häikkä ja koko koodia ei kuitenkaan viitsisi vielä paljastaa kaikille yleisillä foorumeilla.
Mutta tervetuloa minunkin puolestani : )
Itse suosittelen tuohon Mestari & Oppipoika (viewtopic.php?f=13&t=25) -kampanjaan liittymistä. Itselläni on tuo "mestari" auttanut erittäin paljon varsinkin sillon, kun koodissa useampi häikkä ja koko koodia ei kuitenkaan viitsisi vielä paljastaa kaikille yleisillä foorumeilla.
Mutta tervetuloa minunkin puolestani : )
"Baby," I said. "I'm a genius but nobody knows it but me."
Re: Odottaa viisaampien apua!
Vastauksista päätellen voinkin aloittaa pommitamisen heti
Tänään säätäessäni jotain tylsähkön autopelin tapaista, tuli esille eräs kysymys: onko mahdollista yhdistää objectlife -koodiin muita koodeja, tässä tapauksessa makeerroria. Yritin epätoivoisesti näin:
objectlife kaara, 1000 then makeerror "Voitit pelin"
Kuten arvata saattaa, lopputulos oli kehnonlainen... Niinpä kysyisinkin (yllätys yllätys), että miten koodin saa toimimaan? Ajatuksena on, että objektin poistuessa kone ilmoittaisi voitosta...
Tänään säätäessäni jotain tylsähkön autopelin tapaista, tuli esille eräs kysymys: onko mahdollista yhdistää objectlife -koodiin muita koodeja, tässä tapauksessa makeerroria. Yritin epätoivoisesti näin:
objectlife kaara, 1000 then makeerror "Voitit pelin"
Kuten arvata saattaa, lopputulos oli kehnonlainen... Niinpä kysyisinkin (yllätys yllätys), että miten koodin saa toimimaan? Ajatuksena on, että objektin poistuessa kone ilmoittaisi voitosta...
Re: Odottaa viisaampien apua!
Lainaus ObjectLife komennon kohdasta cb-manuaalista: "Komentoa voi käyttää myös funktiona, jolloin se palauttaa objektin jäljellä olevan elinajan kokonaislukuna."A13 wrote:Vastauksista päätellen voinkin aloittaa pommitamisen heti
Tänään säätäessäni jotain tylsähkön autopelin tapaista, tuli esille eräs kysymys: onko mahdollista yhdistää objectlife -koodiin muita koodeja, tässä tapauksessa makeerroria. Yritin epätoivoisesti näin:
objectlife kaara, 1000 then makeerror "Voitit pelin"
Kuten arvata saattaa, lopputulos oli kehnonlainen... Niinpä kysyisinkin (yllätys yllätys), että miten koodin saa toimimaan? Ajatuksena on, että objektin poistuessa kone ilmoittaisi voitosta...
Komennon käyttäminen funktiona tarkoittaa sitä että siinä käytetään sulkeita ja annetaan funktiolle parametri, eli joku asia, tässä tapauksessa objektimuuttuja. Joten "ObjectLife(kaara)" palauttaa kaara-objektin elinajan ja voit tarkistaa, onko se 1000 ja tekemällä MakeErrorin tähän tapaan:
Code: Select all
If ObjectLife(kaara) = 1000 Then MakeError "Voitit pelin"
Tuossa koodinpätkässä siis tarkistetaan, onko ObjectLife(kaara) arvo _TASAN_ 1000. Joten jos sattumoisin kaara-objektin elinaika meneekin alle 1000 ennen kuin ehtolausetta suoritetaan, niin MakeErroria ei synny. Siis kannattaa käyttää alla olevaa koodia, joka tarkistaa, onko kaara-objektin elinaika _ALLE_ 1000.
Code: Select all
If ObjectLife(kaara) < 1000 Then MakeError "Voitit pelin"
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
Re: Odottaa viisaampien apua!
Kiitos paljon!
Ilmaisin itseni epäselvästi, ja viimeistään jäätävä koodiyritelmäni ratkaisi väärinkäsityksen muodostumisen. Tarkotukseni oli aiheuttaa error, jos kaaran elämä loppuu. Koitin tollasta, lopputuloksena MAV:
If ObjectLife(kaara) = 0 Then MakeError "Voitit pelin"
Ilmaisin itseni epäselvästi, ja viimeistään jäätävä koodiyritelmäni ratkaisi väärinkäsityksen muodostumisen. Tarkotukseni oli aiheuttaa error, jos kaaran elämä loppuu. Koitin tollasta, lopputuloksena MAV:
If ObjectLife(kaara) = 0 Then MakeError "Voitit pelin"
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: Odottaa viisaampien apua!
Muuttuja "kaara" ei sisällä muistiosoitetta ladattuun objektiin kun kyseinen koodi suoritetaan.
Re: Odottaa viisaampien apua!
Kun objektin elinaika loppuu, se tuhotaan automaattisesti. Kun yrität käyttää jo tuhottua objektia, tuottaa se MAVin.A13 wrote:Kiitos paljon!
Ilmaisin itseni epäselvästi, ja viimeistään jäätävä koodiyritelmäni ratkaisi väärinkäsityksen muodostumisen. Tarkotukseni oli aiheuttaa error, jos kaaran elämä loppuu. Koitin tollasta, lopputuloksena MAV:
If ObjectLife(kaara) = 0 Then MakeError "Voitit pelin"
Käytä mielummin jotain muuttujaa, jonka arvoa vähennät joka kierros loopissa. Kun muuttujan arvo on nolla (tai vähemmän) niin tehdään MakeError.
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
Re: Odottaa viisaampien apua!
Grandi, muista että kyseessä on aloittelija. Hienot ohjelmointiin liittyvät lauseet eivät välttämättä auta asiaa...
Grandi tarkoittaa siis, että et ole ladannut objektia nimeltä "kaara" (tai jos olet ladannut, olet jo ehtinyt poistaa sen). Objekti ladattaisiin siis näin: objekti = LoadObject( "polku\kaara.png", pyöritysarvo )
Eli joko et ole muistanut ladata kyseistä objektia, tai sitten olet vahingossa ladannut sen esim. kuvana (LoadImage).
Pieni esimerkki. miten asia tehdään:
Suosittelen tekemään kuten VesQ sanoi. Silloin laittaisit ObjectIntegerin sijalle esimerkiksi muuttujan hp tyyliin:
hp = 50
---
hp = hp - 1
---
If hp < 0 Then ...
Grandi tarkoittaa siis, että et ole ladannut objektia nimeltä "kaara" (tai jos olet ladannut, olet jo ehtinyt poistaa sen). Objekti ladattaisiin siis näin: objekti = LoadObject( "polku\kaara.png", pyöritysarvo )
Eli joko et ole muistanut ladata kyseistä objektia, tai sitten olet vahingossa ladannut sen esim. kuvana (LoadImage).
Pieni esimerkki. miten asia tehdään:
Code: Select all
FrameLimit 40
cow = LoadObject( "Media\cow.bmp" )
ObjectInteger cow, 50
Repeat
If KeyDown( CbKeySpace ) Then
hp = ObjectInteger( cow )
ObjectInteger cow, hp - 1
EndIf
If ObjectInteger( cow ) < 0 Then
MakeError "Peli loppui!"
EndIf
Text 20, 20, "Space poistaa hp:ta"
Text 20, 40, "Health: " + ObjectInteger( cow )
DrawScreen
Forever
hp = 50
---
hp = hp - 1
---
If hp < 0 Then ...