Tyhmät kysymykset (II/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Tyhmät kysymykset (II/2009)

Post by Koodiapina »

Unrar. Toimii niin Linuxissa kuin Windowsissakin.
matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by matti3 »

jaahas. :O
Miksei ukkoni ammu?

Code: Select all

Dim AMMUS_ELOSSA(100) 'onko ammus elossa vai vapaa
Dim AMMUS_OBJ(100)    'sisältää ammuksen ukkoektin

FrameLimit 60
SCREEN 640, 480

AddText "Ladataan..."
DrawScreen
nappi = LoadObject("grafiikat/nappi.bmp", 1)
nappi_1 = LoadObject("grafiikat/nappi.bmp", 1)
ClearText
PositionObject nappi, -200, 200
PositionObject nappi_1, -200, 100

Repeat
Text 0,300, "X: " +MouseX()
Text 0,320, "Y: " +MouseY()
Locate 30,15
AddText "Aloita peli"
Locate 30,115
AddText "Free fight"
If MouseX() > 25 And MouseX() < 215 And MouseY() >5 And MouseY() < 75 Then
   if MouseHit(1) Then
   Goto Peli_alkaa
   EndIf
EndIf
If MouseX() > 25 And MouseX() < 215 And MouseY() >105 And MouseY() < 175 Then
   if MouseHit(1) Then
   Goto Vapaa_taistelu
   EndIf
EndIf



DrawScreen
Forever

Peli_alkaa :
ClearText
ShowObject nappi, OFF
ShowObject nappi_1, OFF
AddText "Metal War is something new. Something. What no one can explain."
AddText "1000 metal tank attack. I'am alone. What i do?"
DrawScreen
WaitKey //wait 5000
AddText "Correct. Try go some hide place."
WaitKey // wait 2000
AddText "I hideing 20minutes and then i saw U.S.A helicopter"
AddText "I try sway. It was really good they see me. Then one tank shoot and it collison"
AddText "Helicopter and another shoot me."
AddText ""
AddText "Paina mitä tahansa."
DrawScreen
WaitKey
ClearText
AddText "It was my dad story. This war continued two years. I'am 18 years old."
AddText ""
AddText "Paina mitä tahansa."
DrawScreen
WaitKey
//mahdollinen soundi
AddText "Ladataan hahmoja..."
DrawScreen
ukko = LoadObject("grafiikat/hahmo_1.bmp",72)
pati=LoadObject("grafiikat\panos.bmp")
ShowObject pati,OFF
ClearText

Repeat

    If KeyDown(cbkeyw) Then MoveObject ukko, 2
    If KeyDown(cbkeys) Then MoveObject ukko, -2
    If KeyDown(cbkeya) Then TurnObject ukko, 5
    If KeyDown(cbkeyd) Then TurnObject ukko, -5
    
    'Ammu-systeemi. Vain, jos ase on ladattu
    If KeyDown(cbKeyRControl) And reload=0 Then    
        Gosub LisääAmmus        
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1

    'Päivitä kaikki ammukset
    GoSub PäivitäAmmukset

    'tämä ennen muuta grafiikkaa (box)
    DrawGame 
    
    DrawScreen

Until EscapeKey()
End
'-----------------------------------------------
LisääAmmus:
    'ammutaan, eli luodaan uusi pati
    'monistamalla ladattu pati ja asettamalla
    'se samaan paikkaan kuin ukko.
        
    'ensin tarkastetaan, onko paikoja vapaana
    For i=1 To 100
        If AMMUS_ELOSSA(i)=OFF Then
            'vapaa paikka löytyi, luodaan pati
                
            AMMUS_ELOSSA(i)=ON
            AMMUS_OBJ(i)=CloneObject(pati)
                
            'asetetaan pati samaan paikkaan
            CloneObjectPosition AMMUS_OBJ(i),ukko
                
            'käännetään pati samaan suuntaan
            CloneObjectOrientation AMMUS_OBJ(i),ukko
            
            reload=5 'aseen lataus
          
            'enempää paikka-tarkistuksia ei tarvita,
            'joten voimme paeta silmukasta
            Exit
        EndIf
    Next i
Return 'palaa takaisin pääsilmukkaan
'-----------------------------------------------
PäivitäAmmukset:
    'liikutetaan kaikkia ammuksia, ja katsotaan
    'törmäävätkö ne oransseihin seiniin. Jos
    'törmäävät, niin ne poistetaan ammuslistasta,
    'ja paikka vapautuu uudelle ammukselle.
    
    'käydään KAIKKI läpi
    For i=1 To 100
        If AMMUS_ELOSSA(i) Then
            MoveObject AMMUS_OBJ(i),6
            
            'tämä on inhottavan pitkä rivi-------------> -------------> -------------> -------------> ------------->
            'voit kuitenkin pilkkoa sen mielessäsi
            'OR:n erottamiin osiin...
            If ObjectX(AMMUS_OBJ(i))<-180 Or ObjectX(AMMUS_OBJ(i))>180 Or ObjectY(AMMUS_OBJ(i))<-130 Or ObjectY(AMMUS_OBJ(i))>130 Then
                'ammus ylittää rajan -> tuhoa se
                
                DeleteObject AMMUS_OBJ(i)
                
                'vapauta paikka tyhjäksi
                AMMUS_ELOSSA(i)=OFF
            EndIf
            
        EndIf
    Next i
Return 'palaa takaisin pääsilmukkaan


Vapaa_taistelu :
ClearText
ShowObject nappi, OFF
ShowObject nappi_1, OFF
AddText "Welcome free fight."
AddText "Here you can fight some your own war."
DrawScreen
WaitKey


Tuo on uusin peli ideani Metal war. Älkää välittäkö huonosta anklannista. Parannan sitä vielä. :D
Glory&Pride <--- selainpeli projektini

Pelilä<- yksi ylläpitämäni sivusto.

World leaders Ensimmäinen CoolBasic projektini
11v
Member
Posts: 73
Joined: Wed Jun 10, 2009 10:13 pm

Re: Tyhmät kysymykset (II/2009)

Post by 11v »

Kyllä se ampuu, se ei ammu jos olet sun rajaaman alueen ulkopuolella.

Code: Select all

If ObjectX(AMMUS_OBJ(i))<-180 Or ObjectX(AMMUS_OBJ(i))>180 Or ObjectY(AMMUS_OBJ(i))<-130 Or ObjectY(AMMUS_OBJ(i))>130 Then 
Tai sun piirtämä panos, on liian pieni :D

Tai painat väärää controlli. (Oikea on oikea control.)
Black city peleistä parhain
Sumppi
Active Member
Posts: 163
Joined: Wed Dec 03, 2008 8:07 pm

Re: Tyhmät kysymykset (II/2009)

Post by Sumppi »

matti3 wrote:jaahas. :O
Miksei ukkoni ammu?

Code: Select all

Dim AMMUS_ELOSSA(100) 'onko ammus elossa vai vapaa
Dim AMMUS_OBJ(100)    'sisältää ammuksen ukkoektin

FrameLimit 60
SCREEN 640, 480

AddText "Ladataan..."
DrawScreen
nappi = LoadObject("grafiikat/nappi.bmp", 1)
nappi_1 = LoadObject("grafiikat/nappi.bmp", 1)
ClearText
PositionObject nappi, -200, 200
PositionObject nappi_1, -200, 100

Repeat
Text 0,300, "X: " +MouseX()
Text 0,320, "Y: " +MouseY()
Locate 30,15
AddText "Aloita peli"
Locate 30,115
AddText "Free fight"
If MouseX() > 25 And MouseX() < 215 And MouseY() >5 And MouseY() < 75 Then
   if MouseHit(1) Then
   Goto Peli_alkaa
   EndIf
EndIf
If MouseX() > 25 And MouseX() < 215 And MouseY() >105 And MouseY() < 175 Then
   if MouseHit(1) Then
   Goto Vapaa_taistelu
   EndIf
EndIf



DrawScreen
Forever

Peli_alkaa :
ClearText
ShowObject nappi, OFF
ShowObject nappi_1, OFF
AddText "Metal War is something new. Something. What no one can explain."
AddText "1000 metal tank attack. I'am alone. What i do?"
DrawScreen
WaitKey //wait 5000
AddText "Correct. Try go some hide place."
WaitKey // wait 2000
AddText "I hideing 20minutes and then i saw U.S.A helicopter"
AddText "I try sway. It was really good they see me. Then one tank shoot and it collison"
AddText "Helicopter and another shoot me."
AddText ""
AddText "Paina mitä tahansa."
DrawScreen
WaitKey
ClearText
AddText "It was my dad story. This war continued two years. I'am 18 years old."
AddText ""
AddText "Paina mitä tahansa."
DrawScreen
WaitKey
//mahdollinen soundi
AddText "Ladataan hahmoja..."
DrawScreen
ukko = LoadObject("grafiikat/hahmo_1.bmp",72)
pati=LoadObject("grafiikat\panos.bmp")
ShowObject pati,OFF
ClearText

Repeat

    If KeyDown(cbkeyw) Then MoveObject ukko, 2
    If KeyDown(cbkeys) Then MoveObject ukko, -2
    If KeyDown(cbkeya) Then TurnObject ukko, 5
    If KeyDown(cbkeyd) Then TurnObject ukko, -5
    
    'Ammu-systeemi. Vain, jos ase on ladattu
    If KeyDown(cbKeyRControl) And reload=0 Then    
        Gosub LisääAmmus        
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1

    'Päivitä kaikki ammukset
    GoSub PäivitäAmmukset

    'tämä ennen muuta grafiikkaa (box)
    DrawGame 
    
    DrawScreen

Until EscapeKey()
End
'-----------------------------------------------
LisääAmmus:
    'ammutaan, eli luodaan uusi pati
    'monistamalla ladattu pati ja asettamalla
    'se samaan paikkaan kuin ukko.
        
    'ensin tarkastetaan, onko paikoja vapaana
    For i=1 To 100
        If AMMUS_ELOSSA(i)=OFF Then
            'vapaa paikka löytyi, luodaan pati
                
            AMMUS_ELOSSA(i)=ON
            AMMUS_OBJ(i)=CloneObject(pati)
                
            'asetetaan pati samaan paikkaan
            CloneObjectPosition AMMUS_OBJ(i),ukko
                
            'käännetään pati samaan suuntaan
            CloneObjectOrientation AMMUS_OBJ(i),ukko
            
            reload=5 'aseen lataus
          
            'enempää paikka-tarkistuksia ei tarvita,
            'joten voimme paeta silmukasta
            Exit
        EndIf
    Next i
Return 'palaa takaisin pääsilmukkaan
'-----------------------------------------------
PäivitäAmmukset:
    'liikutetaan kaikkia ammuksia, ja katsotaan
    'törmäävätkö ne oransseihin seiniin. Jos
    'törmäävät, niin ne poistetaan ammuslistasta,
    'ja paikka vapautuu uudelle ammukselle.
    
    'käydään KAIKKI läpi
    For i=1 To 100
        If AMMUS_ELOSSA(i) Then
            MoveObject AMMUS_OBJ(i),6
            
            'tämä on inhottavan pitkä rivi-------------> -------------> -------------> -------------> ------------->
            'voit kuitenkin pilkkoa sen mielessäsi
            'OR:n erottamiin osiin...
            If ObjectX(AMMUS_OBJ(i))<-180 Or ObjectX(AMMUS_OBJ(i))>180 Or ObjectY(AMMUS_OBJ(i))<-130 Or ObjectY(AMMUS_OBJ(i))>130 Then
                'ammus ylittää rajan -> tuhoa se
                
                DeleteObject AMMUS_OBJ(i)
                
                'vapauta paikka tyhjäksi
                AMMUS_ELOSSA(i)=OFF
            EndIf
            
        EndIf
    Next i
Return 'palaa takaisin pääsilmukkaan


Vapaa_taistelu :
ClearText
ShowObject nappi, OFF
ShowObject nappi_1, OFF
AddText "Welcome free fight."
AddText "Here you can fight some your own war."
DrawScreen
WaitKey


Tuo on uusin peli ideani Metal war. Älkää välittäkö huonosta anklannista. Parannan sitä vielä. :D
Ja kannattaisi kyllä tehdä itse nuo systeemit, eikä vain copypasteta oppitunneista.(varsinkaan siitä huonommasta vaihtoehdosta) ;)
Grandi wrote:Sumpille piste. Jos nimimerkin m-kirjain muutetaan r:ksi, p-kirjain v:ksi ja 3 viimeistä kirjainta "vor":iksi, saadaan "survivor", eli suomeksi selviytyjä. Melkoinen yhteensattuma!
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Tyhmät kysymykset (II/2009)

Post by phons »

Käytä tyyppejä... Paljon helpompaa ja on paljon asioita joita voit tehdä tyypeillä muttet taulukoilla(ainakaan kovin helposti). Kiitä ezbe:ä että opit, ehkä, tyypit: viewtopic.php?f=12&t=1618

Edit: Matti, kai tajusit että jos taulukkosi koko on tuossa 100 et voi ampua kuin 100 ammusta. Sinäänsä kätevä kutimäärän rajoitukseen ja niiden lisäämisen ReDim:llä, mutta vähän... vaarallista?
Last edited by phons on Fri Jul 03, 2009 12:18 pm, edited 1 time in total.
Image
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: Tyhmät kysymykset (II/2009)

Post by esa94 »

matti3 wrote:

Code: Select all

'sisältää ammuksen ukkoektin
Semi-off: Tämän takia ei kannata laittaa Replace all: obj -> ukko
Hene
Active Member
Posts: 122
Joined: Wed Apr 22, 2009 8:13 pm

Re: Tyhmät kysymykset (II/2009)

Post by Hene »

Minulla on tällä hetkellä pelissä 3 erilaista asetta, joilla ammutaan eri näppäimistä. Haulikolla ampuessa hahmo ei kuitenkaan käänny vasemmalle, missä vika? Muilla toimii normaalisti.

Code: Select all

 'Ammu-systeemi. Vain, jos ase on ladattu
    If KeyDown(cbKeyRAlt) And reload=0 Then 
    PlaySound ääniAmmu2,200
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati2) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,ukko                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation luoti\obj,ukko            
        reload=45 '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

    'Ammu-systeemi. Vain, jos ase on ladattu
    If KeyDown(cbKeyRq) And reload=0 Then    
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,ukko2                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation luoti\obj,ukko2            
        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

EDIT: Ja koodihan on copypastetettu jostain oppaasta, en ole vain jaksanut/ehtinyt kirjoittaa omaa, hiottua, versiota tuosta.
"Baby," I said. "I'm a genius but nobody knows it but me."
matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by matti3 »

Miksei tämä nyt tykkää toimia. Tarkoitus olisi, että jos ukko menee tuohon pisteeseen tulee teksti, koska se on perillä, mutta ei tule. Tuo ei ymmärrä niinkuin lainkaan, mitä ajan takaa. Repeatin pääte on, mutta ei tullut koodiin mukaan: :)

Code: Select all

Repeat
If ObjectX(ukko) > 630 And ObjectY(ukko) > 0 Then
    perilla=2
EndIf

If perilla=2 Then
    ShowObject ukko,OFF
    ShowObject Sotilas,OFF
    ShowObject Sotilas_1,OFF
    ShowObject Sotilas_2,OFF
    ShowObject Sotilas_3,OFF
    ShowObject Sotilas_4,OFF
    ShowObject Sotilas_5,OFF
    ShowObject Sotilas_6,OFF
    ShowObject Sotilas_7,OFF
    ShowObject Sotilas_8,OFF
    ShowObject Sotilas_9,OFF
    ShowObject Sotilas_10,OFF
    ShowObject Sotilas_11,OFF
    AddText "MOROOOO!!!"
    DrawScreen
EndIf

If perilla=1 Then
    MoveObject Sotilas, 2
    MoveObject Sotilas_1, 2
    MoveObject Sotilas_2, 2
    MoveObject Sotilas_3, 2
    MoveObject Sotilas_4, 2
    MoveObject Sotilas_5, 2
    MoveObject Sotilas_6, 2
    MoveObject Sotilas_7, 2
    MoveObject Sotilas_8, 2
    MoveObject Sotilas_9, 2
    MoveObject Sotilas_10, 2
    MoveObject Sotilas_11, 2
    MoveObject Boss, 3
EndIf
Glory&Pride <--- selainpeli projektini

Pelilä<- yksi ylläpitämäni sivusto.

World leaders Ensimmäinen CoolBasic projektini
Eräs Vierailija

Re: Tyhmät kysymykset (II/2009)

Post by Eräs Vierailija »

Hei taas kaikille.

Onko CB:llä mitään keinoa tarkistaa ajetaanko jotain ohjelmaa parhaillaan? Esimerkiksi ohjelma tekisi jotain, jos se havaitsisi Skypen olevan käynnissä.
Hene
Active Member
Posts: 122
Joined: Wed Apr 22, 2009 8:13 pm

Re: Tyhmät kysymykset (II/2009)

Post by Hene »

Noniin, jotain olen ilmeisesti oppaista missannut, kun saa musiikkia soimaan ikuisesti. Joku viitsisi muistuttaa, miten se tehtiin? : )
"Baby," I said. "I'm a genius but nobody knows it but me."
Sly_Jack0
Devoted Member
Posts: 612
Joined: Mon Dec 10, 2007 8:25 am

Re: Tyhmät kysymykset (II/2009)

Post by Sly_Jack0 »

Code: Select all

musa = PlaySound("media/SKBattle2.mp3")

Repeat
   If SoundPlaying(musa) = False
      musa = PlaySound("media/SKBattle2.mp3")
   Endif
Forever
Nassi_Setä
Advanced Member
Posts: 281
Joined: Sat Jun 28, 2008 5:19 pm
Location: Hämeessä miä

Re: Tyhmät kysymykset (II/2009)

Post by Nassi_Setä »

Hene koeta vaihtaa ampumis näppäintä tai tee aseen vaihto select:illä.

Aseen vaihto on helpointa tehdä(omasta mielestäni) select:illä, mutta jos tuo sinun: 'ampuu kolmesta näppäimestä kolmenlaisia kuteja'
kuuluu pelisi ideaan niin älä sitten muuta sitä. Toki saat muutta, muttei ole pakko.

Tässä pieni oppitunti 18:sta päälle tehty esimerkki aseen vaihdosta select:illä.

Code: Select all

Type AMMUS 'luo kokoelma, jonka nimi on AMMUS
    Field obj'yksi kenttä nimeltään 'obj'
    Field nopeus 'kenttä luodin nopeudelle
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"
AddText "1 pistooli"
AddText "2 konekivääri"


ase=1
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


    If KeyHit(2) Then ase=1 'jos painetaan ykköstä ammutaan pislalla
    If KeyHit(3) Then ase=2 'jos painetaan kakkosta ammutaan konarilla

    'jos painetaan oikeaa controllia ja reload on 0
    If KeyDown(157) And reload=0 Then 
        Select ase
            Case 1' pistooli
            
                luoti.AMMUS = New(AMMUS)'luodaan uusi pati 
                luoti\obj=CloneObject(pati)'tehään klooni
                luoti\nopeus=6 'laitetaan luodin nopeudeksi 6
                'asetetaan pati samaan paikkaan
                CloneObjectPosition luoti\obj,ukko                
                'käännetään pati samaan suuntaan
                CloneObjectOrientation luoti\obj,ukko
                reload=14' lataus aika
                
            Case 2' konekivääri
            
                luoti.AMMUS = New(AMMUS)'luodaan uusi pati 
                luoti\obj=CloneObject(pati)'tehään klooni
                luoti\nopeus=6 'laitetaan luodin nopeudeksi nyt myös 6
                'asetetaan pati samaan paikkaan
                CloneObjectPosition luoti\obj,ukko                
                'käännetään pati samaan suuntaan
                CloneObjectOrientation luoti\obj,ukko
                reload=4' lataus aika on nyt pienempi ja kuteja tulee nopeammin
        
        EndSelect 
    EndIf 

    If reload>0 Then reload=reload-1
    
    For luoti.AMMUS = Each AMMUS 
        MoveObject luoti\obj,luoti\nopeus' liikutetaan luotia 
        
        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()
\../(-_-)\../ <---klick MyBrute Image
Jotain evilii on tekeillä....
Hene
Active Member
Posts: 122
Joined: Wed Apr 22, 2009 8:13 pm

Re: Tyhmät kysymykset (II/2009)

Post by Hene »

Kiitokset edellisistä vastauksista :)

Onko mitenkään mahdollista tehdä peliin "koodeja" niin, että esim kirjoittamalla "Auto" saa pelikentälle auton? Eli voiko CB:lle luoda käskyjä, jotka pannaan toimeen kun kirjoitettu yksi kokonainen sana?
"Baby," I said. "I'm a genius but nobody knows it but me."
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Tyhmät kysymykset (II/2009)

Post by Awaclus »

Hene wrote:Kiitokset edellisistä vastauksista :)

Onko mitenkään mahdollista tehdä peliin "koodeja" niin, että esim kirjoittamalla "Auto" saa pelikentälle auton? Eli voiko CB:lle luoda käskyjä, jotka pannaan toimeen kun kirjoitettu yksi kokonainen sana?
Purkkainen, mutta toimiva tapa:

Code: Select all

Repeat

    If KeyHit(cbkeya) = True And koodi = False Then koodi = 1
    If KeyHit(cbkeyu) = True And koodi = 1 Then koodi = 2
    If KeyHit(cbkeyt) = True And koodi = 2 then koodi + 1
    If KeyHit(cbkeyo) = True And koodi = 3 Then koodi = 2+2

    If koodi = 4 Then saa_pelikentalle_auton()

Forever
DatsuniG
Advanced Member
Posts: 367
Joined: Fri Aug 15, 2008 9:57 pm

Re: Tyhmät kysymykset (II/2009)

Post by DatsuniG »

Hene wrote:Kiitokset edellisistä vastauksista :)

Onko mitenkään mahdollista tehdä peliin "koodeja" niin, että esim kirjoittamalla "Auto" saa pelikentälle auton? Eli voiko CB:lle luoda käskyjä, jotka pannaan toimeen kun kirjoitettu yksi kokonainen sana?

Code: Select all

Dim code As String 

Repeat
val = GetKey() ' Luetaan GetKey() muuttujaan
If val <> 0 Then ' Jos näppäintä on painettu
    code = code + Chr(val) ' Lisätää kirjain
    keyPressed = Timer() ' Aloitetaan ajastin
EndIf 
If timer() - keyPressed > 4000 Then code = "" ' Nollataan merkkijono jos näppäimiä ei ole painettu
If code = "end" Then End ' Jos on kirjoitettu end niin lopetetaan ohjelma
DrawScreen
Forever
Hengität nyt manuaalisesti.
matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by matti3 »

Niin osaako joku auttaa?

Miksei tämä nyt tykkää toimia. Tarkoitus olisi, että jos ukko menee tuohon pisteeseen tulee teksti, koska se on perillä, mutta ei tule. Tuo ei ymmärrä niinkuin lainkaan, mitä ajan takaa. Repeatin pääte on, mutta ei tullut koodiin mukaan: :)

Code: Select all

Repeat
If ObjectX(ukko) > 630 And ObjectY(ukko) > 0 Then
    perilla=2
EndIf

If perilla=2 Then
    ShowObject ukko,OFF
    ShowObject Sotilas,OFF
    ShowObject Sotilas_1,OFF
    ShowObject Sotilas_2,OFF
    ShowObject Sotilas_3,OFF
    ShowObject Sotilas_4,OFF
    ShowObject Sotilas_5,OFF
    ShowObject Sotilas_6,OFF
    ShowObject Sotilas_7,OFF
    ShowObject Sotilas_8,OFF
    ShowObject Sotilas_9,OFF
    ShowObject Sotilas_10,OFF
    ShowObject Sotilas_11,OFF
    AddText "MOROOOO!!!"
    DrawScreen
EndIf

If perilla=1 Then
    MoveObject Sotilas, 2
    MoveObject Sotilas_1, 2
    MoveObject Sotilas_2, 2
    MoveObject Sotilas_3, 2
    MoveObject Sotilas_4, 2
    MoveObject Sotilas_5, 2
    MoveObject Sotilas_6, 2
    MoveObject Sotilas_7, 2
    MoveObject Sotilas_8, 2
    MoveObject Sotilas_9, 2
    MoveObject Sotilas_10, 2
    MoveObject Sotilas_11, 2
    MoveObject Boss, 3
EndIf
Glory&Pride <--- selainpeli projektini

Pelilä<- yksi ylläpitämäni sivusto.

World leaders Ensimmäinen CoolBasic projektini
jesperx96
Active Member
Posts: 190
Joined: Sun Nov 23, 2008 9:35 am
Location: Lappajärvi

Re: Tyhmät kysymykset (II/2009)

Post by jesperx96 »

Code: Select all

Repeat
If ObjectX(ukko) > 630 And ObjectY(ukko) > 0 Then
    perilla=2
EndIf

If perilla=2 Then
    ShowObject ukko,OFF
    ShowObject Sotilas,OFF
    ShowObject Sotilas_1,OFF
    ShowObject Sotilas_2,OFF
    ShowObject Sotilas_3,OFF
    ShowObject Sotilas_4,OFF
    ShowObject Sotilas_5,OFF
    ShowObject Sotilas_6,OFF
    ShowObject Sotilas_7,OFF
    ShowObject Sotilas_8,OFF
    ShowObject Sotilas_9,OFF
    ShowObject Sotilas_10,OFF
    ShowObject Sotilas_11,OFF
    AddText "MOROOOO!!!"
    DrawScreen
EndIf

If perilla=1 Then
    MoveObject Sotilas, 2
    MoveObject Sotilas_1, 2
    MoveObject Sotilas_2, 2
    MoveObject Sotilas_3, 2
    MoveObject Sotilas_4, 2
    MoveObject Sotilas_5, 2
    MoveObject Sotilas_6, 2
    MoveObject Sotilas_7, 2
    MoveObject Sotilas_8, 2
    MoveObject Sotilas_9, 2
    MoveObject Sotilas_10, 2
    MoveObject Sotilas_11, 2
    MoveObject Boss, 3
Et lataa objekteja joita yrität käyttää missään vaiheessa. :mrgreen:
Erehtyminen on inhimillistä, älä välitä.
We see the lines in chalk
The warning signs in where we walk
In the shadows of the cities maze
To try and fight for better days
JATothrim
Tech Developer
Tech Developer
Posts: 606
Joined: Tue Aug 28, 2007 6:46 pm
Location: Kuopio

Re: Tyhmät kysymykset (II/2009)

Post by JATothrim »

jesperx96 sanoikin jo vastauksen, mutta haluan sanoa koodista erään toisen seikan. Eikö sinusta 11 sotilaan liikuttaminen tuolla tavoin ole hieman huono ja työläs idea? etsippäs manuaalista, wanha - hyvä, taulukko opas/esimerkki, jossa 5-100 laatikkoa pompii näytöllä.
EDIT:

Löytypäs. Dim komennon esimerkkissä on siis tuo laatikko jutska.

-On selkeästi impulsiivinen koodaaja joka...
ohjelmoi C++:lla rekursiivisesti instantioidun templaten, jonka jokainen instantiaatio instantioi sekundäärisen singleton-template-luokan, jonka jokainen instanssi käynistää säikeen tulostakseen 'jea'.
matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by matti3 »

Tein 11 objectia, koska jokaisella sotilaalla on oma persoona. :)

Ja anteeksi, mutta kuvat kyllä ladataan. :O

Code: Select all

ukko = LoadObject("grafiikat/hahmo_1.bmp",72)
Sotilas = LoadObject("grafiikat/hahmo_1.bmp",72)//ilkeä
Sotilas_1 = LoadObject("grafiikat/hahmo_1.bmp",72)//persoonallinen
Sotilas_2 = LoadObject("grafiikat/hahmo_1.bmp",72)//kaveri
Sotilas_3 = LoadObject("grafiikat/hahmo_1.bmp",72)//peloton
Sotilas_4 = LoadObject("grafiikat/hahmo_1.bmp",72)//Vitsailija
Sotilas_5 = LoadObject("grafiikat/hahmo_1.bmp",72)//Pelkuri
Sotilas_6 = LoadObject("grafiikat/hahmo_1.bmp",72)//ystävällinen
Sotilas_7 = LoadObject("grafiikat/hahmo_1.bmp",72)//Riemukas
Sotilas_8 = LoadObject("grafiikat/hahmo_1.bmp",72)//Peloton
Sotilas_9 = LoadObject("grafiikat/hahmo_1.bmp",72)//Herkkä
Sotilas_10 = LoadObject("grafiikat/hahmo_1.bmp",72)//Epäilyttävä
Sotilas_11 = LoadObject("grafiikat/hahmo_1.bmp",72)//Hullu
boss = LoadObject("grafiikat/hahmo_1.bmp",72)
pati=LoadObject("grafiikat\panos.bmp")
ShowObject pati,OFF
PositionObject ukko, 0,0
PositionObject boss, 100,0
PositionObject Sotilas, 0,50
PositionObject Sotilas_1, 0,100
PositionObject Sotilas_2, 0,150
PositionObject Sotilas_3, 0,-50
PositionObject Sotilas_4, 0,-100
PositionObject Sotilas_5, 0,-150
PositionObject Sotilas_6, -50,50
PositionObject Sotilas_7, -50,100
PositionObject Sotilas_8, -50,150
PositionObject Sotilas_9, -50,-50
PositionObject Sotilas_10, -50,-100
PositionObject Sotilas_11, -50,-150
TurnObject boss, 180
ClearText
AddText "Henri: Minun tehtäväni on kouluttaa teidät märkäkorvat"
AddText "taistelemaan."
DrawScreen
Wait 5000
ClearText
AddText "Henri: Ensimmäisenä tehtävä käsken teidät juoksemaan ampuma radalle!"
DrawScreen
perilla=1
Wait 5000
TurnObject boss, 180
ClearText
Repeat
If ObjectX(ukko) > 630 And ObjectY(ukko) > 0 Then
    perilla=2
EndIf

If perilla=2 Then
    ShowObject ukko,OFF
    ShowObject Sotilas,OFF
    ShowObject Sotilas_1,OFF
    ShowObject Sotilas_2,OFF
    ShowObject Sotilas_3,OFF
    ShowObject Sotilas_4,OFF
    ShowObject Sotilas_5,OFF
    ShowObject Sotilas_6,OFF
    ShowObject Sotilas_7,OFF
    ShowObject Sotilas_8,OFF
    ShowObject Sotilas_9,OFF
    ShowObject Sotilas_10,OFF
    ShowObject Sotilas_11,OFF
    AddText "MOROOOO!!!"
    DrawScreen
EndIf

If perilla=1 Then
    MoveObject Sotilas, 2
    MoveObject Sotilas_1, 2
    MoveObject Sotilas_2, 2
    MoveObject Sotilas_3, 2
    MoveObject Sotilas_4, 2
    MoveObject Sotilas_5, 2
    MoveObject Sotilas_6, 2
    MoveObject Sotilas_7, 2
    MoveObject Sotilas_8, 2
    MoveObject Sotilas_9, 2
    MoveObject Sotilas_10, 2
    MoveObject Sotilas_11, 2
    MoveObject Boss, 3
EndIf
Glory&Pride <--- selainpeli projektini

Pelilä<- yksi ylläpitämäni sivusto.

World leaders Ensimmäinen CoolBasic projektini
DatsuniG
Advanced Member
Posts: 367
Joined: Fri Aug 15, 2008 9:57 pm

Re: Tyhmät kysymykset (II/2009)

Post by DatsuniG »

matti3 wrote:Tein 11 objectia, koska jokaisella sotilaalla on oma persoona. :)
Ja tämä vaikuttaa kuinka? Kuitenkin helpompaa hoitaa tämäkin taulukoilla.
Hengität nyt manuaalisesti.
Locked