Tyhmät kysymykset (II/2009)
Re: Tyhmät kysymykset (II/2009)
EDIT: En huomannutkaan toista sivua.
No järkeä saa varmaan käyttää. Sinulla on tuolla Repeat-blokki, jota ei koskaan lopeteta, niinhän tuo virheilmoitus sanoo.
EDIT 2: Rekisteröidypä muuten foorumeille. Silloin pystyy muokkaamaan viestejään ja ei tarvitse aina postata uutta viestiä.
No järkeä saa varmaan käyttää. Sinulla on tuolla Repeat-blokki, jota ei koskaan lopeteta, niinhän tuo virheilmoitus sanoo.
EDIT 2: Rekisteröidypä muuten foorumeille. Silloin pystyy muokkaamaan viestejään ja ei tarvitse aina postata uutta viestiä.
Re: Tyhmät kysymykset (II/2009)
Niin, ja sitten jos haluat käyttää numpadin näppäimiä niin on myös olemassa paranneltu versio Input()-funktiosta. Se löytyy täältä: http://cbkk.systec.fi/koodi.php?id=159legend wrote:ei, mutta saat ne keyhit() functiolla.Feuer wrote:Saako CB:n oman Input():n lukemaan syötteitä myös numpadiltä? Saan joululoma-palkan tekemällä faijalle ohjelman johon tarvitsisi syöttää paljon numeroita, ja tuo on tottunut käyttämään numpadiä, eikä noita näppäimistön yllä olevia numeroita.
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
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
Re: Tyhmät kysymykset (II/2009)
Outoa, luulin vastanneeni jo... Joko tuo toinen kone bugaa tai tulee tuplaposti.
Joka tapauksessa, saisiko tuon syötteen ottamaan huomioon myös caps lockin?
Joka tapauksessa, saisiko tuon syötteen ottamaan huomioon myös caps lockin?
Asus P8P67 LE/Intel Core i5 2500K/ GTX560/ 8GT RAM/750GT HDDt + 120GT SSD + 13" Macbook Pro
Blogi - Peräpohjola - MERPG
Blogi - Peräpohjola - MERPG
Re: Tyhmät kysymykset (II/2009)
Minulla se ainakin ottaa?
Code: Select all
repeat
teksti = input("Toimiiko?")
drawscreen
forever
Re: Tyhmät kysymykset (II/2009)
@Legend,
Nyt taidetaan puhua tuosta paremmasta* inputista. Ei CB:n omasta.
(*=Mielestäni ainakin parempi, vaikka capsi ei toimisikaan)
@Feuer,
Voithan laittaa tarkistuksen onko caps lockia painettu, tosin silloin ei välttämättä se caps valo näppäimistössä merkitse mitään.
CB:ssä ei muistaakseni ollut minkäänlaisia tarkistuksia caps lockille/muille lock napeille. Eli ilman DLL ei taida onnistua.
Ellei CB lue caps lockin silleen jännästi. Eli, että kun se on päällä niin sitä "painettaisiin" kokoajan.. Katson jos näin on nyt. Edit: Ilmeisesti nopeiden testien perusteella näin ei ole. CB:llä ei kai ole mahdollista katsoa ilman DLL:iä onko caps lock käytössä.
Nyt taidetaan puhua tuosta paremmasta* inputista. Ei CB:n omasta.
(*=Mielestäni ainakin parempi, vaikka capsi ei toimisikaan)
@Feuer,
Voithan laittaa tarkistuksen onko caps lockia painettu, tosin silloin ei välttämättä se caps valo näppäimistössä merkitse mitään.
CB:ssä ei muistaakseni ollut minkäänlaisia tarkistuksia caps lockille/muille lock napeille. Eli ilman DLL ei taida onnistua.
Ellei CB lue caps lockin silleen jännästi. Eli, että kun se on päällä niin sitä "painettaisiin" kokoajan.. Katson jos näin on nyt. Edit: Ilmeisesti nopeiden testien perusteella näin ei ole. CB:llä ei kai ole mahdollista katsoa ilman DLL:iä onko caps lock käytössä.
-
- Advanced Member
- Posts: 308
- Joined: Tue Nov 25, 2008 8:06 pm
- Contact:
Re: Tyhmät kysymykset (II/2009)
Eikös cbFunilla voi vaikuttaa caps-, num- ja scroll lockin tilaan? Tosin sehän vaatii sen DLL:n.
a.k.a. Gehock
Re: Tyhmät kysymykset (II/2009)
Siinä voi laittaa käyttöön tai ottaa pois, mutta ei katsoa onko Lock-näppäimiä käytössä vai ei.Herra Siili wrote:Eikös cbFunilla voi vaikuttaa caps-, num- ja scroll lockin tilaan? Tosin sehän vaatii sen DLL:n.
Mutta sillä sen voisi tehdä, jopa niin että valo näppäimistössäkin menisi oikein. Kun painetaan capsia niin cbFUNin komennolla sitten laitetaan joko päälle tai sammutetaan caps.
EDIT:
Äh... Nyt meni ajatukset hieman ohi jostakin Mutta jotenkin sen voisi kikkailla... :E
Re: Tyhmät kysymykset (II/2009)
Pidät vaikka yhtä globaalia muuttujaa, jossa on tieto, onko caps lock päällä vai ei. Alustat cbFUNilla ensiksi caps lockin pois päältä ja sitten tarkistat loopeissa, että onko capslockia painettu vai ei ihan normaalilla KeyHit()-funktiolla.
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
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
Re: Tyhmät kysymykset (II/2009)
Onko jotain yksinkertaista kikkaa (täyden läpikäynnin lisäksi) alustaa mielivaltainen läjä muuttujia tyhjäksi?
(Kyseessä on siis ohjelma, joka kysyy käyttäjältä tietoja, tekee tiedoilla mitä tekee, ja ennenvanhaan suoritti itsensä lopuksi uudelleen GetEXEName():n avulla. Lopun tehtävänä oli siis alustaa kaikki muuttujat tyhjiksi. Tuolle on oltava siistimpikin keino.)
(Kyseessä on siis ohjelma, joka kysyy käyttäjältä tietoja, tekee tiedoilla mitä tekee, ja ennenvanhaan suoritti itsensä lopuksi uudelleen GetEXEName():n avulla. Lopun tehtävänä oli siis alustaa kaikki muuttujat tyhjiksi. Tuolle on oltava siistimpikin keino.)
Asus P8P67 LE/Intel Core i5 2500K/ GTX560/ 8GT RAM/750GT HDDt + 120GT SSD + 13" Macbook Pro
Blogi - Peräpohjola - MERPG
Blogi - Peräpohjola - MERPG
Re: Tyhmät kysymykset (II/2009)
No tuota siis, eipä sille taida olla. Taulukon(/typen?) onnistuu helposti tyhjentämään For ... Next loopilla, taikka muistaakseni ReDim komennolla. (Sehän taisi alustaa sen.)Feuer wrote:Onko jotain yksinkertaista kikkaa (täyden läpikäynnin lisäksi) alustaa mielivaltainen läjä muuttujia tyhjäksi?
(Kyseessä on siis ohjelma, joka kysyy käyttäjältä tietoja, tekee tiedoilla mitä tekee, ja ennenvanhaan suoritti itsensä lopuksi uudelleen GetEXEName():n avulla. Lopun tehtävänä oli siis alustaa kaikki muuttujat tyhjiksi. Tuolle on oltava siistimpikin keino.)
Mutta muuten siinä ei taida olla muuta keinoa kuin uudelleen suorittaa exe, taikka käymällä kaikki läpi ja asettamalla arvon 0. En kyllä näin äkkiseltään muutakaan keksi.
Re: Tyhmät kysymykset (II/2009)
Onko väärin olettaa että "alustettavien muuttujien" funktion alla pitäminen hoitaisi tuon? Kun poistutaan funktiosta, ei noita muuttujia enää tietääkseni ole olemassa?
EDIT:
Ja tuohon ylempään ongelmaan, kasasin systeemin joka tarkistaa onko capsi päällä vai poissa, mutta tajusin ettei cbFunilla voi valehdella shiftin olevan pohjassa. Miten tuon shiftin saisi valehdeltua olevan pohjassa?Eli tämä tapa on toimiva
Last edited by Feuer on Wed Dec 23, 2009 12:50 pm, edited 1 time in total.
Asus P8P67 LE/Intel Core i5 2500K/ GTX560/ 8GT RAM/750GT HDDt + 120GT SSD + 13" Macbook Pro
Blogi - Peräpohjola - MERPG
Blogi - Peräpohjola - MERPG
Re: Tyhmät kysymykset (II/2009)
Minun nähdäkseni teet jotain väärin, jos sinun edes täytyy alustaa suuri määrä muuttujia pelin/ohjelman suorituksen jälkeen. Käytä mieluummin funktioita ja lokaaleja muuttujia, jotka alustuvat automaattisesti kun funktiota kutsutaan seuraavan kerran.Feuer wrote:Onko jotain yksinkertaista kikkaa (täyden läpikäynnin lisäksi) alustaa mielivaltainen läjä muuttujia tyhjäksi?
(Kyseessä on siis ohjelma, joka kysyy käyttäjältä tietoja, tekee tiedoilla mitä tekee, ja ennenvanhaan suoritti itsensä lopuksi uudelleen GetEXEName():n avulla. Lopun tehtävänä oli siis alustaa kaikki muuttujat tyhjiksi. Tuolle on oltava siistimpikin keino.)
Tuossa pikainen havainnollistava esimerkki:
Code: Select all
repeat
if mainMenuAction("new game") then
game(1, 10)
endif
if mainMenuAction("quit") then
quitGame()
endif
forever
//peli palaa automaattisesti takaisin päävalikkoon kun tästä poistutaan
function game(startLevel, levelAmount)
for currentLevel = startLevel to levelAmount
exitValue = level(currentLevel)
if exitValue = FAILED then
currentLevel = currentLevel - 1 //pelataan sama kenttä uudestaan
endif
next currentLevel
end function
//jokaisen kentän jälkeen kaikki siinä käytetyt muuttujat tuhoutuvat automaattisesti
function level(currentLevel)
//käytä currentLevel:iä määrittelemään mikä kenttä on menossa
//(esim. jos sinulla on kenttien tiedot taulukossa, käytä currentLeveli:ä indeksinä)
//ja lataa kaikki kentässä tarvittavat kuvat/äänet/yms.
repeat
//varsinainen kentän logiikka täällä
until levelPassed
return levelExitValue
end function
CoolBasic henkilökuntaa
Kehittäjä
Kehittäjä
Re: Tyhmät kysymykset (II/2009)
Moi! Voisiko joku nero asiantuntija selittää tuon paremman inputin ohjelmasisällön,vaikka kommentoimalla sen - katsos
vaikka yritin ,niin en ymmärtänyt siitä paljon mitään - kuitenkin tarvitsisin parempaa input toimintoa erääseen
ohjelmaani ja olisi hienoo jos sen kursorin sais siinä siten ,että se menee kirjainten välissä pystysuorana viivana.
vaikka yritin ,niin en ymmärtänyt siitä paljon mitään - kuitenkin tarvitsisin parempaa input toimintoa erääseen
ohjelmaani ja olisi hienoo jos sen kursorin sais siinä siten ,että se menee kirjainten välissä pystysuorana viivana.
Re: Tyhmät kysymykset (II/2009)
Ensimmäiseen en mene sanomaan nyt mitään, mutta tuo kursorijuttu ei toimi tuolla cb:n omalla inputilla; jos välttämättä kuitenkin sellaisen haluat, niin niitä löytyy tältä foorumilta aika paljon. Kokeile hakea sitä varten esim. "input", tai "textbox". Jos et jaksa hakea parempaa, tässä on omani, tosin integroituna kokonaiseen käyttöliittymäkirjastoonsankja wrote:Moi! Voisiko joku nero asiantuntija selittää tuon paremman inputin ohjelmasisällön,vaikka kommentoimalla sen - katsos
vaikka yritin ,niin en ymmärtänyt siitä paljon mitään - kuitenkin tarvitsisin parempaa input toimintoa erääseen
ohjelmaani ja olisi hienoo jos sen kursorin sais siinä siten ,että se menee kirjainten välissä pystysuorana viivana.
Re: Tyhmät kysymykset (II/2009)
Kiitos paljon Axu.Otan ja tutkin noita funktioita,jotka olet suunnitellut,ja yritän sovittaa niitä omaan ohjelmaani,kiitos.
Re: Tyhmät kysymykset (II/2009)
Aloin tehdä väritörmäystunnistusta objekteille. Tarkoitushan on, että kun laatikko-objecti koskee valkoiseen se tippuu, kun mustaan se nousee. Koodissa on kaksi ongelmaa;
1.Laatikko lopettaa tippumisen jo ennen kuin musta tulee vastaan.
2.Lisäsin laatikolle mahdollisuuden liikkua oikeaan ja vasempaan; Jos menet ruudun keskeltä vasemmalle, laatikko alkaa nousta ikään kuin siellä olisi mustaa. Jos oikealle juttu toimii oikein lukuun ottamatta ongelmaa Nro1.
Koodi:
1.Laatikko lopettaa tippumisen jo ennen kuin musta tulee vastaan.
2.Lisäsin laatikolle mahdollisuuden liikkua oikeaan ja vasempaan; Jos menet ruudun keskeltä vasemmalle, laatikko alkaa nousta ikään kuin siellä olisi mustaa. Jos oikealle juttu toimii oikein lukuun ottamatta ongelmaa Nro1.
Koodi:
Code: Select all
SCREEN 640,480
Palikka=LoadObject("palikka.png")
Pohja=LoadImage("Pohja.png")
PositionObject palikka,0,320
Repeat
DrawImage pohja,0,0
PickImageColor pohja,ObjectX(palikka),ObjectY(palikka)
r=getRGB(RED)
g=getRGB(GREEN)
b=getRGB(BLUE)
If R=0 And G=0 And B=0 Then
TranslateObject palikka,0,1
ElseIf R=255 And G=255 And B=255 Then
TranslateObject palikka,0,-1
EndIf
If LeftKey()Then TranslateObject palikka,-2,0
If RightKey()Then TranslateObject palikka,2,0
If UpKey()Then TranslateObject palikka,0,2
Box 45,45,10,10
DrawScreen
Edit
Forever
- Attachments
-
- Pohja.PNG (4.95 KiB) Viewed 11349 times
-
- Palikka.PNG (231 Bytes) Viewed 11349 times
Re: Tyhmät kysymykset (II/2009)
Muista että kuvilla ja objekteilla on eri koordinaatit.. Elikkä sun objectx voi olla ruudulla jotain ihan muuta kuin "maailmassa". Etsi CBKK:sta funkkarit ObjectSX ja ObjectSY jotka kertovat objektin sijannin ruudulla. Tässä on vastaus molempiin kysymyksiin.. Luulisin..
Re: Tyhmät kysymykset (II/2009)
Hmm.. Ja niin voinet myös käyttää GetPixeliä PickColorin sijaan. Ei välttämättä tarpeellista, enkä tiedä nopeuttaisiko tai mitään, mutta sanoinpahan vain.
Re: Tyhmät kysymykset (II/2009)
Phons: En tiedä miten toimii koska ruutu ei enää näyttänyt ollenkaan punaista laatikko-objektia.
Re: Tyhmät kysymykset (II/2009)
Oon tehny tota potkunyrkkeilypeliä vähän aikaa. Ongelma on se että kun tossa koodiin laittaa noi KeyUp komennot, niin elämää ei lähde ollenkaan. Laitanpa vielä Keyupin määritelmän tähä.
Voin tarvittaessa laittaa vaikka koko pelin koodin.
Tämä funktio kertoo, onko haluttu näppäin "päästetty ylös", eli vapautettu. Funktiota voi verrata hiirellä klikkaukseen (kts. MouseUp)
Funktiolle pitää kertoa halutun näppäimen SCAN-koodi.
Scan-koodeja ei ole pakko muistaa ulkoa, vaan tilalle voi myös kirjoittaa jonkun CoolBasicin sisäänrakennetuista näppäinvakioista. Esim. KeyHit(cbKeyA) tarkastaa, painetaanko J-näppäintä. Listan näppäinvakioista näet SCAN-taulukosta (linkki yllä).
Näppäinten tila päivitetään UpdateGame-kutsun aikana (tai DrawScreenissä, jos UpdateGamea ei kutsuta). Tämä tarkoittaa sitä, että et voi odottaa pääloopissa tiettyä aikaa ja tarkastaa onko näppäimen tila vieläkin ennallaan.
Code: Select all
If Distance2(pelaaja1,pelaaja2)<30 And KeyHit(cbKeyQ)And KeyUp(cbKeyRight)Then ElämäB=ElämäB-4
If Distance2(pelaaja1,pelaaja2)<30 And KeyHit(cbKeyW)And KeyUp(cbKeyRight)Then ElämäB=ElämäB-5
If Distance2(pelaaja1,pelaaja2)<30 And KeyHit(cbKeyLeft)And KeyUp(cbKeyQ)Then ElämäA=ElämäA-5
If Distance2(pelaaja1,pelaaja2)<30 And KeyHit(cbKeyDown)And KeyUp(cbKeyQ)Then Elämäa=ElämäA-4