Tyhmät kysymykset (I/2010)
Re: Tyhmät kysymykset (I/2010)
Eli tässä tälläinen ''Tyhmä Kysymys''
1. Kuinka saan vihollisen menemään Alas ylös alas ylös kokoajan että aina kun se menee alas päin niin se myöäs katsoo alaspäin
2. Kuinka saan silleensä että kun osun viholliseen niin näyttöön tulee lukemaan GAME OVER.
Ps. Olen Aloittelija tässä Coolbasicissa
Ps2. Peli on kuvattu ylhäältä päin.
1. Kuinka saan vihollisen menemään Alas ylös alas ylös kokoajan että aina kun se menee alas päin niin se myöäs katsoo alaspäin
2. Kuinka saan silleensä että kun osun viholliseen niin näyttöön tulee lukemaan GAME OVER.
Ps. Olen Aloittelija tässä Coolbasicissa
Ps2. Peli on kuvattu ylhäältä päin.
Re: Tyhmät kysymykset (I/2010)
Jos olet täysi aloittelija, suosittelen tekemään ylhäältätehdyt ukonliikuttamispelit sen mallin mukaan mitä cb:n oppitunneissa on näytetty. Eli periaatteessa yhdistät oppitunnit 11 ja 18.
Vastaan kuitenkin kysymyksiisi:
1.
Lataa ukkosi kuva objektina, pyöritysarvolla 4. Ks. funktion LoadObject(). Sen jälkeen tarkastat silmukassa mihin suuntaan ukko liikkuu ja käännät sen mukaan komennolla RotateObject. Liikuta itse ukkoa komennolla TranslateObject.
Kysymys 2:
Tarkasta vihollisen ja ukon törmäys funktiolla ObjectsOverlap() (ks. esimerkki manuaalista). Kun törmäys tapahtuu, pysäytät pelin tai siirryt toiseen silmukkaan. Pelin pysäytyksen voi tehdä esim näin: luot muuttujan nimeltä pause, ja laitat koko pelisi ehtolauseeseen: If Not pause Then ... //Pelin koodia ... Endif. Kun pause = True, peli pysähtyy. Voit tehdä vaihtoehtoisen tapahtuman (siis kun pause on päällä) käyttämällä Elseä tai ElseIffiä:
Vastaan kuitenkin kysymyksiisi:
1.
Lataa ukkosi kuva objektina, pyöritysarvolla 4. Ks. funktion LoadObject(). Sen jälkeen tarkastat silmukassa mihin suuntaan ukko liikkuu ja käännät sen mukaan komennolla RotateObject. Liikuta itse ukkoa komennolla TranslateObject.
Code: Select all
//Ladataan ukko-objekti pyörotysarvolla 4, eli sen kuva voi kääntyä neljään eri suuntaan.
ukko = LoadObject( "media\guy.bmp", 4 )
Repeat
//Liikutetaan ukkoa
suuntaX = RightKey() - LeftKey()
suuntaY = UpKey() - DownKey()
//Tarkastetaan suunta ja käännetään ukko siihen suuntaan
If suuntaX = 1 Then
RotateObject ukko, 0
ElseIf suuntaX = -1 Then
RotateObject ukko, 180
ElseIf suuntaY = 1 Then
RotateObject ukko, 90
ElseIf suuntaY = -1 Then
RotateObject ukko, 270
EndIf
//Liikutetaan ukkoa. Huomaa translateobject
nopeus = 5
TranslateObject ukko, suuntaX * nopeus, suuntaY * nopeus
DrawScreen
Forever
Tarkasta vihollisen ja ukon törmäys funktiolla ObjectsOverlap() (ks. esimerkki manuaalista). Kun törmäys tapahtuu, pysäytät pelin tai siirryt toiseen silmukkaan. Pelin pysäytyksen voi tehdä esim näin: luot muuttujan nimeltä pause, ja laitat koko pelisi ehtolauseeseen: If Not pause Then ... //Pelin koodia ... Endif. Kun pause = True, peli pysähtyy. Voit tehdä vaihtoehtoisen tapahtuman (siis kun pause on päällä) käyttämällä Elseä tai ElseIffiä:
Code: Select all
ukko = LoadObject( "media\guy.bmp", 72 )
Repeat
If KeyHit( CbKeyP ) Then
pause = Not pause
ClearKeys()
EndIf
If Not pause Then
MoveObject ukko, 5
TurnObject ukko, 5
Else
inf$ = "Peli o"+"n pausella. Paina p jatkaaksesi"
Text ScreenWidth() / 2 - TextWidth( inf ) / 2, ScreenHeight() / 2, inf
EndIf
DrawScreen
Forever
Re: Tyhmät kysymykset (I/2010)
Code: Select all
SCREEN 640,480,0,0
kulma=0
x#=600
y#=300
Type pisteet
Field x#
Field y#
EndType
piste.pisteet = New (pisteet)
pistenyt=1
lisä#=0.2
kamerax#=0
kameray#=0
Repeat
lisä +0.02
pistenyt +1
piste\x = x
piste\y = y
x=x+(Cos(kulma)*2)+lisä
y=y+(-Sin(kulma)*2)+0.4
If kulma < 360 Then kulma +5 Else kulma=0
For piste.pisteet = Each pisteet
Dot piste\x - kamerax, piste\y - kameray
Next piste
If pistenyt mod 5 = 0 Then DrawScreen
kamerax = kamerax + (KeyDown(205) - KeyDown(203))*3
kameray = kameray + (KeyDown(208) - KeyDown(200))*3
Forever
Re: Tyhmät kysymykset (I/2010)
For Each loopin jälkeen 'piste' kokoelmamuuttuja osoittaa NULL:iin ja ohjelma kaatuu toisella kierroksella 'piste\x = x' kohtaan. Protip: käytä ForEach loopeissa aina uniikkia kokoelmamuuttujaa.DJ-Filbe wrote:Mikä mättää? Mav tulee kun käytetään Dot -komentoa.
Tämä olikin aika harvinainen kysymys kokoelmista.
-On selkeästi impulsiivinen koodaaja joka...
Re: Tyhmät kysymykset (I/2010)
Joo, "piste.pisteet = new (pisteet)" -koodi puuttui ennen noita uusia x ja y -pisteiden määrittelyjäJATothrim wrote:For Each loopin jälkeen 'piste' kokoelmamuuttuja osoittaa NULL:iin ja ohjelma kaatuu toisella kierroksella 'piste\x = x' kohtaan. Protip: käytä ForEach loopeissa aina uniikkia kokoelmamuuttujaa.DJ-Filbe wrote:Mikä mättää? Mav tulee kun käytetään Dot -komentoa.
Tämä olikin aika harvinainen kysymys kokoelmista.
Eli tässä korjattu koodi ja samalla ensimmäinen kosini-sini -testailuni:
Code: Select all
SCREEN 640,480,0,0
kulma=0
x#=600
y#=300
Type pisteet
Field x#
Field y#
EndType
piste.pisteet = New (pisteet)
pistenyt=1
lisä#=0.2
kamerax#=0
kameray#=0
Repeat
lisä +0.02
pistenyt +1
piste.pisteet = New (pisteet)
piste\x = x
piste\y = y
x=x+(Cos(kulma)*2)+lisä
y=y+(-Sin(kulma)*2)+0.4
If kulma < 360 Then kulma +5 Else kulma=0
For piste.pisteet = Each pisteet
Dot piste\x - kamerax, piste\y - kameray
Next piste
If pistenyt Mod 5 = 0 Then DrawScreen
kamerax = kamerax + (KeyDown(205) - KeyDown(203))*3
kameray = kameray + (KeyDown(208) - KeyDown(200))*3
Forever
Re: Tyhmät kysymykset (I/2010)
Hmm, mitähän tämä meinaa? Ehdotuksia ongelman korjaamiseksi? Tuli ohjelmaa ajettaessa.
- Attachments
-
- Ehh.png (10.82 KiB) Viewed 9548 times
Solar Eclipse
We're in a simulation, and God is trying to debug us.
Re: Tyhmät kysymykset (I/2010)
cbRun näyttäisi korruptoituneen. Käännä ohjelma uudestaan?MaGetzUb wrote:Hmm, mitähän tämä meinaa? Ehdotuksia ongelman korjaamiseksi? Tuli ohjelmaa ajettaessa.
Jos sekään ei toimi, asenna CB uudestaan.
Re: Tyhmät kysymykset (I/2010)
Kokeile tuleeko uudestaan?MaGetzUb wrote:Hmm, mitähän tämä meinaa? Ehdotuksia ongelman korjaamiseksi? Tuli ohjelmaa ajettaessa.
CoolBasic henkilökuntaa
Graafikko
Graafikko
Re: Tyhmät kysymykset (I/2010)
Ei tule enää, Avira oli laittanut cbrunin karanteeniin virusepäilyn takia.
Solar Eclipse
We're in a simulation, and God is trying to debug us.
Re: Tyhmät kysymykset (I/2010)
Ymmärrän ihan hyvin että CoolBasic -ohjelman muistinkäyttö nousee kun videota aletaan toistaa PlayAnimation -komennolla. Onko kuitenkin ihan normaalia että muistinkäyttö ei koskaan pienene takaisin ennalleen sen jälkeen kun video on lakannut pyörimästä, ja jos sama videotiedosto toistetaan uudelleen, muistinkäyttöönkin tulee taas uusi korotus? Mitä teen väärin? On mahdotonta tehdä ohjelma joka toistaa videota uudelleen ja uudelleen vaikkapa kokonaisen päivän, jos muistinkäyttö kasvaa joka kierroksella.
-
- Newcomer
- Posts: 3
- Joined: Thu Sep 09, 2010 5:30 pm
Re: Tyhmät kysymykset (I/2010)
Kuinka suoritan pienen ohjelmani? Tuo Compile/Run tai f5 ei näytä mitään tekevän.
Re: Tyhmät kysymykset (I/2010)
Tuleeko mitään virheilmoitusta? Tai kenties virustorjunnalta mitään? Osa viruksentorjuntaohjelmistoista eivät pidä CB:stä Aseta CBEditor.exe, CB.exe sekä IDE kansiosta cbRun.exe ja CBCompiler.exe luotetuiksi ohjelmiksi.Codemaster wrote:Kuinka suoritan pienen ohjelmani? Tuo Compile/Run tai f5 ei näytä mitään tekevän.
-
- Newcomer
- Posts: 3
- Joined: Thu Sep 09, 2010 5:30 pm
Re: Tyhmät kysymykset (I/2010)
Virustorjunta ei ole valittanut. Tosin kun painan pohjaan f5 niin tulee: Cant save this file. Check the writing permission.Viltzu wrote:Tuleeko mitään virheilmoitusta? Tai kenties virustorjunnalta mitään? Osa viruksentorjuntaohjelmistoista eivät pidä CB:stä Aseta CBEditor.exe, CB.exe sekä IDE kansiosta cbRun.exe ja CBCompiler.exe luotetuiksi ohjelmiksi.Codemaster wrote:Kuinka suoritan pienen ohjelmani? Tuo Compile/Run tai f5 ei näytä mitään tekevän.
Ja voisitteko vähän selventää tuota kansio hommaa?
Re: Tyhmät kysymykset (I/2010)
Koita ajaa CoolBasic järjestelmänvalvojana. Eli hiiren kakkosnapikalla klikkaat kuvaketta ja valitset "Suorita järjestelmänvalvojana" (tai "Run as Administrator" jos on enkuks)Codemaster wrote:Virustorjunta ei ole valittanut. Tosin kun painan pohjaan f5 niin tulee: Cant save this file. Check the writing permission.
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
-
- Newcomer
- Posts: 3
- Joined: Thu Sep 09, 2010 5:30 pm
Re: Tyhmät kysymykset (I/2010)
Taisimpa niin tehdä. (saksankielinen käyttöjärjestelmä) Mutta nyt se sanoo: Cant write source for compiler!VesQ wrote:Koita ajaa CoolBasic järjestelmänvalvojana. Eli hiiren kakkosnapikalla klikkaat kuvaketta ja valitset "Suorita järjestelmänvalvojana" (tai "Run as Administrator" jos on enkuks)Codemaster wrote:Virustorjunta ei ole valittanut. Tosin kun painan pohjaan f5 niin tulee: Cant save this file. Check the writing permission.
Re: Tyhmät kysymykset (I/2010)
No koitappa poistaa CoolBasic ja asentaa se uudelleen avaamalla se asennusohjelma myös järjestelmänvalvojana. Muista kuitenkin ottaa koodisi ja muut tavarasi varmaan talteen ennen CB:n poistamistaCodemaster wrote:Taisimpa niin tehdä. (saksankielinen käyttöjärjestelmä) Mutta nyt se sanoo: Cant write source for compiler!VesQ wrote:Koita ajaa CoolBasic järjestelmänvalvojana. Eli hiiren kakkosnapikalla klikkaat kuvaketta ja valitset "Suorita järjestelmänvalvojana" (tai "Run as Administrator" jos on enkuks)Codemaster wrote:Virustorjunta ei ole valittanut. Tosin kun painan pohjaan f5 niin tulee: Cant save this file. Check the writing permission.
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 (I/2010)
HM? Codemaster, kertoisitko tarkemmin mikä "(saksankielinen käyttöjärjestelmä)" sinulla on? Windows 7 tietoturvaa ruukattiin näet sille tasolle (jolla sen piti olla jo win2k:n aikana), että mm. Program Files(x86/x64) kansiolle on asetettu erityiset oikeudet ja jotkin ohjelmat eivät toimi näiden permissionien alla. (Mm. täydet kirjoitusoikeudet näyttävät puuttuvan normi puliaisilta. : / Kokeileppa tehdä uusi kansio sinne, niin windows kysyy lisää oikeuksia. )
Asenna siis CoolBasic uudestaan jonnekkin muualle kuin oletus hakemistoon.
Asenna siis CoolBasic uudestaan jonnekkin muualle kuin oletus hakemistoon.
-On selkeästi impulsiivinen koodaaja joka...
Re: Tyhmät kysymykset (I/2010)
Win7:sta saa asetetettua täydet kansion oikeudet tavallisillekin pulliaiskäyttäjille. Klikkaa vaan kansiota toisella napikalla, ja Suojaus-välilehden takaa (oiskos se saksaks joku "Schutz") niin saa normaaleillekin käyttäjille asetettua täydet oikeudet. Sillon pitäs homma skulata. (nimim. kokemusta on)JATothrim wrote:HM? Codemaster, kertoisitko tarkemmin mikä "(saksankielinen käyttöjärjestelmä)" sinulla on? Windows 7 tietoturvaa ruukattiin näet sille tasolle (jolla sen piti olla jo win2k:n aikana), että mm. Program Files(x86/x64) kansiolle on asetettu erityiset oikeudet ja jotkin ohjelmat eivät toimi näiden permissionien alla. (Mm. täydet kirjoitusoikeudet näyttävät puuttuvan normi puliaisilta. : / Kokeileppa tehdä uusi kansio sinne, niin windows kysyy lisää oikeuksia. )
Asenna siis CoolBasic uudestaan jonnekkin muualle kuin oletus hakemistoon.
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 (I/2010)
Pitäisi saada toteutettua pelikenttä, joka on yksi iso kuva. Kuvan lataamisessa menee turhan kauan, joten mikä olisi fiksu keino pelikentän jakamiseen osiin niin että saisin latausajan pienemmäksi?
Olisiko niin että jaan kartan useampaan kuvaan ja lataan kuvia silloin kun ukko liikkuu kentällä?
Olisiko niin että jaan kartan useampaan kuvaan ja lataan kuvia silloin kun ukko liikkuu kentällä?
Re: Tyhmät kysymykset (I/2010)
Oletko varma ettet koita ladata objektia? Tarviiko pelikentän olla juuri kuva? Mieti voitko toteuttaa haluamasi ominaisuudet muulla tavoin.DJ-Filbe wrote:Pitäisi saada toteutettua pelikenttä, joka on yksi iso kuva. Kuvan lataamisessa menee turhan kauan, joten mikä olisi fiksu keino pelikentän jakamiseen osiin niin että saisin latausajan pienemmäksi?
Olisiko niin että jaan kartan useampaan kuvaan ja lataan kuvia silloin kun ukko liikkuu kentällä?
Voitko käyttää pienempää kuvaa ja venyttää sitä ohjelmassa isommaksi? Voitko laittaa kuvan kannalta tärkeät palat omiin kuviinsa ja sitten sommitella ne ohjemassa yhteen tyhjään kuvaan?
Jos jaat ison kuvan osiin niin silti niiden palojen lataus aiheuttaa pienen katkoksen peliin, mikä ei aina ehkä ole suotavaa. Siksi suosittelisin etsimään jonkin toisen ratkaisun.