CoolBasic tyyppimuuttuja -apua

Keskustelua tietokoneohjelmista ja käyttöjärjestelmistä.

CoolBasic tyyppimuuttuja -apua

Viesti pietari-poika 05 Loka 2007 14:58

Olen Coolbasicilla ohjelmoimassa 2d-peliä, johon tulee botteja. Botit tehdään tyyppikomentoja (TYPE ja FIELD) käyttäen. Myös luodit tehdään samalla tavalla.

Tyyppilistan läpikäymiseen tulee seuraavanlainen koodi:
Koodi: Valitse kaikki
For pati.AMMUKSET = Each AMMUKSET
    'tähän kaikille boteille suoritettavat komennot'
Next pati


Kysymys 1:
Jos haluan tarkistaa osuuko yksikään luoti yhteenkään bottiin, käykö seuraava koodi siihen?
Koodi: Valitse kaikki
For botti.BOTIT = Each BOTIT
   For luoti.AMMUKSET = Each AMMUKSET
   
   'ja tässä tarkistus'

Next luoti
Next botti


Kysymys 2:
Jos oletetaan että on kaupunki, jossa botit kävelevät ympäriinsä katuja pitkin, ja joka kadun kulmassa on eräänlainen checkpointti, joka lähettää botin seuraavalle checkpointille. Näin botit kulkisivat ympäri citiä. Ongelma tulee vastaan siinä kun botit tehdään tyypeillä ja niille voi antaa arvoja ainoastaan objectinteger(kokonaisluku)- ja objectfloat(desimaaliluku)-komennoilla ja niihin on vähän vaikea ahtaa esim. monien checkpointtien nimiä tai koordinaatteja. Miten ko. systeemi pitäisi tehdä? Onko helpompaa tapaa kuin se, että jokaisen objektin merkkijono-arvossa (annetaan käskyllä objectstring) on paljon kirjaimia ja jokainen checkpointti on oma kirjaimensa ja ohjelma tunnistaa vaikkapa että tuon ukon merkkijonokoodissa kolmas kirjain on k, joka merkkaa sitä että seuraavan paikan koordinaatit ovat xxx,xxx ja yyyy,yyy. Toivottavasti tajusitte tosta jotain :roll:

Ainiin. Vastaus pitäisi saada mahdollisimman nopeasti, koska lähden ihan kohta viikonlopuksi mökille.
Käyttäjän avatar
pietari-poika
 
Viestit: 3056

Re: CoolBasic tyyppimuuttuja -apua

Viesti DungeonMaster 05 Loka 2007 15:28

Kannattaisi kysyä vaan cb-foorumilta. eiköhän sieltä saa vastauksen parhaiten.
Yksinään hän vaeltaa mis' varjot lankeaa, Halki usvan ja roudan vain teräs seuranaan...
Sydämensä kylmä on kuin maa routainen, Mutta silmissään viha polttava kuin kiuas tulinen!
Käyttäjän avatar
DungeonMaster
 
Viestit: 822

Re: CoolBasic tyyppimuuttuja -apua

Viesti Matso 05 Loka 2007 19:49

pietari-poika kirjoitti:Kysymys 2:
Jos oletetaan että on kaupunki, jossa botit kävelevät ympäriinsä katuja pitkin, ja joka kadun kulmassa on eräänlainen checkpointti, joka lähettää botin seuraavalle checkpointille. Näin botit kulkisivat ympäri citiä. Ongelma tulee vastaan siinä kun botit tehdään tyypeillä ja niille voi antaa arvoja ainoastaan objectinteger(kokonaisluku)- ja objectfloat(desimaaliluku)-komennoilla ja niihin on vähän vaikea ahtaa esim. monien checkpointtien nimiä tai koordinaatteja. Miten ko. systeemi pitäisi tehdä? Onko helpompaa tapaa kuin se, että jokaisen objektin merkkijono-arvossa (annetaan käskyllä objectstring) on paljon kirjaimia ja jokainen checkpointti on oma kirjaimensa ja ohjelma tunnistaa vaikkapa että tuon ukon merkkijonokoodissa kolmas kirjain on k, joka merkkaa sitä että seuraavan paikan koordinaatit ovat xxx,xxx ja yyyy,yyy. Toivottavasti tajusitte tosta jotain :roll:

Ainiin. Vastaus pitäisi saada mahdollisimman nopeasti, koska lähden ihan kohta viikonlopuksi mökille.

Voit vaikkapa tallentaa siihen integer paikalle jokaselle botille oman id-numeron ja sitten tallennat kaikki tarvittavat tiedot siitä botista moniuloitteiseen taulukkoon joka voi olla esimerkiksi tän tapanen:

botin_id | coord_x | coord_y
botin_id | coord_x | coord_y
botin_id | coord_x | coord_y
botin_id | coord_x | coord_y

Sitten kun tarvitset botin tietoja, niin haet vaan sen bottiin tallennetun ID:n perusteella tosta taulukosta oikeen rivin ja siitä tiedot.
Tärkeitä linkkejä: Huuto.net ; Kahvi.ws ; matso.info ; KaLinks
Käyttäjän avatar
Matso
 
Viestit: 4878

Re: CoolBasic tyyppimuuttuja -apua

Viesti pietari-poika 07 Loka 2007 18:01

Matso kirjoitti:Voit vaikkapa tallentaa siihen integer paikalle jokaselle botille oman id-numeron ja sitten tallennat kaikki tarvittavat tiedot siitä botista moniuloitteiseen taulukkoon joka voi olla esimerkiksi tän tapanen:

botin_id | coord_x | coord_y
botin_id | coord_x | coord_y
botin_id | coord_x | coord_y
botin_id | coord_x | coord_y

Sitten kun tarvitset botin tietoja, niin haet vaan sen bottiin tallennetun ID:n perusteella tosta taulukosta oikeen rivin ja siitä tiedot.


Kiitosta, pitääpä väsätä tuollainen, mutta nyt on taas lisää ongelmia.

Kun kaikki botit kävelevät ympäri kaupunkia, ne törmäävät toisiinsa. Mutta ongelma on siinä että botit on tehty tyypeillä. Eihän kahdelle samaan tyyppikenttään kuuluville voi laittaa keskinäistä törmäystä? Vai voiko? Kun en voi tehdä esim. näin:
For bot.BOTIT=Each BOTIT
For bot.BOTIT=Each BOTIT

SetupCollision bot\bots,bot\bots,2,2,2

Next bot
Next bot

Siis eihän tuo toimi mitenkään, pelikin varmaan kaatuu, voiko edes kahden samaan kenttään kuuluvan objektin välillä olla minkäänlaista törmäystä? Nykyisellään botit vain kävelevät toisiensa läpi.
Käyttäjän avatar
pietari-poika
 
Viestit: 3056

Re: CoolBasic tyyppimuuttuja -apua

Viesti Matso 08 Loka 2007 20:18

Muistaakseni sielä coolbasicin esimerkeissä on joku törmäysesimerkkikin, ellen väärin muista.
Tärkeitä linkkejä: Huuto.net ; Kahvi.ws ; matso.info ; KaLinks
Käyttäjän avatar
Matso
 
Viestit: 4878

Re: CoolBasic tyyppimuuttuja -apua

Viesti pietari-poika 09 Loka 2007 14:47

Matso kirjoitti:Muistaakseni sielä coolbasicin esimerkeissä on joku törmäysesimerkkikin, ellen väärin muista.


Juu siis kyllä ne tiedän, mutta ongelma on siinä että 2 objektia, joiden välille törmäys tulee, ovat siinä samassa tyyppihommassa, johon pääsee käsiksi Each -komennolla, mutta miten saan niille keskinäisen törmäyksen kun molemmat ovat bot\bots -tunnuksella?
Käyttäjän avatar
pietari-poika
 
Viestit: 3056

Re: CoolBasic tyyppimuuttuja -apua

Viesti Regalis 06 Marras 2007 23:13

pietari-poika kirjoitti:
For bot.BOTIT=Each BOTIT
For bot.BOTIT=Each BOTIT

SetupCollision bot\bots,bot\bots,2,2,2

Next bot
Next bot

Siis eihän tuo toimi mitenkään, pelikin varmaan kaatuu, voiko edes kahden samaan kenttään kuuluvan objektin välillä olla minkäänlaista törmäystä? Nykyisellään botit vain kävelevät toisiensa läpi.

Olet varmaan jo löytänyt vastauksen kysymykseesi, mutta laitetaan nyt kuitenkin:
For bot.BOTIT=Each BOTIT
For bot2.BOTIT=Each BOTIT

SetupCollision bot\bots,bot\bots,2,2,2

Next bot2
Next bot
Käyttäjän avatar
Regalis
 
Viestit: 1621

Re: CoolBasic tyyppimuuttuja -apua

Viesti pietari-poika 07 Marras 2007 09:09

Regalis kirjoitti:Olet varmaan jo löytänyt vastauksen kysymykseesi, mutta laitetaan nyt kuitenkin:
For bot.BOTIT=Each BOTIT
For bot2.BOTIT=Each BOTIT

SetupCollision bot\bots,bot\bots,2,2,2

Next bot2
Next bot


Kiitoksia. En kyllä ollut saanut ratkaistua tuota. Pitääpä kokeilla.
Käyttäjän avatar
pietari-poika
 
Viestit: 3056

Re: CoolBasic tyyppimuuttuja -apua

Viesti pietari-poika 08 Marras 2007 14:36

Anteeksi tuplapost. Tuplapostasin siksi, että tämä viestini noteerattaisiin.

Sitten asiaan:

Juu että tuo Regalisin koodi ei toiminut, se herjaa vaan että "Memory Acces Violation".
Käyttäjän avatar
pietari-poika
 
Viestit: 3056

Palaa alueelle Ohjelmistot ja käyttöjärjestelmät