Tyhmät kysymykset (I/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
User avatar
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset

Post by koodaaja » Thu Aug 07, 2008 9:32 pm

Niin, cbmap.cb. Ulkoinen kirjastohan se. Sinulla pitää olla alussa Include "cbmap.cp", ja sinulla pitää luonnollisesti olla kyseinen tiedosto. Siellä siis on määritelmä puttile3 -funktiolle.

ääni.tiedosto

Re: Tyhmät kysymykset

Post by ääni.tiedosto » Thu Aug 07, 2008 9:41 pm

Noh, kokeilin tuota juttua muokkaamalla vähän tuota esimerkkiä, mut iskee mavia? missä vika?

Code: Select all

FrameLimit 40  'rajoita nopeutta
DrawToWorld ON 'mahdollistaa piirtämisen maailmaan
Include "cbmap.cb"
'lataa kartta
kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp")
ObjectPickable kartta, ON 'aseta se poimittavaksi
PlayObject kartta,0,0,1 'animoi kartta

'lataa pelaaja
ukko = LoadObject ("Media\guy.bmp",72)

'lataa vihulainen
vihu = LoadObject ("Media\guy.bmp",72)
ObjectPickable vihu, 2 'aseta se poimittavaksi
PositionObject vihu, 32,150 'sijoita ylemmäs

'törmäykset
SetupCollision ukko, vihu, 2, 2, 2
'kartta-törmäykset on hyvä esitellä viimeiseksi
SetupCollision ukko, kartta, 1, 4, 2

Repeat

    'Ukon ohjaus
    If LeftKey() Then TurnObject ukko,5
    If RightKey() Then TurnObject ukko,-5
    If UpKey() Then MoveObject ukko,2
    If DownKey() Then MoveObject ukko,-2

    UpdateGame
    CloneCameraPosition ukko    
    
    DrawGame 'tämä komennetaan ennen piirtokomentoja
    
    puttile3(_0,_ukko,_2)

    DrawScreen 'piirrä näyttö

Forever

User avatar
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm
Contact:

Re: Tyhmät kysymykset

Post by Koodiapina » Thu Aug 07, 2008 9:48 pm

Käytät _ukkoa, jota ei kuitenkaan ole koodissa määritelty (Kolmanneksi viimeinen rivi). En ole perehtynyt tuon funktion tarvitsemiin parametreihin, joten en osaa sanoa, aiheuttaako juuri se MAVin. EDIT: Ja nuo muutkin parametrit näyttävät epäilyttäviltä.
Olen liian älykäs ollakseni väärässä. Jos olet kanssani eri mieltä, suosittelen sinua pohtimaan omaa elämänkatsomustasi ja sen perusteita.

ääni.tiedosto

Re: Tyhmät kysymykset

Post by ääni.tiedosto » Thu Aug 07, 2008 9:50 pm

Onhan tuolla loadobject kohassa toi "ukko"

User avatar
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm
Contact:

Re: Tyhmät kysymykset

Post by Koodiapina » Thu Aug 07, 2008 9:51 pm

ääni.tiedosto wrote:Onhan tuolla loadobject kohassa toi "ukko"
_ukko on tietokoneen mielestä eri asia kuin ukko.
Olen liian älykäs ollakseni väärässä. Jos olet kanssani eri mieltä, suosittelen sinua pohtimaan omaa elämänkatsomustasi ja sen perusteita.

ääni.tiedosto

Re: Tyhmät kysymykset

Post by ääni.tiedosto » Thu Aug 07, 2008 9:56 pm

Don't work :cry:

User avatar
valscion
Moderator
Moderator
Posts: 1588
Joined: Thu Dec 06, 2007 8:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset

Post by valscion » Thu Aug 07, 2008 9:57 pm

ääni.tiedosto wrote:Don't work :cry:
Kun käytät koodissasi "puttile3(_0,_ukko,_2)" niin poista siitä alaviivat, eli tee se näin:

Code: Select all

puttile3(0,ukko,2)
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

ääni.tiedosto

Re: Tyhmät kysymykset

Post by ääni.tiedosto » Thu Aug 07, 2008 10:01 pm

Ei pelaa ei...

User avatar
Ilkka
Active Member
Posts: 201
Joined: Mon Oct 08, 2007 8:01 am

Re: Tyhmät kysymykset

Post by Ilkka » Thu Aug 07, 2008 10:49 pm

Tämä ei ehkä ole ongelma mutta kysymys kuitenkin.:
Mistä saisin koiran haukunta äänen että kuuluisi vain yksi haukku.? ja mistä saisin
veden solinan äänen?
Image

User avatar
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset

Post by koodaaja » Thu Aug 07, 2008 11:44 pm

Veikkaus: sinulla ei ole cbmap.cb -tiedostoa samassa kansiossa lähdekoodisi kanssa? Laita se sinne.

Kiitos, mutta

Re: Tyhmät kysymykset

Post by Kiitos, mutta » Fri Aug 08, 2008 8:30 am

OonSuomesta wrote: Katso CB:stä komentojen StartSearch ja EndSearch esimerkit, ne valaisevat asiaa. Voit sitten ottaa tiedoston nimen ylös ja ladata sen myöhemmin vaikkapa kuvana.
Kiitos vastauksesta.

Lähinnä haluaisin että ohjelman käyttäjä voisi etsiä tiedostoja inputin avulla.
Eli etsittävän tiedoston nimi tai pääte kirjoitettaisiin inputtiin ja sen jälkeen kun tiedostot
löytyy niin inputin avulla sen voisi myös ladata. Eli kirjoittamalla tiedoston koko nimen.

Yksinkertainen esimerkkikoodi helpottaisi hahmottamista.

Ongelma

Re: Tyhmät kysymykset

Post by Ongelma » Fri Aug 08, 2008 8:43 am

Miksi tämä ei tulosta kolmea objectia vierekkäin näytölle??

Code: Select all

'This is your first CoolBasic program!
    SCREEN 800,600
    live=LoadObject("Media\cow.bmp")   
    Dim lives(100)
    ShowObject live,OFF
    lives2=3
    
    For e=0 To lives2-1
             lives(i)=CloneObject(live)
             ShowObject lives(i),OFF
    Next e
    
    Repeat
        For a=0 To lives2-1
             PositionObject lives(i), -260-a*50,265
             ShowObject lives(i),ON
        Next a
        DrawScreen
    Until EscapeKey()

User avatar
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: Tyhmät kysymykset

Post by tuhoojabotti » Fri Aug 08, 2008 9:36 am

Värikäs wrote:Tämä ei ehkä ole ongelma mutta kysymys kuitenkin.:
Mistä saisin koiran haukunta äänen että kuuluisi vain yksi haukku.? ja mistä saisin
veden solinan äänen?
The FreeSound Project googleta (vaatii rekisteröinnin)
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”

User avatar
Ilkka
Active Member
Posts: 201
Joined: Mon Oct 08, 2007 8:01 am

Re: Tyhmät kysymykset

Post by Ilkka » Fri Aug 08, 2008 10:21 am

tuhoojabotti wrote:
Värikäs wrote:Tämä ei ehkä ole ongelma mutta kysymys kuitenkin.:
Mistä saisin koiran haukunta äänen että kuuluisi vain yksi haukku.? ja mistä saisin
veden solinan äänen?
The FreeSound Project googleta (vaatii rekisteröinnin)
Kts, koirahaukun löysinkin jo tuolta coolbasicin vapaa efekti ja ääni haku jutusta. :lol:
koitan tuolta ettii veden solinaa
Image

User avatar
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm
Contact:

Re: Tyhmät kysymykset

Post by Koodiapina » Fri Aug 08, 2008 10:53 am

Ongelma wrote:Miksi tämä ei tulosta kolmea objectia vierekkäin näytölle??

Code: Select all

blaa blaa
Käytät noissa for-loopeissa muuttujaa i, vaikka sen arvo on nolla. Eli kokeiles ensimmäisessä e ja toisessa a. Korjattu koodi:

Code: Select all

    SCREEN 800,600
    live=LoadObject("Media\cow.bmp")   
    Dim lives(100)
    ShowObject live,OFF
    lives2=3
   
    For e=0 To lives2-1
        lives(e)=CloneObject(live)
        ShowObject lives(e),OFF
    Next e
   
    Repeat
        For a=0 To lives2-1
            PositionObject lives(a), -260-a*50,265
            ShowObject lives(a),ON
        Next a
        DrawScreen
    Until EscapeKey()
Olen liian älykäs ollakseni väärässä. Jos olet kanssani eri mieltä, suosittelen sinua pohtimaan omaa elämänkatsomustasi ja sen perusteita.

Jonhu
Active Member
Posts: 186
Joined: Mon Aug 04, 2008 5:45 pm

Re: Tyhmät kysymykset

Post by Jonhu » Fri Aug 08, 2008 11:00 am

Jälleen propleema objektien poiston kanssa.. Miten saan poistettua kaikki objectit, ja aloitettua pelin alusta? Clearobjects käsky ei toimi. Lisäsin tähän elämät..

Code: Select all

    Type AMMUS
        Field obj%
    End Type

    Type VIHU
        Field obj%
    End Type

    
    //Const vihumäärä=2

    SCREEN 800,600
    FrameLimit 40 'rajoita nopeutta

    ukko=LoadObject("Media\soldier.bmp",72)
    cloonattava_vihu=LoadObject("Media\guy.bmp",72)
    pati=LoadObject("Media\bullet.bmp")
    target = LoadObject("Media\target.bmp")
    ääniAmmu = LoadSound ("Media\Blaster.wav")
    // AddText "Nuolista ohjaa, Hiiri=ampuu"
    music=ON
    taso=1
    lives=3
ase=1
start: 

    ShowObject pati,OFF

    ShowMouse OFF
    ShowObject cloonattava_vihu,OFF  
Peli:   
    For a=1 To taso*25
        vihumäärä=vihumäärä+1
    Next a

     //If Timer()>(aika+10*a) Then
       // aika=Timer()
    For i=1 To vihumäärä
        positionx=Rand(-3000,3000)
        positiony=Rand(-3000,3000)
        
        If positionx<800 And positionx>1 Then
            positionx=Rand(-3000,3000)
        EndIf
        If positiony<600 And positiony>1 Then
            positiony=Rand(-3000,3000)
        EndIf
            
        maara.VIHU = New(VIHU)
        maara\obj=CloneObject(cloonattava_vihu)
        PositionObject maara\obj, positionx,positiony
        SetupCollision maara\obj, ukko,2,2,2
                
   Next i
     //   EndIf
    If ase=2 Then
        ase_luoteja=3
    EndIf
    If ase=1 Then
        ase_luoteja=1
    EndIf
    osumat=0
    Repeat
     
        PositionObject target,MouseWX(),MouseWY()

        If LeftKey() Then TurnObject ukko,5
        If RightKey() Then TurnObject ukko,-5
        If UpKey() Then MoveObject ukko,2
        If DownKey() Then MoveObject ukko,-2   
        PointObject ukko,target

       
        If MouseDown(1) And reload=0 Then   
            For luoteja=1 To ase_luoteja
                luoti.AMMUS = New(AMMUS) 'luo uusi ammus
                luoti\obj=CloneObject(pati) 'tee klooni
                CloneObjectPosition luoti\obj,ukko               
                PointObject luoti\obj,target
                CloneObjectOrientation ukko,luoti\obj
                TurnObject luoti\obj,Rand(-10,10)
                If music=ON Then
                    PlaySound ääniAmmu,50
                EndIf
                reload=5 'aseen lataus 
            Next luoteja
        EndIf

        If reload>0 Then reload=reload-1
        For luoti.AMMUS = Each AMMUS
            //ObjectLife luoti\obj,30
            MoveObject luoti\obj,6
            If ObjectX(luoti\obj)<-380 Or ObjectX(luoti\obj)>380 Or ObjectY(luoti\obj)<-280 Or ObjectY(luoti\obj)>280 Then           
                ShowObject luoti\obj,OFF
            EndIf       
            For maara.VIHU =Each VIHU
                If ObjectsOverlap(luoti\obj,maara\obj,1) Then
                    ShowObject luoti\obj,OFF
                    osumat=osumat+1
                    DeleteObject maara\obj
                    Delete maara //<--- Muista poistaa objectin lisäksi itse jäsen typestä.
                EndIf
            Next maara
            If (Distance2 (luoti\obj, ukko))>400 Then 
                DeleteObject luoti\obj
                Delete luoti
            EndIf
        Next luoti

        For maara.VIHU =Each VIHU
            PointObject maara\obj,ukko
            MoveObject maara\obj,3
            If ObjectsOverlap(ukko,maara\obj,2) Then
                    Color cbwhite
                    ShowObject ukko,OFF
                    ShowObject maara\obj,OFF
                    ShowMouse OFF
                    Repeat
                        PositionObject target,MouseWX(),MouseWY()
                        arial_big=LoadFont("arial",50,ON)
                        arial_normal=LoadFont("arial",20)
                        SetFont arial_big
                        If lives=0 Then
                            CenterText ScreenWidth()/2,ScreenHeight()/2-150,"Hävisit =("
                            CenterText ScreenWidth()/2,ScreenHeight()/2,"Pääsit tasolle "+vihumäärä/25+" asti"
                            SetFont arial_normal
                            Box 575,410,150,50,0
                            CenterText 650,425,"QUIT -->"
                            If MouseX()< 725 And MouseX()> 575 And MouseY()<460 And MouseY()>410 Then
                                If MouseDown(1) Then
                                    End
                                EndIf
                            EndIf
                        EndIf
  /////////////////////////////////ONGELMAKOHTA//////////////////////////
  /////////////////////////////////ONGELMAKOHTA//////////////////////
  /////////////////////////////////ONGELMAKOHTA//////////////////////
                        If lives=1 Or lives=2 Or lives=3 Then 
                            //ClearObjects
                            CenterText ScreenWidth()/2,ScreenHeight()/2-150,"Sinulla ON "+(lives-1)+ " elämää jäljellä"
                            CenterText ScreenWidth()/2,ScreenHeight()/2,"Tapoit "+osumat+" \ "+vihumäärä+" tällä tasolla"
                            SetFont arial_normal
                            Box 575,410,150,50,0
                            CenterText 650,425,"Jatka seuraavalle tasolle -->"
                                If MouseX()< 725 And MouseX()> 575 And MouseY()<460 And MouseY()>410 Then
                                    If MouseDown(1) Then                                   
                                        DeleteFont arial_normal
                                        ShowObject ukko,ON
                                        lives=lives-1
                                        Goto peli // menee riville 32
                                    EndIf
                                EndIf  
                        EndIf
                        DrawScreen
                    Until EscapeKey()
  /////////////////////////////////ONGELMAKOHTA päättyy(toivottavasti)//////////////////////
              
            EndIf
        Next maara

        DrawGame
       
        Color cbOrange
        Box 20,20,760,560,OFF 
        Text 1,1, "Elämiä jäljellä: "+(lives)
        Text 500,1, "Osumat: "+osumat+" / "+ vihumäärä
        Text 400,1, "FPS: "+FPS()
        Musa(music)                
        If MouseX()< 730 And MouseX()> 700 And MouseY()<21 And MouseY()>5 Then
          If MouseDown(1) Then
              Music=ON
          EndIf
        EndIf
        If MouseX()< 760 And MouseX()> 730 And MouseY()<21 And MouseY()>5 Then
          If MouseDown(1) Then
              Music=OFF
          EndIf
        EndIf
             
        DrawScreen
     
        If osumat=vihumäärä Then
            lvlcomplite(ukko,target,taso,vihumäärä)
            Goto start
        EndIf
        
   Until EscapeKey()
    
    
    
    
Function lvlcomplite(ukko,target,taso,vihumäärä)
        FrameLimit 10
        ShowObject ukko,OFF
        ShowMouse OFF
        Color cbwhite
        Repeat
            PositionObject target,MouseWX(),MouseWY()
            arial_big=LoadFont("arial",50,ON)  
            arial_normal=LoadFont("arial",20)  
            SetFont arial_big
            
            CenterText ScreenWidth()/2,ScreenHeight()/2-150,"ONNITTELUT"
            CenterText ScreenWidth()/2,ScreenHeight()/2,"Läpäisit tason "+vihumäärä/25
            
            SetFont arial_normal
            Box 575,410,150,50,0
            CenterText 650,425,"Seuraava taso -->"
            If MouseX()< 725 And MouseX()> 575 And MouseY()<460 And MouseY()>410 Then
                If MouseDown(1) Then
                    
                    taso=taso+1
                    FrameLimit 40
                    DeleteFont arial_normal
                    DeleteFont arial_big
                    ShowObject ukko,ON
                    Return start
                EndIf
            EndIf
            DrawScreen
        Until EscapeKey()
EndFunction


Function musa(music) 
      If Music=ON Then Color cbred
      If Music=OFF Then Color cborange
      Box 700,5,30,16,OFF 
      Text 705,6,"ON"
      If Music=OFF Then Color cbred
      If Music=ON Then Color cborange
      Box 730,5,30,16,OFF 
      Text 732,6,"OFF"
EndFunction    
    
    
Tekeillä pikkupelejä ja ohjelmia :)

onkelma hiiren kanssa

Re: Tyhmät kysymykset

Post by onkelma hiiren kanssa » Fri Aug 08, 2008 11:50 am

eli miks tää koodi ei toimi (oon tehny omat graffat GFX kansioon):

Code: Select all

'Normal box
prop_box=LoadObject("GFX\prop_box.bmp",72)
PositionObject prop_box,0,0

'Highlighted box
prop_box_hl=LoadObject("GFX\prop_box.bmp",72)
PositionObject prop_box,100000,100000

'Mouse
target=LoadObject("GFX\mouse.bmp")

Repeat

'jos hiiri menee boxin päälle, boxiin tulloo keltanen reuna (prop_box_hl)
If ObjectsOverlap(target,prop_box,1) Then CenterText 0,0,"Wipii!!!"

'Hiiri
PositionObject target,MouseWX(),MouseWY()
ShowMouse OFF

    DrawScreen

Until EscapeKey()
Eli tarkoitus olis saada paintobjektilla (tai piirtokomennoilla o_O) boxi highlightatuksi

Jonhu
Active Member
Posts: 186
Joined: Mon Aug 04, 2008 5:45 pm

Re: Tyhmät kysymykset

Post by Jonhu » Fri Aug 08, 2008 12:18 pm

eli miks tää koodi ei toimi (oon tehny omat graffat GFX kansioon):
Tein tälläsen, jos sinulla on kaksi kuvaa (toinen normaali, toinen sellainen, minkä haluat siitä tulevan, kun hiiri menee sen päälle). Muutin myös tekstin paikan, koska osaa siitä ei näkynyt.. kuvien ja tekstin koordinaatisto on eri!!

Code: Select all

prop_box=LoadObject("media\car2.bmp",72)
PositionObject prop_box,1,1

'Highlighted box
prop_box_hl=LoadObject("media\cow.bmp",72)
//PositionObject prop_box,1000,1000
ShowObject prop_box_hl,OFF
PositionObject prop_box_hl,1,1

'Mouse
target=LoadObject("media\target.bmp")

Repeat
    ShowObject prop_box_hl,OFF   //ei näytä kuvaa
    'jos hiiri menee boxin päälle, boxiin tulloo keltanen reuna (prop_box_hl)
    If ObjectsOverlap(target,prop_box,1) Then 
        CenterText ScreenWidth()/2,ScreenHeight()/2-100,"Wipii!!!"
        ShowObject prop_box_hl,ON    //näyttää kuvan
    EndIf
    
    'Hiiri
    PositionObject target,MouseWX(),MouseWY()
    ShowMouse OFF

    DrawScreen

Until EscapeKey()
Tekeillä pikkupelejä ja ohjelmia :)

onkelma hiiren kanssa

Re: Tyhmät kysymykset

Post by onkelma hiiren kanssa » Fri Aug 08, 2008 12:28 pm

Tuo herjaa minulla mavin

Jonhu
Active Member
Posts: 186
Joined: Mon Aug 04, 2008 5:45 pm

Re: Tyhmät kysymykset

Post by Jonhu » Fri Aug 08, 2008 12:43 pm

onkelma hiiren kanssa wrote:Tuo herjaa minulla mavin
Minulla ainakin tuo toimii noilla kuvilla... :| sinun kannattaa odottaa, sitten jonkun paremman apua..
Tekeillä pikkupelejä ja ohjelmia :)

Locked