Tyhmät kysymykset (II/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by matti3 »

Tein sen datoilla, mutta ei toimi koodit joita käytän...

Code: Select all



maali=MakeObject()
maali_data=99

For y_5=1 To MapWidth()
For x_5=1 To MapWidth()
    If GetMap2(3,x_5,y_5)>19 Then maali_data+1
    'way=maxdata
Next x_5
Next y_5

If ObjectsOverlap(ukko,maali) Then lap+1

Ja osaan datakerroksien lisäyksen jo, sekä kaikki muut kerrokset. :)
Glory&Pride <--- selainpeli projektini

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

World leaders Ensimmäinen CoolBasic projektini
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Tyhmät kysymykset (II/2009)

Post by phons »

Johtuisikohan se siitä, että otat kaksi kertaa kartan leveyden, siis x, että y kohdassa vaikka y kohassa pitäisi ottaa MapHeight(), joo tuosta näkeekin että otit tuon CB:n esimerkistä, koska se virhe oli siellä.
Image
matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by matti3 »

Ei johtunut siitä.
Glory&Pride <--- selainpeli projektini

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

World leaders Ensimmäinen CoolBasic projektini
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Tyhmät kysymykset (II/2009)

Post by phons »

Minulla on tällainen todella typerä ongelma, tiedän... Jostain kumman syystä se pääsi kahteen If:iin vaikka ne ovat elseillä... Pääongelma, nyt ei juuri ollut se, anteeksi tuli pieni moka... siis se on se pääongelma XD, siis yritin, tehdä sellaista että se piirtää neliöitä, vain neljään suuntaan, tämä on niinsanotusti pohjaa tienrakentamiseen...

Code: Select all

Repeat
    
    If MouseHit(1) And build_r = False Then
        build_r = True
        start_x_ = MouseWX()
        start_y_ = MouseWY()
        ClearMouse
        
    EndIf
    
    DrawGame
    
    If build_r = True Then
        
        road_angle = GetAngle(start_x_,start_y_,MouseWX(),MouseWY())
        road_angle = WrapAngle(road_angle)
        
        DrawToWorld ON
            
            If road_angle < 45 Or road_angle > 315 Then
                
                For x_ = start_x_ To MouseWX() Step 32
                    
                    Color cbWhite
                    Box x_,start_y_,32,32,0
                    
                Next x_
                
            ElseIf road_angle =< 315 Or road_angle > 225 Then
                
                For y_ = start_y_ To MouseWY() Step -32
                    
                    Color cbWhite
                    Box start_x_,y_,32,32,0
                    
                Next y_
                
            ElseIf road_angle =< 225 Or road_angle > 135 Then
                
                For x_ = start_x_ To MouseWX() Step -32
                    
                    Color cbWhite
                    Box x_,start_y_,32,32,0
                    
                Next x_
                
            ElseIf road_angle =< 135 Or road_angle > 45 Then
                
                For y_ = start_y_ To MouseWY() Step 32
                    
                    Color cbWhite
                    Box start_x_,y_,32,32,0
                    
                Next y_
                
            EndIf
            
        DrawToWorld OFF
         
    EndIf
    
    Text 0,0,road_angle
    
    DrawScreen
Until EscapeKey()
Edit: Siis, se, että nuo neliöt menevät moneen suuntaan, eli ylös\alas että sivuille... vaikka kaiken järjen mukaan niin ei pitäisi käydä kun käyttää ElseIf:iä...
Last edited by phons on Sun Aug 02, 2009 12:12 pm, edited 2 times in total.
Image
TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Tyhmät kysymykset (II/2009)

Post by TheFish »

phons wrote:Minulla on tällainen todella typerä ongelma, tiedän... Jostain kumman syystä se pääsi kahteen If:iin vaikka ne ovat elseillä... Pääongelma, nyt ei juuri ollut se, mutta siis yritin, tehdä sellaista että se piirtää neliöitä, vain neljään suuntaan, tämä on niinsanotusti pohjaa tienrakentamiseen...

Code: Select all

koodia
Jospa vaikka aloitat kertomalla mikä on ongelmana (siis hieman enemmän suomen kieliopin mukaisesti).
CoolBasic henkilökuntaa
Kehittäjä
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 3:48 pm
Location: Turku

Re: Tyhmät kysymykset (II/2009)

Post by skorpioni-cb »

Miten tehdään sellainen juttu että kun valot on päällä niin objecti varastoi valoa ja sitten kun valo olisi poissa niin objceti alkaisi loistaa?
EDIT:

Sain idean eräästä matkamuistosta.

EDIT:

off:
100 viestiä

En tiedä, mitä tiedän, mutta tiedän ettei se ole mitään kaunista.

I know not what I know, but I do know that it's not beautiful.
Feuer
Devoted Member
Posts: 520
Joined: Tue Jun 16, 2009 11:13 am
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by Feuer »

Code: Select all

While Soundplaying(biisi)=TRUE 'biisi on loadsoundilla määritelty .mp3
text x,y,isokasatietoja
wend
Tuottaa MAVin, warum?
Asus P8P67 LE/Intel Core i5 2500K/ GTX560/ 8GT RAM/750GT HDDt + 120GT SSD + 13" Macbook Pro
Blogi - Peräpohjola - MERPG
Character
Active Member
Posts: 113
Joined: Thu Nov 27, 2008 2:16 pm

Re: Tyhmät kysymykset (II/2009)

Post by Character »

Et voi käyttää käyttää SoundPlaying -komentoa LoadSoundin kanssa.
Lataa se näin: biisi = PlaySound(...blaa...)
matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by matti3 »

Miksei muuta kierrosten määrää?

Code: Select all


maali=MakeObject()
maali_data=99

For y_5=1 To MapHeigth()
For x_5=1 To MapWidth()
    If GetMap2(3,x_5,y_5)>19 Then maali_data+1
    'way=maxdata
Next x_5
Next y_5

If ObjectsOverlap(ukko,maali) Then lap+1

Tuosta koodista ei tapahdu oikeastaan mitään. :O
Glory&Pride <--- selainpeli projektini

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

World leaders Ensimmäinen CoolBasic projektini
User avatar
Substance
Active Member
Posts: 234
Joined: Fri Mar 14, 2008 5:48 pm

Re: Tyhmät kysymykset (II/2009)

Post by Substance »

matti3 wrote:Miksei muuta kierrosten määrää? Tuosta koodista ei tapahdu oikeastaan mitään. :O
Koska maali objektilla ei ole kuvaa, lataa se objektina tai maalaa se.
Substance aka LittleGreen
Red Encounter - shoot'em uppia - lataus
Pate5
Artist
Artist
Posts: 551
Joined: Tue Aug 28, 2007 4:53 pm
Location: Vantaa

Re: Tyhmät kysymykset (II/2009)

Post by Pate5 »

skorpioni-cb wrote:Miten tehdään sellainen juttu että kun valot on päällä niin objecti varastoi valoa ja sitten kun valo olisi poissa niin objceti alkaisi loistaa?
EDIT:

Sain idean eräästä matkamuistosta.

EDIT:

off:
100 viestiä

No aluksi varmaan tarvitaan animaatio sille objektille. Kun valot ovat päällä (esim. valot_paalla=1) niin objektin varastoimaa valoa kuvaavaa muuttujaa suurennetaan (esim. valoa_varastossa + 1), ja näytetään valaistun objektin kuva. Kun valot ovat pois päältä, näytetään hohtavan esineen kuva, ja varastoitua valoa kuvaavaa muuttujaa vähennetään. Kun muuttuja on nollassa, näytetään kuva pimeästä objektista. Animaatioon voi myös laittaa monta eri kirkkautta varastoidun valon määrän mukaan.
CoolBasic henkilökuntaa
Graafikko
Pate5
Artist
Artist
Posts: 551
Joined: Tue Aug 28, 2007 4:53 pm
Location: Vantaa

Re: Tyhmät kysymykset (II/2009)

Post by Pate5 »

LittleGreen wrote:
matti3 wrote:Miksei muuta kierrosten määrää? Tuosta koodista ei tapahdu oikeastaan mitään. :O
Koska maali objektilla ei ole kuvaa, lataa se objektina tai maalaa se.
Kyllä sen tuollakin koodilla pitäisi muuttua, koska objectsoverlap ei ole pikselintarkalla.

Ehkä vika on siinä, että auto ei kosketa maalia?
CoolBasic henkilökuntaa
Graafikko
matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by matti3 »

Pitäisi koskettaa ja tuohan on tehty data kerroksella. Radan leveys on 5 ruutua joten siinä on 5 saman arvoista data kerrosta.
Glory&Pride <--- selainpeli projektini

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

World leaders Ensimmäinen CoolBasic projektini
TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Tyhmät kysymykset (II/2009)

Post by TheFish »

matti3 wrote:Pitäisi koskettaa ja tuohan on tehty data kerroksella. Radan leveys on 5 ruutua joten siinä on 5 saman arvoista data kerrosta.
Ehkä olen vain liian väsynyt, mutta en kyllä näe mitään järkeä tuossa viestissä.

Maaliin törmääminen on tehty objektilla maali. En tiedä mitä yrität tehdä maali_data-muuttujalla, mutta et käytä sitä mihinkään tuossa koodinpätkässä. Muutenkaan tuo datakerroksen läpikäyminen ei tee mitään muuta kuin muuttaa maali_datan arvoa, eli se ei vaikuta maalin kokoon tai sijaintiin. Maali objektia ei tuossa sijoiteta mihinkään, tai muuteta sen kokoa mitenkään, joten se on (muistaakseni) 1x1 pikselin kokoinen objekti koordinaateissa (0, 0). Mielestäni on siis melko todennäköistä, että auto ei vain osu maaliin.
CoolBasic henkilökuntaa
Kehittäjä
matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by matti3 »

Mutta jos teen maali viivan objectilla niinkuin ylempänä näkyy niin kierros vaihtuu, mutta mitään muuta ei sitten tapahdukkaan. Sijoitus ei vaihdu jne. Sijoitus on koko ajan 0 tai 1 vaikka olisin neljäntenä vasta.
Glory&Pride <--- selainpeli projektini

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

World leaders Ensimmäinen CoolBasic projektini
TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Tyhmät kysymykset (II/2009)

Post by TheFish »

matti3 wrote:Mutta jos teen maali viivan objectilla niinkuin ylempänä näkyy niin kierros vaihtuu, mutta mitään muuta ei sitten tapahdukkaan. Sijoitus ei vaihdu jne. Sijoitus on koko ajan 0 tai 1 vaikka olisin neljäntenä vasta.
Millaisella koodilla yrität vaihtaa sijoitusta? Tuossa ylläolevassa sitä ei ainakaan ole mukana.
CoolBasic henkilökuntaa
Kehittäjä
matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by matti3 »

Tällaisella:

Code: Select all

If Distance2(ukko_oma, maali_viiva) < 50 Then
    If kierros = 2 Then
        lap=lap+1
        kierros=1
    EndIf
Else
kierros=2
EndIf

If Distance2(ukko, maali_viiva) < 50 Then
    If kierros_1 = 2 Then
        lap=lap+1
        kierros_1=1
    EndIf
Else
kierros_1=2
EndIf

If Distance2(ukko_1, maali_viiva) < 50 Then
    If kierros_2 = 2 Then
        lap=lap+1
        kierros_2=1
    EndIf
Else
kierros_2=2
EndIf

If Distance2(ukko_2, maali_viiva) < 50 Then
    If kierros_3 = 2 Then
        lap=lap+1
        kierros_3=1
    EndIf
Else
kierros_3=2
EndIf

If Distance2(ukko_3, maali_viiva) < 50 Then
    If kierros_4 = 2 Then
        lap=lap+1
        kierros_4=1
    EndIf
Else
kierros_4=2
EndIf

If Distance2(ukko_4, maali_viiva) < 50 Then
    If kierros_5 = 2 Then
        lap=lap+1
        kierros_5=1
    EndIf
Else
    kierros_5=2
EndIf
If lap = 17 Or lap > 16 Then

    If Distance2(ukko, maali_viiva) < 50 Then
        If kierros_1 = 2 Then
            sijoitus=sijoitus+1
        EndIf
    EndIf
    If Distance2(ukko_1, maali_viiva) < 50 Then
        If kierros_2 = 2 Then
            sijoitus=sijoitus+1
        EndIf
    EndIf
    If Distance2(ukko_2, maali_viiva) < 50 Then
        If kierros_3 = 2 Then
            sijoitus=sijoitus+1
        EndIf
    EndIf
    If Distance2(ukko_3, maali_viiva) < 50 Then
        If kierros_4 = 2 Then
            sijoitus=sijoitus+1
        EndIf
    EndIf
    If Distance2(ukko_4, maali_viiva) < 50 Then
        If kierros_5 = 2 Then
            sijoitus=sijoitus+1
        EndIf
    EndIf
    If Distance2(ukko, maali_viiva) < 50 Then
        If kierros_6 = 2 Then
            sijoitus=sijoitus+1
        EndIf
    EndIf
    If Distance2(ukko_oma, maali_viiva) < 50 Then
        If kierros = 2 Then
            sijoitus=sijoitus+1
            oma_sijoitus=sijoitus
        EndIf
    EndIf
    If sijoitus = 7 Then
        lap=4
    EndIf
EndIf
Glory&Pride <--- selainpeli projektini

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

World leaders Ensimmäinen CoolBasic projektini
TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Tyhmät kysymykset (II/2009)

Post by TheFish »

matti3 wrote:Tällaisella:

Code: Select all

...koodia...
Onko tuo siis samassa projektissa tuon aikaisemman koodin kanssa? Jos on, niin miksi sinulla on objektit maali_viiva ja maali? Kuitekin, tarvitsisit tuohon oman lap-muuttujan (mieluummin taulukolla) jokaiselle ukolle, koska eihän siitä tule kierrosta kaikille jos yksi ylittää maaliviivan.

Tuon saman muuten saisi taulukoilla tehtynä tiivistettyä tähän: (pidin kaiken logiikan samana)

Code: Select all

For i = 0 To 5
    If Distance2(ukot(i), maali_viiva) < 50 Then
        If kierrokset(i) = 2 Then
            If lap < 17 Then 
                lap = lap + 1
                kierrokset(i) = 1
            Else
                sijoitus = sijoitus + 1
                If i = 0 Then
                    oma_sijoitus = sijoitus
                EndIf 
            EndIf 
        EndIf 
    Else
        kierrokset(i) = 2
    EndIf 
Next i 

If lap > 16 Then
    If sijoitus = 7 Then
        lap=4
    EndIf
EndIf  
ukko_oma -> ukot(0)
...
ukko_4 -> ukot(5)
-------------------------
kierros -> kierrokset(0)
...
kierros_5 -> kierrokset(5)

Vielä sama tuon laps()-taulukon kanssa

Code: Select all

For i = 0 To 5
    If Distance2(ukot(i), maali_viiva) < 50 Then
        If kierrokset(i) = 2 Then
            If lap(i) < 17 Then 
                laps(i) = laps(i) + 1
                kierrokset(i) = 1
            Else
                sijoitus = sijoitus + 1
                If i = 0 Then
                    oma_sijoitus = sijoitus
                EndIf 
            EndIf 
        EndIf 
    Else
        kierrokset(i) = 2
    EndIf 
Next i 
Jätin lopusta tuon "lap = 4" if:in pois, koska en ymmärtänyt sen tarkoitusta/logiikkaa.
CoolBasic henkilökuntaa
Kehittäjä
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Tyhmät kysymykset (II/2009)

Post by MaGetzUb »

Character wrote:Et voi käyttää käyttää SoundPlaying -komentoa LoadSoundin kanssa.
Lataa se näin: biisi = PlaySound(...blaa...)
Voipa käyttää SoundPlayingiä ladatuilla äänillä, tähän tyyliin:

Code: Select all

Sound =LoadSound("Media\sheep.Wav")
kulma = 90 
Repeat 
If SoundPlaying(Pum) = False Then Pum = PlaySound(Sound) 'Falsen tilalle käy myös 0 tai OFF
//Näitä alempia rivejä ei tarvita, vain erikoistehosteen vuoksi
SetSound Pum,100,Sin(Kulma)*100
Kulma = Kulma + 1

DrawScreen
Forever 
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
matti3[matti3]

Re: Tyhmät kysymykset (II/2009)

Post by matti3[matti3] »

Ongelma on siinä, etten muista miten taulukko tehtiin enkä manuaalistakaan löytänyt.
Locked