Page 43 of 43

Re: Tyhmät kysymykset (II/2009)

Posted: Thu Dec 31, 2009 3:58 pm
by Sly_Jack0
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.

Re: Tyhmät kysymykset (II/2009)

Posted: Fri Jan 01, 2010 1:53 pm
by Dewe
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-)

Re: Tyhmät kysymykset (II/2009)

Posted: Fri Jan 01, 2010 2:18 pm
by kaneli2000
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ä.

Re: Tyhmät kysymykset (II/2009)

Posted: Sat Jan 02, 2010 1:52 pm
by Frozen
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? :?

Re: Tyhmät kysymykset (II/2009)

Posted: Sat Jan 02, 2010 2:08 pm
by DatsuniG

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


Re: Tyhmät kysymykset (II/2009)

Posted: Sat Jan 02, 2010 2:35 pm
by kaneli2000
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.

Re: Tyhmät kysymykset (II/2009)

Posted: Sat Jan 02, 2010 3:15 pm
by Dewe
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.

Re: Tyhmät kysymykset (II/2009)

Posted: Sat Jan 02, 2010 3:35 pm
by koodaaja
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.

Re: Tyhmät kysymykset (II/2009)

Posted: Sat Jan 02, 2010 7:46 pm
by Koodi
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)?

Re: Tyhmät kysymykset (II/2009)

Posted: Sat Jan 02, 2010 7:57 pm
by Awaclus
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

Re: Tyhmät kysymykset (II/2009)

Posted: Sat Jan 02, 2010 8:06 pm
by Jonez
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

Re: Tyhmät kysymykset (II/2009)

Posted: Sat Jan 02, 2010 8:18 pm
by Herra Siili
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...


Re: Tyhmät kysymykset (II/2009)

Posted: Sun Jan 03, 2010 10:28 am
by skorpioni-cb
Tartten apua tiedostomuodon muuttamisessa. Ja jos siihen tarvitaan omaa dll-tiedostoa niin laittakaa sekä coolbasic-koodi että dll-koodi.

Re: Tyhmät kysymykset (II/2009)

Posted: Sun Jan 03, 2010 11:06 am
by phons
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...

Re: Tyhmät kysymykset (II/2009)

Posted: Sun Jan 03, 2010 11:19 am
by skorpioni-cb
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.

Re: Tyhmät kysymykset (II/2009)

Posted: Sun Jan 03, 2010 11:52 am
by kaneli2000
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

Re: Tyhmät kysymykset (II/2009)

Posted: Sun Jan 03, 2010 1:24 pm
by TheFish
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ä.


Re: Tyhmät kysymykset (II/2009)

Posted: Sun Jan 03, 2010 3:48 pm
by skorpioni-cb
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

Re: Tyhmät kysymykset (II/2009)

Posted: Sun Jan 03, 2010 4:05 pm
by TheFish
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).

Re: Tyhmät kysymykset (II/2009)

Posted: Mon Jan 04, 2010 9:15 am
by Zero
Jatketaan keskustelua seuraavassa viestiketjussa, niin ei pääse kasvamaan liian massiivisiksi nämä:
Tyhmät kysymykset (I/2010)

*LUKKO*