Tyhmät kysymykset (I/2012)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
User avatar
Konstaduck
Advanced Member
Posts: 267
Joined: Sat Dec 17, 2011 3:09 pm
Location: Nurmijärvi, Finland
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Konstaduck »

Hyvinkin mahdollista. Jospa sitten saisin tuon cbChipmunkin toimimaan. Kiitos timpe! :)
Konstaduck.net
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
User avatar
Konstaduck
Advanced Member
Posts: 267
Joined: Sat Dec 17, 2011 3:09 pm
Location: Nurmijärvi, Finland
Contact:

Re: Tyhmät kysymykset (I/2011)

Post 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
Konstaduck.net
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset (I/2011)

Post 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
User avatar
Konstaduck
Advanced Member
Posts: 267
Joined: Sat Dec 17, 2011 3:09 pm
Location: Nurmijärvi, Finland
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Konstaduck »

Kiitos Latexi, se ratkaisi viimeinkin nuo Chipmunkin ongelmat. Enää odottelen vastausta tuohon CoolRecoverin ongelmaan :)
Konstaduck.net
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
User avatar
Konstaduck
Advanced Member
Posts: 267
Joined: Sat Dec 17, 2011 3:09 pm
Location: Nurmijärvi, Finland
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Konstaduck »

Tietääkö kukaan, onko CB:ssä komentoa tarkistamaan kuvan tai objektin läpinäkyvyys?
Konstaduck.net
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset (I/2011)

Post 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.
User avatar
Konstaduck
Advanced Member
Posts: 267
Joined: Sat Dec 17, 2011 3:09 pm
Location: Nurmijärvi, Finland
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Konstaduck »

Latexi95 wrote: Ei ole. Ota muuttujaan talteen se arvo.
No, käyhän se niinkin :)
Konstaduck.net
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset (I/2011)

Post 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.
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 3:48 pm
Location: Turku

Re: Tyhmät kysymykset (I/2011)

Post 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 ;)
En tiedä, mitä tiedän, mutta tiedän ettei se ole mitään kaunista.

I know not what I know, but I do know that it's not beautiful.
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset (I/2011)

Post 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.
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
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 3:48 pm
Location: Turku

Re: Tyhmät kysymykset (I/2011)

Post 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
En tiedä, mitä tiedän, mutta tiedän ettei se ole mitään kaunista.

I know not what I know, but I do know that it's not beautiful.
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset (I/2011)

Post 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ä.
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
User avatar
MetalRain
Active Member
Posts: 188
Joined: Sun Mar 21, 2010 11:17 am
Location: Espoo

Re: Tyhmät kysymykset (I/2011)

Post 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.
User avatar
Konstaduck
Advanced Member
Posts: 267
Joined: Sat Dec 17, 2011 3:09 pm
Location: Nurmijärvi, Finland
Contact:

Re: Tyhmät kysymykset (I/2011)

Post 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
Konstaduck.net
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset (I/2011)

Post 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.
User avatar
Konstaduck
Advanced Member
Posts: 267
Joined: Sat Dec 17, 2011 3:09 pm
Location: Nurmijärvi, Finland
Contact:

Re: Tyhmät kysymykset (I/2011)

Post 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?
Konstaduck.net
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset (I/2011)

Post 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.
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
User avatar
Konstaduck
Advanced Member
Posts: 267
Joined: Sat Dec 17, 2011 3:09 pm
Location: Nurmijärvi, Finland
Contact:

Re: Tyhmät kysymykset (I/2011)

Post 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... :)
Konstaduck.net
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
hienohemmo

Re: Tyhmät kysymykset (I/2011)

Post by hienohemmo »

Haluasin kysyä miten voin tarkistaa osuuko piirtokomennoilla tehty ympyrä harmaaseen boxin reunaan ja antaa esimerkiksi errorin??
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset (I/2011)

Post 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*
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
Locked