Re: Tyhmät kysymykset (I/2010)
Posted: Sun Jan 10, 2010 2:11 pm
On.Tyyppi wrote:Tuli muuten tällänen mieleen että onko Cool Basic:illa mahdollista tehdä minkään näköistä strategia peliä?
Game Making Should Be Easy...
https://www.coolbasic.com/phpBB3/
On.Tyyppi wrote:Tuli muuten tällänen mieleen että onko Cool Basic:illa mahdollista tehdä minkään näköistä strategia peliä?
Code: Select all
Code 57 in 'kansio\taso1.cb'
syntax error at line 159
can't understand the statement
Aja includetettu koodi pelkiltään. Silloin rivinumeron pitäisi olla oikein.Kille wrote:Nyt tuli ihan ihmeellinen ongelma: kun yritin includettaa koodiin toista koodia, joka on toiminut aina ennen, niin yhtäkkiä se pukkaa sitten virheilmoitusta:Hassuinta on se, ettei kyseisessä pätkässä ole kuin 13 riviä! Lisäksi se on toiminut aina ennen. Kyseistä pätkää en ole muokannut lainkaan.Code: Select all
Code 57 in 'kansio\taso1.cb' syntax error at line 159 can't understand the statement
ajatus virhe. hups. eli "Kuten Herra Siili..."
Herra Siili.JATothrim wrote:Kuten Grandi sanoi
Tuota varmasti ainakin tulee syntax virhe jos laitat Include text 0,0,"blabla"Kille wrote:Pelissäni on joka tasoa varten oma tiedostonsa ja kaikki tekevät täsmälleen samanlaisen ilmoituksen, vaikka ovat erilaisia. Koodissa ei ollut vikaa, virhe tuli, vaikka vaihdoin include-tiedostoksi pelkän "text 0,0,"blabla".
Siinä tapauksessa voisin veikata, että virhe sijaitsee siinä tiedostossa josta includetat muut tiedostot.Kille wrote:Pelissäni on joka tasoa varten oma tiedostonsa ja kaikki tekevät täsmälleen samanlaisen ilmoituksen, vaikka ovat erilaisia. Koodissa ei ollut vikaa, virhe tuli, vaikka vaihdoin include-tiedostoksi pelkän "text 0,0,"blabla".
Yritä siis poistaa kaikki includet ja katso antaako se sitten virhettä
Piirtämällä sellaisen ukkelin, jolla on ase kädessä.Walter Sullivan wrote:Onko mahdollista tehdä hahmolle ase, josta ammukset tulevat ja miten sen voisi kenties tehdä? Näyttäisi tyhmältä jos ukkeli ampuu raketteja mahasta. Kiitos etukäteen.
Walter varmaan tarkoitti sitä, että oppituntien esimerkeissä luoti kloonataan ampujan koordinaatteihin, jolloin näyttää siltä että luodit lähtevätkin mahasta.Chaosworm wrote:Piirtämällä sellaisen ukkelin, jolla on ase kädessä.Walter Sullivan wrote:Onko mahdollista tehdä hahmolle ase, josta ammukset tulevat ja miten sen voisi kenties tehdä? Näyttäisi tyhmältä jos ukkeli ampuu raketteja mahasta. Kiitos etukäteen.
Code: Select all
'Esimerkki 18 : Ammukset (osa 2)
'================================================
'! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
'Aja tämä ohjelma painamalla F5.
'Lopeta ohjelma painamalla ESC.
'! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
Type AMMUS 'luo kokoelma, jonka nimi on AMMUS
Field obj 'yksi kenttä nimeltään 'obj'
End Type
FrameLimit 40 'rajoita nopeutta
ukko=LoadObject("Media\soldier.bmp",72)
pati=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF
AddText "Nuolista ohjaa, CTRL=ampuu"
Repeat
'Ohjaa ukkoa NUOLILLA
If LeftKey() Then TurnObject ukko,5
If RightKey() Then TurnObject ukko,-5
If UpKey() Then MoveObject ukko,2
If DownKey() Then MoveObject ukko,-2
'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,ukko
'käännetään pati samaan suuntaan
CloneObjectOrientation luoti\obj,ukko
//////////////////////////////////////////////////////
//// SIIRRETÄÄN PANOSTA ETEENPÄIN PIIPUN KOHDALLE ////
//////////////////////////////////////////////////////
MoveObject luoti\obj,16
//////////////////////////////////////////////////////
//////////////////////////////////////////////////////
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 ObjectX(luoti\obj)<-180 Or ObjectX(luoti\obj)>180 Or ObjectY(luoti\obj)<-130 Or ObjectY(luoti\obj)>130 Then
'ammus ylittää rajan -> tuhoa se
DeleteObject luoti\obj 'poista objekti
Delete luoti 'poista luoti kokonaan
EndIf
Next luoti
'tämä ennen muuta grafiikkaa (box)
DrawGame
'piirrä "kenttä"
Color cbOrange
Box 20,20,360,260,OFF
DrawScreen
Until EscapeKey()
'Analyysi:
'------------------------------------------------
'Noin. Esimerkki toimii samalla tavalla kuin
'edellinen oppitunti, mutta on puolet lyhyempi,
'ja luultavasti selkeämpi. Ohjaussysteemi ja
'luotien törmäys on edelleen sama, muuttunutta
'on vain tapa, jolla ammuksia hallitaan.
'Ohjelman alussa luomme KOKOELMAN, jonne voidaan
'lisätä ja josta voidaan poistaa jäseniä. Aina
'kun uusi jäsen luodaan, sille monistetaan FIELD-
'kentällä määritellyt omat muuttujansa. Jokainen
'jäsen on siis yksilö ja erillinen kokonaisuus.
'Kun ammutaan, rivillä 31 luodaan uusi jäsen.
'Sillä on yksi muuttuja, johon sijoitamme objektin.
'Loppu on helppoa.
'Riviltä 43 alkaen läpikäymme kaikki kokoelman
'luodit. Elossa/Kuollut-kikkailuja ei tarvita.
'Huomaa erikoinen FOR-rakenne. Siellä on nyt EACH,
'jonka jälkeen kirjoitetaan kokoelman nimi.
'Erikoisinta on se, että luoti-muuttujalla on
'erikoinen tyyppi. Sen perään kirjoitetaan .AMMUS
'Tämä kertoo CoolBasicille, että muuttuja kuuluu
'kokoelmaan ja että sen avulla viitataan kokoelman
'jäseneen. Tyyppiä ei tarvitse määritellä kuin
'ensimmäisellä kerralla, sen jälkeen riittää
'pelkkä "luoti". Selvennykseksi olen kuitenkin
'kirjoittanut sen joka kerta kun sitä käytetään
'tavallaan "uuteen" tarkoitukseen.
'Tyypeistä (kokoelmista) tulee vielä paras ystäväsi.
'Opettele käyttämään niitä. Alkuhämmennyksen
'jälkeen ne ovat paljon kätevämpiä kuin taulukot.
'Lisää tietoa tyypeistä löydät manuaalista ja
'tyyppikomentojen oppaista ja esimerkeistä.
Ja sitten kun satut hipaisemaan sitä niin se muuttuu takas.axu wrote:Itse kierrän sen kirjoittamalla ensin sen tekstin, ja sitten kun pitäisi kirjoittaa lainausmerkki, kirjoitan jonkun kirjaimen ja kelaan takaisin siihen kohtaan ja painan inserttiä ja teen lainausmerkin: IDE ei huomaa mitään ja kaikki toimii kuten pitääkin
Code: Select all
Text 10,10,"fo"+"r"
Kyllähän se Textissä toki toimii, mutta koitappa tuota Case:ssa vaikka.skinkken wrote: Esim. for:ja tää on myös erityisen hankala koska jos laitetaan erikseen f ja or niin se laittaa sen or:n Or:ksiCode: Select all
Text 10,10,"fo"+"r"
Code: Select all
Text 0,0,Lower("For")
phons wrote:Tämän takia on kehitetty hieno funktio: Lower!
Code: Select all
Text 0,0,Lower("For")
Code: Select all
Select MyString$
Case Lower("For")
Case "Ne"+"xt"
Endselect