Tyhmät kysymykset (II/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
User avatar
Sly_Jack0
Devoted Member
Posts: 612
Joined: Mon Dec 10, 2007 9:25 am

Re: Tyhmät kysymykset (II/2009)

Post by Sly_Jack0 » Thu Dec 31, 2009 4:58 pm

koodi wrote:...
Tämä ei todellakaan ole kovin hyvä tai täydellinen vastaus, mutta type kasvaa dynaamisesti toisin kuin taulukko eli typeen ei tarvitse määritellä sen kokoa vaan se kasvaa ja pienenee aina automaattisesti. Taulukosta voit taas poimia arvon jostain tietystä kohtaa ilman että joudut iteroimaan sitä läpi.

Dewe
Newcomer
Posts: 18
Joined: Tue Dec 01, 2009 9:53 pm
Location: Kaskinen, Pohjanmaa

Re: Tyhmät kysymykset (II/2009)

Post by Dewe » Fri Jan 01, 2010 2:53 pm

Tarttisin apua, kun ohjelma ilmoittaa " Not enough frames in bitmap" (tiedän mitä se tarkoittaa :D ) kun yritin saada peliini ukon juoksemaan piirtämällä oman bittikartan. Esimerkkinä käytin zerorunia mediasta. 8-)

Code: Select all

Not enough disc space. Delete windows?

User avatar
kaneli2000
Guru
Posts: 1059
Joined: Mon Mar 17, 2008 3:40 pm
Location: Lempäälä

Re: Tyhmät kysymykset (II/2009)

Post by kaneli2000 » Fri Jan 01, 2010 3:18 pm

Dewe wrote:Tarttisin apua, kun ohjelma ilmoittaa " Not enough frames in bitmap" (tiedän mitä se tarkoittaa :D ) kun yritin saada peliini ukon juoksemaan piirtämällä oman bittikartan. Esimerkkinä käytin zerorunia mediasta. 8-)
Esimerkiksi jos kuvassa on 100 pikseliä leveyssuunnassa ja yrität lukea vahingossa 120, tuo tulee vastaan. Siis yrität lukea pikseleitä kuvan ulkopuolelta.

Tämä käy joskus, kun yhdessä framessa on liian vähän pikseleitä.
I see the rainbow rising

User avatar
Frozen
Advanced Member
Posts: 282
Joined: Fri Jan 01, 2010 5:46 pm
Location: Suomi

Re: Tyhmät kysymykset (II/2009)

Post by Frozen » Sat Jan 02, 2010 2:52 pm

Ongelmia elämäpalkin kanssa. Jos roolipelissä vaikkapa 1 tasolla maksimi elämät ovat 50. Elämä palkki pysyy silloin vaikkapa 50 pikselissä. Mutta kun ukko kehittyy 2 tasolle, ja elämää tulee vaikkapa 25 lisää, elämäpalkki venyy eteenpäin jota en haluaisi. tietenkin voisin jakaa drawimage boxissa sen health luvun jollain, mutta mitenkä tämä menee jos elämäluku on vaikka 104? :?
Image
Työn alla:
Jotakin epäjulkaistua

DatsuniG
Advanced Member
Posts: 367
Joined: Fri Aug 15, 2008 9:57 pm

Re: Tyhmät kysymykset (II/2009)

Post by DatsuniG » Sat Jan 02, 2010 3:08 pm

Code: Select all

BoxWidth as Float = 50
BoxHeight as Integer = 10
CurrentHealth As Float = 100
MaxHealth As Float = 100
x = 2
y = 2
M = -1
Repeat
    CurrentHealth = CurrentHealth + m
    If CurrentHealth = 0 or currentHealth = MaxHealth then m = -m
    Color cbRed
    Box x, y, BoxWidth, BoxHeight
    Color cbGreen
    Box x, y, BoxWidth * (CurrentHealth / MaxHealth), BoxHeight
    DrawScreen
Forever
EDIT:

Mitäs kaneli pätee? : D

Last edited by DatsuniG on Sat Jan 02, 2010 4:06 pm, edited 6 times in total.
Hengität nyt manuaalisesti.

User avatar
kaneli2000
Guru
Posts: 1059
Joined: Mon Mar 17, 2008 3:40 pm
Location: Lempäälä

Re: Tyhmät kysymykset (II/2009)

Post by kaneli2000 » Sat Jan 02, 2010 3:35 pm

DatsuniG wrote:

Code: Select all

Color cbRed
Box x, y, BoxWidth
Color cbGreen
Box x, y, BoxWidth * (CurrentHealth / MaxHealth)
Vaiko:

Code: Select all

Color cbRed
Box x, y, BoxWidth#, 20
Color cbGreen
Box x, y, BoxWidth# * (CurrentHealth# / MaxHealth#), 20
20, tai ihan sama, mikä se sitten onkaan.
EDIT: Eikä tämä systeemi edes toimi, ellei CurrentHealth, BoxWidth ja MaxHealth ole desimaalilukuja. Muokkasin.
I see the rainbow rising

Dewe
Newcomer
Posts: 18
Joined: Tue Dec 01, 2009 9:53 pm
Location: Kaskinen, Pohjanmaa

Re: Tyhmät kysymykset (II/2009)

Post by Dewe » Sat Jan 02, 2010 4:15 pm

Nyt olis tyhmä kysymys taas. :D Eli voisko joku kertoa että mistä löydän tarkat mitat kuvalleni ja miten ne pitäis laittaa kun olis "LoadAnimObject("Files\Guy_1 P90.bmp",67,67,0,1) nii vieläkin jää toisessa asennossa P90 piippu pois kuvasta. Jos joku vois neuvoo et miten ne mitat pitäs vie laittaa. Kuva on 80x67.

Code: Select all

Not enough disc space. Delete windows?

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

Re: Tyhmät kysymykset (II/2009)

Post by koodaaja » Sat Jan 02, 2010 4:35 pm

Jos kuvasi koko on 80x67, mistä tuo 67, 67 tulee? Manuaalista voi tarkistaa parametrit komentoa tuplaklikkaamalla.

Code: Select all

LoadAnimObject("Files\Guy_1 P90.bmp", 80, 67, 0, 1)
Tuon pitäisi toimia - mikäli ukko on ylhäältä kuvattu, laita vielä ykkösen jälkeen pyöritysarvo.

Koodi

Re: Tyhmät kysymykset (II/2009)

Post by Koodi » Sat Jan 02, 2010 8:46 pm

Moi taas! Tänään yritin tehdä ohjelmaa, joka piirtää pisteen/laatikon/neliön tms. siihen paikkaan, mistä kohtaa painetaan. Ongelmaksi tuli se, että ne laatikot jää kiinni kursoriin. Haulla löysin kuinka kuvan päälle voi tehdä reiän yms. mutta yritin soveltaa koodipätkää, mutta se ei toiminut.
Eli siis miten saan vaikka ympyrän piirrettyä tyhjälle taustalle niin, että se pysyy siinä( kunnes toisin määrätään)?

Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Tyhmät kysymykset (II/2009)

Post by Awaclus » Sat Jan 02, 2010 8:57 pm

Koodi wrote: Eli siis miten saan vaikka ympyrän piirrettyä tyhjälle taustalle niin, että se pysyy siinä( kunnes toisin määrätään)?

Code: Select all

BoxExists = 1

Repeat
 
    If BoxExists Then Box 5, 5, 5, 5, 1

    BoxExists = Rand (0,1)

    DrawScreen

Forever

User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by Jonez » Sat Jan 02, 2010 9:06 pm

Koodi wrote:Moi taas! Tänään yritin tehdä ohjelmaa, joka piirtää pisteen/laatikon/neliön tms. siihen paikkaan, mistä kohtaa painetaan. Ongelmaksi tuli se, että ne laatikot jää kiinni kursoriin. Haulla löysin kuinka kuvan päälle voi tehdä reiän yms. mutta yritin soveltaa koodipätkää, mutta se ei toiminut.
Eli siis miten saan vaikka ympyrän piirrettyä tyhjälle taustalle niin, että se pysyy siinä( kunnes toisin määrätään)?
Tässä kaksi eri tapaa piirtää näytölle pysyvää kuvaa. Ensimmäisessä tapauksessa piirretään ympyrät erilliseen kuvaan, eli näytöllä oikeastaan on vain yksi kuva. Toisessa tapauksessa luodaan muistiin uusien ympyröiden koordinaatit ja jokainen ympyrä piirretään joka kierroksella uudestaan. Sanomattakin selvää että jälkimmäinen tapa on paljon raskaampi, mutta siinä on hyötynä esim. se, että ympyröitä voi myöhemmin täsmällisesti poistaa.

Code: Select all

tausta = MakeImage( ScreenWidth(), ScreenHeight() )

Repeat

    DrawImage tausta, 0, 0
    
    If MouseDown( 1 ) Then
        DrawToImage tausta
            Color cbWhite
            Circle MouseX() - 5, MouseY() - 5, 10
        DrawToScreen
    EndIf

    DrawScreen
Forever
Jos koodi ei näytä toimivan (eli mitään ei piirretä), vaihda kohta:
Circle MouseX() - 5, MouseY() - 5, 10 -> Circle MouseX() - 5, -MouseY() + 5, 10
eli y-koordinaatti vastakkaiseksi.

Tämä tapa on huono tässä tarkoituksessa, koska fps tippuu erittäin nopeasti.

Code: Select all

Type ympyrät
    Field x
    Field y
EndType

Repeat

    If MouseDown( 1 ) Then
        ny.ympyrät = New( ympyrät )
        ny\x = MouseX() - 5
        ny\y = MouseY() - 5
    EndIf
    
    For iy.ympyrät = Each ympyrät
        Circle iy\x, iy\y, 10
    Next iy

    DrawScreen
Forever
Last edited by Jonez on Sun Jan 03, 2010 1:44 am, edited 1 time in total.
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War

User avatar
Herra Siili
Advanced Member
Posts: 308
Joined: Tue Nov 25, 2008 9:06 pm
Location: Viitasaari, Keski-Suomi
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by Herra Siili » Sat Jan 02, 2010 9:18 pm

Tässä on yksi tapa, eli laatikot piirretään erilliseen kuvaan.

Code: Select all

//Luodaan kuva
img = MakeImage( ScreenWidth(), ScreenHeight() )

//Aloitetaan pääsilmukka
Repeat
	//Jos ppainetaan hiirtä...
	If MouseHit (1) Then
		//Asetetaak piirto kuvaan
		DrawToImage img
			//Piirretään laatikko
			Box MouseX(), MouseY(), 10, 10
		//Piirto takaisin ruudulle
		DrawToScreen
	//Lopetetaan If-lause
	EndIf
	//Piirretään kuva
	DrawImage img, 0, 0
	//Piirretään ruutu
	DrawScreen

	//Lopetetaan pääsilmukka
Forever
EDIT:

Tulipa oltua hidas oikein rankasti...

a.k.a. Hedge

User avatar
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 4:48 pm
Location: Turku

Re: Tyhmät kysymykset (II/2009)

Post by skorpioni-cb » Sun Jan 03, 2010 11:28 am

Tartten apua tiedostomuodon muuttamisessa. Ja jos siihen tarvitaan omaa dll-tiedostoa niin laittakaa sekä coolbasic-koodi että dll-koodi.
Minä en tiedä mitä tiedän, mutta sen tiedän ettei se ole mitään kaunista.

User avatar
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Tyhmät kysymykset (II/2009)

Post by phons » Sun Jan 03, 2010 12:06 pm

Siis haluatko vaihtaa formaattia CB:llä vai ihan itse? Ihan itse niin kirjoittaa nimen perään vaan uuden formaatin... CB:llä... yksi mahdollisuus on että ensin kopioit koko filen sisällön sitten teet uuden ja nimeät sen samalla tavalla mutta eri formaatilla ja kopioit tiedot uuteen filuun...
Image

User avatar
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 4:48 pm
Location: Turku

Re: Tyhmät kysymykset (II/2009)

Post by skorpioni-cb » Sun Jan 03, 2010 12:19 pm

phons wrote:Siis haluatko vaihtaa formaattia CB:llä vai ihan itse? Ihan itse niin kirjoittaa nimen perään vaan uuden formaatin... CB:llä... yksi mahdollisuus on että ensin kopioit koko filen sisällön sitten teet uuden ja nimeät sen samalla tavalla mutta eri formaatilla ja kopioit tiedot uuteen filuun...
Esimerkki olisi paikallaan.
Minä en tiedä mitä tiedän, mutta sen tiedän ettei se ole mitään kaunista.

User avatar
kaneli2000
Guru
Posts: 1059
Joined: Mon Mar 17, 2008 3:40 pm
Location: Lempäälä

Re: Tyhmät kysymykset (II/2009)

Post by kaneli2000 » Sun Jan 03, 2010 12:52 pm

skorpioni-cb wrote:
phons wrote:Siis haluatko vaihtaa formaattia CB:llä vai ihan itse? Ihan itse niin kirjoittaa nimen perään vaan uuden formaatin... CB:llä... yksi mahdollisuus on että ensin kopioit koko filen sisällön sitten teet uuden ja nimeät sen samalla tavalla mutta eri formaatilla ja kopioit tiedot uuteen filuun...
Esimerkki olisi paikallaan.

Code: Select all

filu = OpenToWrite("lollero.mof") //mof = [m]inun [o]ma [f]ormaatti
I see the rainbow rising

TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Tyhmät kysymykset (II/2009)

Post by TheFish » Sun Jan 03, 2010 2:24 pm

kaneli2000 wrote:
skorpioni-cb wrote:
phons wrote:Siis haluatko vaihtaa formaattia CB:llä vai ihan itse? Ihan itse niin kirjoittaa nimen perään vaan uuden formaatin... CB:llä... yksi mahdollisuus on että ensin kopioit koko filen sisällön sitten teet uuden ja nimeät sen samalla tavalla mutta eri formaatilla ja kopioit tiedot uuteen filuun...
Esimerkki olisi paikallaan.

Code: Select all

filu = OpenToWrite("lollero.mof") //mof = [m]inun [o]ma [f]ormaatti
Otahan huomioon, että esimerkiksi png-formaattiin tallennettu kuva ei ole levyllä sama kuin sama kuva bmp-formaatissa. Myöskään esim .doc päätteen vaihtaminen .docx:ksi ei muuta tiedostoa docx-formaattiin.

Mutta jos sen sijaan tahdot vain vaihtaa raakatekstiä sisältävien tiedostojen tunnistetta niin silloin tuo toimii (esim. .cb -> .txt).
EDIT:

Niin ja vielä selvennyksenä: Kukaan ei voi antaa koodia joka konvertoi tiedoston formaatista toiseen tietämättä mistä ja mihin. Jos tahdot muuttaa kuva-formaatteja, suosittelen että pakkaat ohjelman mukaan esim ImageMagick:in ja käytät sitä kuvien muokkaamiseen. Cb-itsessään ei tosin pysty monitoroimaan, että milloin kuva on muutettu tai tuleeko prosessissa virheitä.

CoolBasic henkilökuntaa
Kehittäjä

User avatar
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 4:48 pm
Location: Turku

Re: Tyhmät kysymykset (II/2009)

Post by skorpioni-cb » Sun Jan 03, 2010 4:48 pm

TheFish wrote:

Code: Select all

filu = OpenToWrite("lollero.mof") //mof = [m]inun [o]ma [f]ormaatti
Otahan huomioon, että esimerkiksi png-formaattiin tallennettu kuva ei ole levyllä sama kuin sama kuva bmp-formaatissa. Myöskään esim .doc päätteen vaihtaminen .docx:ksi ei muuta tiedostoa docx-formaattiin.

Mutta jos sen sijaan tahdot vain vaihtaa raakatekstiä sisältävien tiedostojen tunnistetta niin silloin tuo toimii (esim. .cb -> .txt).
EDIT:

Niin ja vielä selvennyksenä: Kukaan ei voi antaa koodia joka konvertoi tiedoston formaatista toiseen tietämättä mistä ja mihin. Jos tahdot muuttaa kuva-formaatteja, suosittelen että pakkaat ohjelman mukaan esim ImageMagick:in ja käytät sitä kuvien muokkaamiseen. Cb-itsessään ei tosin pysty monitoroimaan, että milloin kuva on muutettu tai tuleeko prosessissa virheitä.

Haluaisin muuttaa mvk->avi
Minä en tiedä mitä tiedän, mutta sen tiedän ettei se ole mitään kaunista.

TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Tyhmät kysymykset (II/2009)

Post by TheFish » Sun Jan 03, 2010 5:05 pm

skorpioni-cb wrote:Haluaisin muuttaa mvk->avi
Googlella löytyi esim. tämmöinen ohje. En tosin näe mitään syytä käyttää cb:tä videon konvertoimiseen. Testaa mieluummin vaikka SUPER:ia siihen (ellei sinulla sitten ole jotain oikeaa syytä konvertoida video keskellä ohjelmaa).
CoolBasic henkilökuntaa
Kehittäjä

User avatar
Zero
Lead Developer
Lead Developer
Posts: 725
Joined: Sun Aug 26, 2007 2:30 pm
Location: Helsinki, Finland
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by Zero » Mon Jan 04, 2010 10:15 am

Jatketaan keskustelua seuraavassa viestiketjussa, niin ei pääse kasvamaan liian massiivisiksi nämä:
Tyhmät kysymykset (I/2010)

*LUKKO*
CoolBasic henkilökuntaa
Johtava Suunnittelija
CoolBasic V3, CoolBasic Classic

http://www.coolbasic.com/blog

Locked