Tyhmät kysymykset (I/2010)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
Feuer
Devoted Member
Posts: 520
Joined: Tue Jun 16, 2009 11:13 am
Contact:

Re: Tyhmät kysymykset (I/2010)

Post by Feuer »

Kiitän!
Asus P8P67 LE/Intel Core i5 2500K/ GTX560/ 8GT RAM/750GT HDDt + 120GT SSD + 13" Macbook Pro
Blogi - Peräpohjola - MERPG
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: Tyhmät kysymykset (I/2010)

Post by DJ-Filbe »

Häiritsen nyt sitten vielä ainakin kerran, eli:

Ostin juuri uuden Skype - (USB) kuulokemikrofonin (sattui olemaan alennuksessa). Se toimii muuten ihan jees mutta Coolbasic - ohjelmien äänet kuuluvat tietokoneen kaiuttimista. Ääniasetuksista en löytänyt apua, eli: HELP ME! :)
Henkru
Advanced Member
Posts: 359
Joined: Sun Aug 26, 2007 2:46 pm

Re: Tyhmät kysymykset (I/2010)

Post by Henkru »

Onko kuulokkeet valittu ensisijaiseksi äänilähteeksi?
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: Tyhmät kysymykset (I/2010)

Post by DJ-Filbe »

Henkru wrote:Onko kuulokkeet valittu ensisijaiseksi äänilähteeksi?
Jep. Ei toimi.
EDIT:

Sama ongelma FL-studion ja veikkaan että myös muiden ohjelmien kanssa...

Ant
Newcomer
Posts: 4
Joined: Fri Apr 23, 2010 4:39 pm

Re: Tyhmät kysymykset (I/2010)

Post by Ant »

Mä aloin tommosta pientä peliä.. tai no... jotain räpellystä kuitenkin tekemään tänään. Se on mun eka projekti ja tosi yksinkertainen, oon siinä vähän kokelllut kaikkea oppimaani. Ilmeisesti kaikki muu meni oikein, mutta sitten saan tämmösen ilmoituksen kun yritän testata peliä:
Code 88
Can't find missing REPEAT.
Structure start block missing at line 31

Ja se koodi menee tällä tavoin:

17 Repeat
18-30 Koodia
31 Forever

Tuo virheilmoitushan tarkoittaa sitä että tuo "Forever" ei löydä tuota "repeat"ia jos en ihan väärin ymmärrä. Ja ne on ihan juuri noin, ei pitäisi olla mitään ongelmaa. Onko tämä joku ihmeellisempikin vika vai onko kyseessä vain tyhmä kysymys? ;)
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset (I/2010)

Post by valscion »

Ant wrote:Mä aloin tommosta pientä peliä.. tai no... jotain räpellystä kuitenkin tekemään tänään. Se on mun eka projekti ja tosi yksinkertainen, oon siinä vähän kokelllut kaikkea oppimaani. Ilmeisesti kaikki muu meni oikein, mutta sitten saan tämmösen ilmoituksen kun yritän testata peliä:
Code 88
Can't find missing REPEAT.
Structure start block missing at line 31

Ja se koodi menee tällä tavoin:

17 Repeat
18-30 Koodia
31 Forever

Tuo virheilmoitushan tarkoittaa sitä että tuo "Forever" ei löydä tuota "repeat"ia jos en ihan väärin ymmärrä. Ja ne on ihan juuri noin, ei pitäisi olla mitään ongelmaa. Onko tämä joku ihmeellisempikin vika vai onko kyseessä vain tyhmä kysymys? ;)
Luultavasti sinulla on siellä jokin avonainen IF-lause tai jokin muu epätäydellinen silmukka. Tuo virheilmoitus siis tarkoittaa, ettei Forever löydä Repeattia, siis niinkuin takaperin mentäisiin.
EDIT:

Ole hyvä vain, on mukavaa, kun voi auttaa :)

Last edited by valscion on Fri Apr 23, 2010 5:11 pm, edited 2 times in total.
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
Ant
Newcomer
Posts: 4
Joined: Fri Apr 23, 2010 4:39 pm

Re: Tyhmät kysymykset (I/2010)

Post by Ant »

Hyvä luoja, sain sen toimimaan :lol: Mulla tosiaan oli pieni kämmi siellä sattunut, If-lause ol jäänyt kesken. Kiitos nopeasta vastauksesta :)
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: Tyhmät kysymykset (I/2010)

Post by DJ-Filbe »

Ant wrote:Hyvä luoja, sain sen toimimaan :lol: Mulla tosiaan oli pieni kämmi siellä sattunut, If-lause ol jäänyt kesken. Kiitos nopeasta vastauksesta :)
Tohon ongelmaan voi löytää tarkan vastauksen tekemällä juuri niinkuin virheilmoitus sanoo:
Jos virheilmoitus on että "ei voida löytää repeattia" niin silloin kannattaa lisätä ylimääräinen repeat koodin sekaan niin johan alkaa löytymään se oikea virhekohta.
Warlock
Member
Posts: 79
Joined: Thu Jul 31, 2008 11:08 pm

Re: Tyhmät kysymykset (I/2010)

Post by Warlock »

Olisko mistään tällä hetkellä saatavilla funktioita ObjectSX() ja ObjectSY() tjsp, jotka kertoisivat objektin sijainnin ruudulla eivätkä pelimaailmassa?
Image
Viltzu
Guru
Posts: 1132
Joined: Sun Aug 26, 2007 5:45 pm
Location: Alavieska
Contact:

Re: Tyhmät kysymykset (I/2010)

Post by Viltzu »

Minulta sattui löytymään. Tässähän nämä:

Code: Select all

Function ObjectSX(obj)
    Return ObjectX(obj)+ScreenWidth()/2-CameraX()
EndFunction

Function ObjectSY(obj)
    Return -ObjectY(obj)+ScreenHeight()/2+CameraY()
EndFunction
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: Tyhmät kysymykset (I/2010)

Post by DJ-Filbe »

Tarvitsisi voida tehdä sellainen systeemi, esimerkiksi että voitaisiin määrittää vihu(3) :ltä ammus(7):
eli esim. tyyliin vihu(3).ammus(7) eli voisi viitata muuttujan sisällä olevaan muuttujaan.Miten onnistuisi?
Koodia kiitos!
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset (I/2010)

Post by koodaaja »

En tiedä tarkalleen mitä haet, mutta muistipaloillahan tuo periaatteessa onnistuisi. Yleensä ammukset tallennetaan kuitenkin erillisenä listana eikä viholliselle itselleen. Todennäköisesti tarvitsetkin homman toisin päin, eli ammuksen osuttua pitäisi tietää kuka sen ampui. Tämä hoituu helpommin sillä, että lisäät ammukseen kentän, joka kertoo ampuneen objektin ID:n (converttointeger -> converttotype), jolloin voit osuman jälkeen päätellä kuka sen ampui.
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: Tyhmät kysymykset (I/2010)

Post by DJ-Filbe »

koodaaja wrote:En tiedä tarkalleen mitä haet, mutta muistipaloillahan tuo periaatteessa onnistuisi. Yleensä ammukset tallennetaan kuitenkin erillisenä listana eikä viholliselle itselleen. Todennäköisesti tarvitsetkin homman toisin päin, eli ammuksen osuttua pitäisi tietää kuka sen ampui. Tämä hoituu helpommin sillä, että lisäät ammukseen kentän, joka kertoo ampuneen objektin ID:n (converttointeger -> converttotype), jolloin voit osuman jälkeen päätellä kuka sen ampui.
No, paljastetaampas sitten mitä oikeasti ajattelin:
Pitäisi saada tuohon musanteko-ohjelmaan tällä tavalla juttuja:

Raita(3).Nuotti(6).Volume = ???
Raita(3).Nuotti(6).Balance = ???
Raita(3).Nuotti(6).Length = ???
jne

jos nyt selkisi?
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Tyhmät kysymykset (I/2010)

Post by phons »

Esim:

Code: Select all

Type raita
    Field nuotti
EndType

Type nuotit
    Field volume As Float
    Field balance As Float
EndType

nuotti1.nuotit = New(nuotit)
nuotti2.nuotit = New(nuotit)

nuotti1\volume = 50
nuotti1\balance = 0
nuotti2\volume = 100
nuotti2\balance = 20

raita1.raita = New(raita)
raita2.raita = New(raita)

raita1\nuotti = ConvertToInteger(nuotti1)
raita2\nuotti = ConvertToInteger(nuotti2)

raita1_nuotti.nuotit = ConvertToType(raita1\nuotti)
raita2_nuotti.nuotit = ConvertToType(raita2\nuotti)
Text 0,0,"Raita1:  Volume: " + raita1_nuotti\volume + "  Balance: " + raita1_nuotti\balance
Text 0,20,"Raita2:  Volume: " + raita2_nuotti\volume + "  Balance: " + raita2_nuotti\balance

DrawScreen
WaitKey
Image
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: Tyhmät kysymykset (I/2010)

Post by DJ-Filbe »

phons wrote:Esim:

Code: Select all

Type raita
    Field nuotti
EndType

Type nuotit
    Field volume As Float
    Field balance As Float
EndType

nuotti1.nuotit = New(nuotit)
nuotti2.nuotit = New(nuotit)

nuotti1\volume = 50
nuotti1\balance = 0
nuotti2\volume = 100
nuotti2\balance = 20

raita1.raita = New(raita)
raita2.raita = New(raita)

raita1\nuotti = ConvertToInteger(nuotti1)
raita2\nuotti = ConvertToInteger(nuotti2)

raita1_nuotti.nuotit = ConvertToType(raita1\nuotti)
raita2_nuotti.nuotit = ConvertToType(raita2\nuotti)
Text 0,0,"Raita1:  Volume: " + raita1_nuotti\volume + "  Balance: " + raita1_nuotti\balance
Text 0,20,"Raita2:  Volume: " + raita2_nuotti\volume + "  Balance: " + raita2_nuotti\balance

DrawScreen
WaitKey
No empä tiedä... taulukolle pitäisi saada oma alitaulukko, muuten ei oikein tule mitään...
Ei kukaan jaksais tehä tollaselle mitään dll :ää jos sellanen on ees mahollista...
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Tyhmät kysymykset (I/2010)

Post by phons »

Täh? alitaulukko... Siis: Dim(10,10) tuossa luodaan 10 laatikkoa joissa on kaikissa 10 laatikkoa.. toisin sanoen 10 taulukkoa joilla on 10 alitaulukkoa..
Image
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: Tyhmät kysymykset (I/2010)

Post by DJ-Filbe »

phons wrote:Täh? alitaulukko... Siis: Dim(10,10) tuossa luodaan 10 laatikkoa joissa on kaikissa 10 laatikkoa.. toisin sanoen 10 taulukkoa joilla on 10 alitaulukkoa..
No siis:

Jos on vaikka taulukko nimeltä laatikko(100) niin jokaisella niillä olisi vaikka 100 palloa, tyyliin
laatikko(1).pallo(1),
laatikko(1).pallo(2),
laatikko(1).pallo(3) jne,

laatikko(2).pallo(1),
laatikko(2).pallo(2),
laatikko(2).pallo(3) jne,

laatikko(3).pallo(1),
laatikko(3).pallo(2),
laatikko(3).pallo3 jne

ja pallojen lisäksi voisi laatikkoon laittaa muutakin tietty
TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Tyhmät kysymykset (I/2010)

Post by TheFish »

DJ-Nerd wrote: No siis:

Jos on vaikka taulukko nimeltä laatikko(100) niin jokaisella niillä olisi vaikka 100 palloa, tyyliin
laatikko(1).pallo(1),
...
laatikko(3).pallo3 jne

ja pallojen lisäksi voisi laatikkoon laittaa muutakin tietty
Tekaisin aikani kuluksi lyhyen esimerkin moniulotteisista taulukoista.

Code: Select all

SCREEN 800, 600
SetWindow "Tietoja voi muokata hiiren rullalla"

Const RAITOJEN_MAARA = 11 //Taulukoiden koot on jätetty pieniksi tarkoituksella.
Const NUOTTIEN_MAARA = 25 //Tosiasiassa niiden pitäisi olla niin isoja, että ne
                          //eivät täyty käytössä (tai sitten venyttää niitä 
Const C_VOLUME = 0        //tarpeen mukaan).
Const C_BALANCE = 1
Const C_LENGTH = 2

Dim nuotit(RAITOJEN_MAARA, NUOTTIEN_MAARA, 2)

//laitetaan läjä nuotteja randomilla...
Randomize Timer()
For iRaita = 0 To RAITOJEN_MAARA
    r = Rand(1, NUOTTIEN_MAARA)
    For iNuotti = 0 To r
        lisaaNuotti(iRaita, Rand(1, 100), Rand(1, 100), Rand(1, 100))
    Next iNuotti
Next iRaita

Repeat
    
    For iRaita = 0 To RAITOJEN_MAARA
        nuottienMaara = laskeNuotitRaidassa(iRaita) - 1
        Text 0, iRaita * 50 + 10, "v:"
        Text 0, iRaita * 50 + 20, "b:"
        Text 0, iRaita * 50 + 30, "l:"
        For iNuotti = 0 To nuottienMaara
            Text iNuotti * 30 + 30, iRaita * 50 + 10, nuotit(iRaita, iNuotti, C_VOLUME)
            Text iNuotti * 30 + 30, iRaita * 50 + 20, nuotit(iRaita, iNuotti, C_BALANCE)
            Text iNuotti * 30 + 30, iRaita * 50 + 30, nuotit(iRaita, iNuotti, C_LENGTH)
        Next iNuotti
    Next iRaita
    
    //tietojen muokkaaminen hiiren rullalla
    r = MouseMoveZ() 
    If r <> 0 Then 
        x = MouseX() / 30
        y = MouseY() / 50
        ym = MouseY() Mod 50
        If ym =< 20 Then 
            n = C_VOLUME
        ElseIf ym =< 30 Then 
            n = C_BALANCE
        ElseIf ym =< 40 Then 
            n = C_LENGTH
        Else
            n = -1
        EndIf
        If x > 0 And x =< laskeNuotitRaidassa(y) Then
            If y > 0 And y < RAITOJEN_MAARA Then
                if n <> -1 Then muokkaaNuottia(y, x - 1, n, nuotit(y, x -1, n) + r)
            EndIf 
        EndIf
    EndIf 
    
    DrawScreen
    
Forever 

Function lisaaNuotti(raita, volume, balance, length) 
    nuottienMaara = laskeNuotitRaidassa(raita)
    
    If nuottienMaara = -1 Then
        Return False //nuotin lisääminen epäonnistui
    EndIf 
    
    nuotit(raita, nuottienMaara, C_VOLUME) = volume
    nuotit(raita, nuottienMaara, C_BALANCE) = balance
    nuotit(raita, nuottienMaara, C_LENGTH) = length
    
    Return True 
End Function 

Function muokkaaNuottia(raita, nuotti, tieto, arvo) 
    nuotit(raita, nuotti, tieto) = arvo
End Function

//Tämä olisi tietysti tehokkaampaa tehdä taulukolla, jossa
//pitää kirjaa nuottien määrästä kussakin raidassa.
Function laskeNuotitRaidassa(raita) 
    For iNuotti = 0 To NUOTTIEN_MAARA
        If nuotit(raita, iNuotti, C_VOLUME) = 0 Then //raidassahan voi tietysti olla
            Return iNuotti                           //välissä nuotteja joiden volume = 0
        EndIf                                        //joten tämä ei toimisi tositilanteessa 
    Next iNuotti
    Return -1 //täynnä
End Function 
CoolBasic henkilökuntaa
Kehittäjä
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: Tyhmät kysymykset (I/2010)

Post by DJ-Filbe »

Ratkaisu ongelmaan:
Työstetään musiikkiformaatti raita kerrallaan ja tallennetaan musat tyyliin "Raita1.CMCA", "Raita2.CMCA"...
Näin tarvitaan vain taulukot jokaisille nuottien tiedoille. Kun aletaan säveltämään toista raitaa, edellinen tallennetaan ja ohjelman muuttujat alkavat seurata toista raitaa. Hyvä idea?
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: Tyhmät kysymykset (I/2010)

Post by DJ-Filbe »

Riivaan näköjään teitä näillä tyhmillä kysymyksillä edelleen :)
Eli:
Toteutin komennot
writestring tiedosto, "pp"
writeshort tiedosto, 50

ja kun tiedosto oli käsitelty loppuun, avasin toisen ohjelman jonka eräällä rivillä lukee:
a=readstring(tiedosto)

Tässä a :n arvoksi tulee aina 0, vaikka tuolta pitäisi putkahtaa "pp". Tiedostossa taas lukee " pp2 ". (loppuosa "kakkonen ja välilyönti" merkkaa ilmeisesti lukua 50?)
Miten saisin tuosta sen halutun "pp" :n talteen?
Last edited by DJ-Filbe on Sat Apr 24, 2010 11:58 pm, edited 1 time in total.
Locked