Page 74 of 78

Re: Tyhmät kysymykset (I/2010)

Posted: Tue Dec 21, 2010 10:04 pm
by TheFish
DJ-Filbe wrote:Tekstin tulostus tulostimesta Coolbasicilla? Tiedoston kirjoittaminen HTML-muodossa ja javascriptit, ja auki selaimeen helpoin tapa?
Oletko testannut windowsin print:iä?

Re: Tyhmät kysymykset (I/2010)

Posted: Thu Dec 23, 2010 4:50 pm
by Ilkka
Onko mahdollista on lukea tekstitiedostosta taulukoiden arvoja? Esim. Jos siellä on näin:

Code: Select all

123
123
123
on TAULUKKO(1,1) = 1, TAULUKKO(3,2) = 2 ja TAULUKKO(2,3) = 3.

Jos tää on mahollista ni miten vaikeeta tämmöne on toteuttaa?

EDIT:
Kiitoksia Jonezille. Just tuota tarkotin.

Re: Tyhmät kysymykset (I/2010)

Posted: Thu Dec 23, 2010 5:05 pm
by Awaclus
Ilkka wrote:Onko mahdollista on lukea tekstitiedostosta taulukoiden arvoja? Esim. Jos siellä on näin:

Code: Select all

123
123
123
on TAULUKKO(1,1) = 1, TAULUKKO(3,2) = 2 ja TAULUKKO(2,3) = 3.

Jos tää on mahollista ni miten vaikeeta tämmöne on toteuttaa?
Tuohonhan ei tarvita kuin For-looppi.

EDIT: oho, puhe olikin kaksiulotteisista taulukoista. My bad.

Onneksi Jonez selittikin jo aika hyvin, miten nuo onnistuu.

Re: Tyhmät kysymykset (I/2010)

Posted: Thu Dec 23, 2010 7:40 pm
by Jonez
Ilkka wrote:Onko mahdollista on lukea tekstitiedostosta taulukoiden arvoja?
Jos tarkoitat, että onko mahdollista lukea tekstitiedostosta taulukkoon arvoja, niin kyllä on. Käy luettava tekstitiedosto läpi while - wend-silmukassa, sekä jokainen luettu merkkijonon merkki läpi for-next-silmukassa. While-wend-silmukka pitää lukua 2-ulotteisen taulukon y-arvosta, kun taas for-next-silmukka huolehtii x-akselista. Kannattaa pitää huolta ettet kirjoita yli taulukon.

Tässä esimerkki:

Code: Select all

Const TAULU_KOKO_X = 4
Const TAULU_KOKO_Y = 4
Dim taulu( TAULU_KOKO_X, TAULU_KOKO_Y ) As String

//Avataan haluttu tiedosto lukemista varten.
f = OpenToRead( "filu.txt" )
    
    //Käydään koko tekstitiedosto läpi While ... Wend-silmukassa
    While Not EOF( f )  
        
        //luetaan seuraava rivi tiedostosta.
        lue$ = ReadLine( f )

        //Käydään luetun merkkijonon kaikki merkit erikseen läpi.
        For solu_x = 0 To Len( lue )
        
            //Kirjoitetaan merkki taulukkoon omalle paikalleen.
            //Kirjoitus tapahtuu vain jos ollaan vielä taulukon rajojen sisäpuolella.
            If solu_x <= TAULU_KOKO_X And solu_y <= TAULU_KOKO_Y Then taulu( solu_x, solu_y ) = Mid( lue, solu_x + 1, 1 )
        Next solu_x
        
        //solu_y kasvaa aina kun ollaan luettu yksi rivi.
        solu_y + 1
    Wend
CloseFile f

//Tulostetaan taulukon tiedot näytölle
For y = 0 To 4
    tulosta$ = ""
    For x = 0 To 4
        tulosta$ = tulosta$ + " " + taulu( x, y )
    Next x
    Print tulosta
Next y

WaitKey
Koodissa ei oteta huomioon, että jos taulukko täyttyy, kannattaa tekstitiedoston lukeminen lopettaa etukäteen. Jos luet todella pitkää tiedostoa, kaikki luetaan vaikka taulukko olisi täyttynyt aikoja sitten. Testasin seuraavanlaisella tekstiedostolla:
12345bss
12345wag
12345aeg
12345hra
12345gas
jvailoejsg

Re: Tyhmät kysymykset (I/2010)

Posted: Thu Dec 23, 2010 9:10 pm
by Akuji
Miten saisin laitettua viholliset ampumaan, kun ne näkevät pelaajan?

Code: Select all

If ObjectSight(enem\obj,player) Then
                PointObject enem\obj, player
                MoveObject enem\obj, 3.4
                ObjectOrder enem\obj,1
Endif

Re: Tyhmät kysymykset (I/2010)

Posted: Thu Dec 23, 2010 9:46 pm
by MrMonday
Akuji wrote:Miten saisin laitettua viholliset ampumaan, kun ne näkevät pelaajan?

Code: Select all

If ObjectSight(enem\obj,player) Then
                PointObject enem\obj, player
                MoveObject enem\obj, 3.4
                ObjectOrder enem\obj,1
Endif

Code: Select all

If Vihollinen näkee pelaajan then
                PointObject enem\obj, player
                MoveObject enem\obj, 3.4
                ObjectOrder enem\obj,1
                Ammu pelaajaa
EndIf
Eli tarkistat näkeekö vihollinen pelaajan, ja jos näkee, niin pistät vihollisen ampumaan pelaajaa kohti..
en ole varma ymmärsinkö kysymystäsi oikein, mutta haulla löydät miten toteutat ampumisen, ja editorista löydät ammuskelu esimerkin myös..

Re: Tyhmät kysymykset (I/2010)

Posted: Thu Dec 23, 2010 11:56 pm
by uurttu
koitin saada esimerkki 18,toimimaan funktiolla,mut heti tuli ongelmii
tulee mav tossa: luoti\obj=cloneobject(pati)

Code: Select all

Function  tee_ase()

    'Ammu-systeemi. Vain, jos ase on ladattu
     
        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            
        reload=5 'aseen lataus        
    
    '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
    
    End Function 

Re: Tyhmät kysymykset (I/2010)

Posted: Fri Dec 24, 2010 12:26 am
by valscion
uurttu wrote:koitin saada esimerkki 18,toimimaan funktiolla,mut heti tuli ongelmii
tulee mav tossa: luoti\obj=cloneobject(pati)
Sinulla on koodisi funktiossa, jolloin funktion ulkopuolella olevat, ei-globaalit muuttujat (kuten tuo pati-objektimuuttuja), eivät ole olemassa funktion sisällä. Tällöin kun yritetään käyttää ei-ladattua objektia, heittää CB Maailman Arvaamattomimman Virheilmoituksen.

Suosittelen katsomaan manuaalista avainsanan Function ohjeet. Ne löytyvät myös täältä CB:n sivuilta.

Re: Tyhmät kysymykset (I/2010)

Posted: Fri Dec 24, 2010 11:47 pm
by Peltsi
Morjens! Osaattekos sanoa tämmöseen ongelmaan mitään kun pelini ei toimi joillakin koneilla. Omalla (XP) ja vanhempien (XP) koneilla toimii, mutta kaverin miniläppärillä (XP) ja pöytäkoneella (7) ei toimi... Ilmoitus "Can't load map..." ponnahtaa esiin ajettaessa... Pelissä jokin vika?? Kiitoksia jo etukäteen!

PS. Hyvää joulua kaikille! :D

Re: Tyhmät kysymykset (I/2010)

Posted: Fri Dec 24, 2010 11:55 pm
by Viltzu
Peltsi wrote:Morjens! Osaattekos sanoa tämmöseen ongelmaan mitään kun pelini ei toimi joillakin koneilla. Omalla (XP) ja vanhempien (XP) koneilla toimii, mutta kaverin miniläppärillä (XP) ja pöytäkoneella (7) ei toimi... Ilmoitus "Can't load map..." ponnahtaa esiin ajettaessa... Pelissä jokin vika?? Kiitoksia jo etukäteen!

PS. Hyvää joulua kaikille! :D
Osaatko suomentaa "Can't Load Map"? Missähän siis voisi olla vika? Oisko suomeksi "Karttaa ei voi ladata"? Jep. Oletko varma että kartta on siellä mistä peli yrittää ladata sen? Esim "pelin suorituskansio/media/mappi.jotai". Pelin suorituskansio on siis se missä se exe on. Jos koodissasi on vain "LoadMap("Media/mappi.jotai")" niin mapin pitää olla noin miten sanoin. Mutta jos siellä on jotain C:\porkkana\ nii sitten sen pitää olla tuolla. blaa. Tästäki asiaa ois varmasti löytyny haulla. Ja siel yhdes topikis mitä en muista ja vatuttaa ja näin ku tälläsii vastailen. Haluun kouluun. Puhun tänne ny niinku irkkiin hihi. Pettis ootko tääl?
EDIT:

Onneks olin viel hereil kunnol tuoho aikaa ku kirjotin ton viestin.


Re: Tyhmät kysymykset (I/2010)

Posted: Sat Dec 25, 2010 1:17 pm
by TheFish
Peltsi wrote:Morjens! Osaattekos sanoa tämmöseen ongelmaan mitään kun pelini ei toimi joillakin koneilla. Omalla (XP) ja vanhempien (XP) koneilla toimii, mutta kaverin miniläppärillä (XP) ja pöytäkoneella (7) ei toimi... Ilmoitus "Can't load map..." ponnahtaa esiin ajettaessa... Pelissä jokin vika??
Viltzu wrote: harvinaisen epäselvä viesti...
Elikkä vielä selkeytyksenä katso usein ihmeteltyjen ongelmien neljäs kohta.

Re: Tyhmät kysymykset (I/2010)

Posted: Sat Dec 25, 2010 2:39 pm
by Peltsi
Viltzu wrote:
Peltsi wrote:Morjens! Osaattekos sanoa tämmöseen ongelmaan mitään kun pelini ei toimi joillakin koneilla. Omalla (XP) ja vanhempien (XP) koneilla toimii, mutta kaverin miniläppärillä (XP) ja pöytäkoneella (7) ei toimi... Ilmoitus "Can't load map..." ponnahtaa esiin ajettaessa... Pelissä jokin vika?? Kiitoksia jo etukäteen!

PS. Hyvää joulua kaikille! :D
Osaatko suomentaa "Can't Load Map"? Missähän siis voisi olla vika? Oisko suomeksi "Karttaa ei voi ladata"? Jep. Oletko varma että kartta on siellä mistä peli yrittää ladata sen? Esim "pelin suorituskansio/media/mappi.jotai". Pelin suorituskansio on siis se missä se exe on. Jos koodissasi on vain "LoadMap("Media/mappi.jotai")" niin mapin pitää olla noin miten sanoin. Mutta jos siellä on jotain C:\porkkana\ nii sitten sen pitää olla tuolla. blaa. Tästäki asiaa ois varmasti löytyny haulla. Ja siel yhdes topikis mitä en muista ja vatuttaa ja näin ku tälläsii vastailen. Haluun kouluun. Puhun tänne ny niinku irkkiin hihi. Pettis ootko tääl?
Miten selität tämän: Koodissa lukee: LoadMap("kartta.til") ja kartta on Tiedostot kansiossa (eli: Pelin suorituskansio\Tiedostot) ja peli toimii hyvin (ainakin omalla ja vanhempien koneella. Mutta kun laitat LoadMap("Tiedostot\kartta.til") niin ei toimi edes omalla koneella... Varmasti ei kirjoitusvirheitä (Tarkastettu muutamasti, ja vielä kerran päälle).

Re: Tyhmät kysymykset (I/2010)

Posted: Sat Dec 25, 2010 3:09 pm
by DJ-Filbe
CB-ohjelma käyntiin windowsin käynnistyessä???

Code: Select all

Include "cbAPI.cb"
SetRegistryString(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Run", "CB-ohjelma", path$)
?

Re: Tyhmät kysymykset (I/2010)

Posted: Sun Dec 26, 2010 4:30 pm
by MAV
miks tästä koodista tulee mav

Code: Select all

SCREEN 800,600

Include "SDK\include\cbMap.cb"

Type zombiet
Field obj
End Type

kartta=LoadMap("media\testmap.til","media\tileset.bmp")
zombi_kuva=LoadObject("Media\soldier.bmp",72)

For  i=0 To 10
zombi.zombiet= New(zombiet)

zombi\obj=CloneObject(zombi_kuva)

spawnobject(zombi\obj)

Next i


Repeat

DrawScreen
Forever 

Re: Tyhmät kysymykset (I/2010)

Posted: Sun Dec 26, 2010 4:45 pm
by Frozen
MAV wrote:miks tästä koodista tulee mav

Code: Select all

SCREEN 800,600

Include "SDK\include\cbMap.cb"

Type zombiet
Field obj
End Type

kartta=LoadMap("media\testmap.til","media\tileset.bmp")
zombi_kuva=LoadObject("Media\soldier.bmp",72)

For  i=0 To 10
zombi.zombiet= New(zombiet)

zombi\obj=CloneObject(zombi_kuva)

spawnobject(zombi\obj)

Next i


Repeat

DrawScreen
Forever 
tuota.. spawnobject? Jos tuo on se spawnobject-functio minkä minä tiedän, niin siinä pitää laittaa myös tilenumero ja objectin kulma

Re: Tyhmät kysymykset (I/2010)

Posted: Mon Dec 27, 2010 12:14 am
by naputtelija
DJ-Filbe wrote:CB-ohjelma käyntiin windowsin käynnistyessä???

Code: Select all

Include "cbAPI.cb"
SetRegistryString(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Run", "CB-ohjelma", path$)
?
Kyllä tuo varmaan kävisi.

Ja nyt kun offia en viitsi tänne laittaa niin katsokaapa offtopicin viimeisin viesti by naputtelija.

Re: Tyhmät kysymykset (I/2010)

Posted: Tue Dec 28, 2010 12:20 am
by lagaaja
miks fps aina romahtelee välillä =D.Jos ajan tollasta ohjelmaa joka ei tee muutakun näyttää fps,niin fps on jotai 400-500.sitte jos siinä näytöllä on yksi objekti jota liikuttelen fps on jotain ~300.Ja jos ohjelmassa on vähänkin enemmän koodi rivejä ja muuta niin fps on aina tasan 76 o.0.

Re: Tyhmät kysymykset (I/2010)

Posted: Tue Dec 28, 2010 3:38 am
by koodaaja
FPS:n epätasainen tippuminen on jokin kummallinen CB:n pelimoottorin ominaisuus. Muita kieliä käytettäessä FPS tippuu ensin kovin nopeasti ja sitten hitaammin, mutta ilman hyppyjä.

Re: Tyhmät kysymykset (I/2010)

Posted: Tue Dec 28, 2010 3:26 pm
by JATothrim
lagaaja wrote:miks fps aina romahtelee välillä =D.Jos ajan tollasta ohjelmaa joka ei tee muutakun näyttää fps,niin fps on jotai 400-500.sitte jos siinä näytöllä on yksi objekti jota liikuttelen fps on jotain ~300.Ja jos ohjelmassa on vähänkin enemmän koodi rivejä ja muuta niin fps on aina tasan 76 o.0.
Ole iloinen, että fps on ylipäätään suurempi kuin 60, joka on tunnettu "raja-arvo" CB-peleissä. ko. raja oli yleensä näytön Hz lukema. CB ei käytä alunperin laitteisto kiihdytystä millään tavoin, vaan piirtää kaiken 'Blittaamalla' kuvia framebufferiin CPU:lla. Windows Vistan ja seiskan tullen CB-pelit ovat tulleet 'epäsuorasti laitteistokiihdytetyiksi', jolloin riippuu näytönohjaimen ajureista miten kyseinen blittaus operaatio tapahtuu.

Re: Tyhmät kysymykset (I/2010)

Posted: Tue Dec 28, 2010 8:19 pm
by Nameless_One
Haluaisin tehdä ohjelman, joka skannaa koko tilekartan läpi etsien datatilen(jonka arvo on yksi) ja sijoittaa objektin tilen paikalle. Ongelma on, etten tiedä hyvää tapaa muuntaa tilekartan koordinaatit maailman tai ruudun koordinaateiksi, varsinkaan jos kartan koko ei ole vakio. Mikä neuvoksi?