Re: Tyhmät kysymykset (I/2011)
Posted: Fri Apr 06, 2012 9:54 am
Hyvinkin mahdollista. Jospa sitten saisin tuon cbChipmunkin toimimaan. Kiitos timpe!
Game Making Should Be Easy...
https://www.coolbasic.com/phpBB3/
Tuo dll on osa Visual C++ 2010:n kirjastoja. Voit ladata ne täältä: http://www.microsoft.com/download/en/de ... px?id=5555Konstaduck 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?
Ei ole. Ota muuttujaan talteen se arvo.Konstaduck wrote:Tietääkö kukaan, onko CB:ssä komentoa tarkistamaan kuvan tai objektin läpinäkyvyys?
No, käyhän se niinkinLatexi95 wrote: Ei ole. Ota muuttujaan talteen se arvo.
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 mulleVesQ 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.
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.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
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.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.
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
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)
Code: Select all
Drawimage Peekint(polygoni, i+12), Peekint(polygoni, i+8) Peekint(polygoni, i+4)
Kun ei ole tuota Visual Studiota, niin ei sitä Debuggeria pysty pistämään pois päältä
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ä?
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.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ä
No miten tuon voisi sitten korjata?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.
Ä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.Konstaduck wrote:No miten tuon voisi sitten korjata?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 joo, enhän itsekkään sitä koe tarpeelliseksi...VesQ wrote:Ä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.Konstaduck wrote:No miten tuon voisi sitten korjata?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.
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*hienohemmo wrote:Haluasin kysyä miten voin tarkistaa osuuko piirtokomennoilla tehty ympyrä harmaaseen boxin reunaan ja antaa esimerkiksi errorin??