Page 10 of 23

Re: Tyhmät kysymykset (I/2011)

Posted: Fri Apr 06, 2012 9:54 am
by Konstaduck
Hyvinkin mahdollista. Jospa sitten saisin tuon cbChipmunkin toimimaan. Kiitos timpe! :)

Re: Tyhmät kysymykset (I/2011)

Posted: Sat Apr 07, 2012 9:33 am
by Konstaduck
Että, pistää oikein vihaksi nämä alituiset virheilmoitukset. Ja vielä niin mysteeriä täynnä :(

Ilmoitus 1: Antoi tällaista virheilmoitusta, kun ajoin ohjelman. Kun poistin tuon CoolRecoverin tuolta Tools - kansiosta, ei enää antanut tuota virheilmoitusta. Mutta nyt kun yrittää avata CoolRecoveria, antaa tuon virheilmoituksen ja sulkee sen sitten sen jälkeen. Helppiä?

Image



Ilmoitus 2: Kun nyt yritin ajaa niitä cbChipmunkin testiohjelmia oikeat DLL:lät määriteltyinä, törmää kone tämmöiseen. Eihän Chipmunkissa mitään ylimääräisiä DLL:älliä tarvinnut?

Image

Re: Tyhmät kysymykset (I/2011)

Posted: Sat Apr 07, 2012 9:57 am
by Latexi95
Konstaduck wrote: Ilmoitus 2: Kun nyt yritin ajaa niitä cbChipmunkin testiohjelmia oikeat DLL:lät määriteltyinä, törmää kone tämmöiseen. Eihän Chipmunkissa mitään ylimääräisiä DLL:älliä tarvinnut?

Image
Tuo dll on osa Visual C++ 2010:n kirjastoja. Voit ladata ne täältä: http://www.microsoft.com/download/en/de ... px?id=5555

Re: Tyhmät kysymykset (I/2011)

Posted: Sat Apr 07, 2012 10:14 am
by Konstaduck
Kiitos Latexi, se ratkaisi viimeinkin nuo Chipmunkin ongelmat. Enää odottelen vastausta tuohon CoolRecoverin ongelmaan :)

Re: Tyhmät kysymykset (I/2011)

Posted: Thu Apr 19, 2012 11:20 am
by Konstaduck
Tietääkö kukaan, onko CB:ssä komentoa tarkistamaan kuvan tai objektin läpinäkyvyys?

Re: Tyhmät kysymykset (I/2011)

Posted: Thu Apr 19, 2012 11:35 am
by Latexi95
Konstaduck wrote:Tietääkö kukaan, onko CB:ssä komentoa tarkistamaan kuvan tai objektin läpinäkyvyys?
Ei ole. Ota muuttujaan talteen se arvo.

Re: Tyhmät kysymykset (I/2011)

Posted: Thu Apr 19, 2012 11:37 am
by Konstaduck
Latexi95 wrote: Ei ole. Ota muuttujaan talteen se arvo.
No, käyhän se niinkin :)

Re: Tyhmät kysymykset (I/2011)

Posted: Thu Apr 19, 2012 2:06 pm
by koodaaja
Kuvalla itselläänhän ei läpinäkyvyyttä olekaan kuin ghostimagella piirrettäessä, jolloin se pitää joka kerta mainita erikseen. Objektilla näppärintä lienee käyttää objectintegeriä tai objectfloatia.

Re: Tyhmät kysymykset (I/2011)

Posted: Mon Apr 23, 2012 3:28 pm
by skorpioni-cb
En tiedä, onko tämäkään niin tyhmä kysymys, mutta kysympä kuitenkin!
Miten saan tehtyä fuktion, jolle voi antaa x määrä parametreja. Tämä idea lähti siitä, että ajattelin tehdä kolmionpiirto-funkkarin, mutta sitten ajattelin, että sitä voisi kehittää pidemmälle, ja että sillä voi oikeasti piirtää polygoneja joilla on se x määrä kärkipisteitä(joita on oltava vähintään kolme, koska polygon=monikulmio) Voiko tämän homman toteuttaa muistipaloilla vai millä, olisin niin kiitollinen, jos voitte vastata nopeasti, ajattelin katsokaas tehdä avaruuteen perustuvan pelin, pelkillä primitiivigrafiikoilla, vai taipuuko CB tähän (toivon että taipuu, en halua tätä tehdä "Java\c\c++"-akselilla ;)

Re: Tyhmät kysymykset (I/2011)

Posted: Mon Apr 23, 2012 3:39 pm
by valscion
Ei voi tehdä CB:llä funktiota, joka ottaisi mielivaltaisen määrän parametreja. Eikä CB nykyisellään taivu melkein mihinkään pelkillä primitiivigrafiikoilla, koska CB ei tue laitteistokiihdytystä (lue: ei käytä näytönohjainta) ja piirto-operaatiot ovat tuskallisen hitaita.

Re: Tyhmät kysymykset (I/2011)

Posted: Mon Apr 23, 2012 3:48 pm
by skorpioni-cb
VesQ wrote:Ei voi tehdä CB:llä funktiota, joka ottaisi mielivaltaisen määrän parametreja. Eikä CB nykyisellään taivu melkein mihinkään pelkillä primitiivigrafiikoilla, koska CB ei tue laitteistokiihdytystä (lue: ei käytä näytönohjainta) ja piirto-operaatiot ovat tuskallisen hitaita.
Aijaa, ainakin minä olin joskus nähnyt vuonna Nooa ja arkki, että joku oli cbkk:hon tehnyt oman implementaation DATA-komennosta niin, että se funkkari ottaa parametreja niin paljon kuin halutaan, ja se käytti muistipaloja, näin ainakin olen muistavinani, nopeudesta ei ole väliksi oikeastaan mulle

Re: Tyhmät kysymykset (I/2011)

Posted: Mon Apr 23, 2012 4:03 pm
by valscion
skorpioni-cb wrote:Aijaa, ainakin minä olin joskus nähnyt vuonna Nooa ja arkki, että joku oli cbkk:hon tehnyt oman implementaation DATA-komennosta niin, että se funkkari ottaa parametreja niin paljon kuin halutaan, ja se käytti muistipaloja, näin ainakin olen muistavinani, nopeudesta ei ole väliksi oikeastaan mulle
Sitten tarkoitat eri asiaa. CB:llä ei voi tehdä funktioita jotka ottaisivat mielivaltaisen määrän parametreja, mutta kyllä CB:llä voi tehdä funktion, joka ottaa parametrinaan muistipalan jossa olisi sitten sitä halutunlaista dataa. Tämä toteutus ei kuitenkaan ole mitenkään yksinkertainen joten saat toteuttaa sen ihan itse, tuskinpa täältä kukaan alkaa valmista koodia sinulle antamaan. Jos et osaa tätä toteuttaa niin et luultavasti kykenisi käyttämään vastaavia funktioitakaan.

EDIT: Niin, ja datalistat (DATA, Read ja Restore) on hyvin buginen toiminnallisuus joka ei toimi lähes millään koneella täysin oikein. Suosittelen vahvasti sen välttämistä.

Re: Tyhmät kysymykset (I/2011)

Posted: Mon Apr 23, 2012 6:03 pm
by MetalRain
skorpioni-cb wrote:Miten saan tehtyä funktion, jolle voi antaa x määrä parametreja. Tämä idea lähti siitä, että ajattelin tehdä kolmionpiirto-funkkarin, mutta sitten ajattelin, että sitä voisi kehittää pidemmälle, ja että sillä voi oikeasti piirtää polygoneja joilla on se x määrä kärkipisteitä(joita on oltava vähintään kolme, koska polygon=monikulmio) Voiko tämän homman toteuttaa muistipaloilla vai millä, olisin niin kiitollinen, jos voitte vastata nopeasti, ajattelin katsokaas tehdä avaruuteen perustuvan pelin, pelkillä primitiivigrafiikoilla.
Muistipalat on tosiaan melko näppärä keino tähän. Ajatellaan vaikka että tahtoisit kertoa listana sen kärkipisteistä. Kärkipisteet koostuvat x ja y koordinaateista jotka voidaan valita olevan vaikka kokonaislukuja (integer) joka manuaalista paljastuu vievän 4 tavua tilaa muistissa. Tällöin siis yhden kärkipisteen esittämiseen vaaditaan 8 tavua.

Jos tällöin halutaan esittää vaikka 8 kärkipistettä sisältävä polygoni niin varataan ensin 8 * 8 tavun alue muistista Makememblockilla. Siihen muistiin voidaan sitten osoittaa vaikka siten että kärkipisteitten data alkaa osoitteista 0, 8, 16 jne.. Sitten täytyy vielä päättää missä järjestyksessä x- ja y-koordinaatti esitetään. Esimerkiksi siten että kärkipisteen osoitteesta 0 tavua eteenpäin on X ja 4 tavua eteenpäin on Y.

Tässä pieni koodinpätkä joka saattaa auttaa alkuun.

Code: Select all

//varataan muistia
//kahdeksalle kärkipisteelle jotka vaativat kukin 8 tavua
polygon = MakeMEMBlock(8*8)

For osoitin=0 To MEMBlockSize(polygon)-1 step 8

	//kirjoitetaan 
	PokeInt polygon, osoitin+0, Rand(400)
	PokeInt polygon, osoitin+4, Rand(300)

Next osoitin

Repeat

    //hypitään muistissa kärkipisteen datan vaatiman tilan kokoisin askelin
    //-1 jotta ei lueta muistipalan yli, sillä peekint lukee aina annetusta osoitteesta 4 tavua eteenpäin.

	For osoitin=0 to memblocksize(polygon)-1 step 8
	
		x = PeekInt(polygon, osoitin+0)
		y = PeekInt(polygon, osoitin+4)
		Circle x, y, 5
		 
	Next osoitin
	
	//muistipalat menee nätisti funktioihin
	PiirräPolygoninReunat(polygon)
	
	DrawScreen 
	
Until KeyHit(cbkeyreturn)

Function PiirräPolygoninReunat(polygoni)

	For osoitin=8 to memblocksize(polygoni)-1 step 8
	
		//edellinen kärkipiste
		x = PeekInt(polygoni, osoitin+0-8)
		y = PeekInt(polygoni, osoitin+4-8)
		
		x2 = PeekInt(polygoni, osoitin+0)
		y2 = PeekInt(polygoni, osoitin+4)
		
		Line x,y,x2,y2
		 
	Next osoitin

EndFunction 
Sitten kun on paljon sisäkkäisiä muistipaloja ja/tai paljon eri tietoja sisältäviä muistipaloja kannattaa käyttää vakioita (const) offsetteinä muistipalojen osoittimiin. Esimerkiksi tästä:

Code: Select all

const POLY_X = 4
Const POLY_Y = 8
Const POLY_IMG = 12
Drawimage Peekint(polygoni, i+POLY_IMG), Peekint(polygoni, i+POLY_X) Peekint(polygoni, i+POLY_Y) 
on paljon helpompi löytää virhe kuin tästä:

Code: Select all

Drawimage Peekint(polygoni, i+12), Peekint(polygoni, i+8) Peekint(polygoni, i+4) 
ja tällöin on helppo myös vaihtaa muistipalan tietojen järjestystä vain vaihtamalla vakion arvoa kuin alkaa koko koodista etsimään erilaisia numerovakioita ja miettimään mitä ne missäkin kohtaa tarkoittaa.

Re: Tyhmät kysymykset (I/2011)

Posted: Fri Apr 27, 2012 8:32 pm
by Konstaduck
Kaipailen edelleen tähän viestiin vastausta:
EDIT:

Kun ei ole tuota Visual Studiota, niin ei sitä Debuggeria pysty pistämään pois päältä :o

Kostaduck wrote:
Antoi tällaista virheilmoitusta, kun ajoin ohjelman. Kun poistin tuon CoolRecoverin tuolta Tools - kansiosta, ei enää antanut tuota virheilmoitusta. Mutta nyt kun yrittää avata CoolRecoveria, antaa tuon virheilmoituksen ja sulkee sen sitten sen jälkeen. Helppiä?

Image

Re: Tyhmät kysymykset (I/2011)

Posted: Fri Apr 27, 2012 11:09 pm
by Latexi95
Konstaduck wrote:Kaipailen edelleen tähän viestiin vastausta:
EDIT:

Kun ei ole tuota Visual Studiota, niin ei sitä Debuggeria pysty pistämään pois päältä :o

Tuo ohjelma heittää windowsin exceptionin jota ei napata talteen. Jokin siis menee pahasti pieleen. Mikään debuggerin käytöstä poistaminen ei auta (jos se edes on mahdollista), koska silloin tuo ohjelma yksinkertaisesti vain kaatuisi.

Re: Tyhmät kysymykset (I/2011)

Posted: Sat Apr 28, 2012 10:19 am
by Konstaduck
Latexi95 wrote: Tuo ohjelma heittää windowsin exceptionin jota ei napata talteen. Jokin siis menee pahasti pieleen. Mikään debuggerin käytöstä poistaminen ei auta (jos se edes on mahdollista), koska silloin tuo ohjelma yksinkertaisesti vain kaatuisi.
No miten tuon voisi sitten korjata?

Re: Tyhmät kysymykset (I/2011)

Posted: Sat Apr 28, 2012 2:57 pm
by valscion
Konstaduck wrote:
Latexi95 wrote: Tuo ohjelma heittää windowsin exceptionin jota ei napata talteen. Jokin siis menee pahasti pieleen. Mikään debuggerin käytöstä poistaminen ei auta (jos se edes on mahdollista), koska silloin tuo ohjelma yksinkertaisesti vain kaatuisi.
No miten tuon voisi sitten korjata?
Älä käytä CoolRecoveria? Se ei ainakaan minulla toimi halutulla tapaa, joten en koskaan ole sitä tarvinnutkaan. Käytän gittiä myös omissa privaateissa projekteissani kehityksen seurantaan, näin ei koodikaan katoa vaikka vahingossa poistaisinkin jotain tiedostoja.

Re: Tyhmät kysymykset (I/2011)

Posted: Sat Apr 28, 2012 10:01 pm
by Konstaduck
VesQ wrote:
Konstaduck wrote:
Latexi95 wrote: Tuo ohjelma heittää windowsin exceptionin jota ei napata talteen. Jokin siis menee pahasti pieleen. Mikään debuggerin käytöstä poistaminen ei auta (jos se edes on mahdollista), koska silloin tuo ohjelma yksinkertaisesti vain kaatuisi.
No miten tuon voisi sitten korjata?
Älä käytä CoolRecoveria? Se ei ainakaan minulla toimi halutulla tapaa, joten en koskaan ole sitä tarvinnutkaan. Käytän gittiä myös omissa privaateissa projekteissani kehityksen seurantaan, näin ei koodikaan katoa vaikka vahingossa poistaisinkin jotain tiedostoja.
No joo, enhän itsekkään sitä koe tarpeelliseksi... :)

Re: Tyhmät kysymykset (I/2011)

Posted: Sun May 06, 2012 10:57 am
by hienohemmo
Haluasin kysyä miten voin tarkistaa osuuko piirtokomennoilla tehty ympyrä harmaaseen boxin reunaan ja antaa esimerkiksi errorin??

Re: Tyhmät kysymykset (I/2011)

Posted: Sun May 06, 2012 1:37 pm
by valscion
hienohemmo wrote:Haluasin kysyä miten voin tarkistaa osuuko piirtokomennoilla tehty ympyrä harmaaseen boxin reunaan ja antaa esimerkiksi errorin??
Tämä onkin vähän hankalampi aihealue. Olen itse tehnyt jo useampaan kertaan tämän saman tarkistuksen eri ohjelmointikielillä mutta CB-versio puuttuu. Voit itse koittaa säätää tarkistusta ottamalla neuvoa täältä: Circle-Rectangle collision detection (intersection) - Stack Overflow. Varsinkin se vastaus, jossa on selitetty asia kuvan ja koodin kera, on todella hyödyllinen. *klik*