Eipä ole mahdollista. Emme me mitenkään compileria käännetä itse saatikka tiedetä sen lähdekoodeja. Vanha runtime on CBCompiler.exe-tiedostossa aivan lopussa, joten sen vaihtaminen cbEnchantedin runtimeen on vain bittien vaihtoa. Viimeinen kokonaisluku exessä kertoo, kuinka monta tavua pitää compilerissa kelata taaksepäin että päästään runtimen alkuun - tämän avulla olemme iskeneet paikalle toisen runtimen. Vaikka toistankin itseäni, niin sanon silti tämän uudelleen: Emme voi muuttaa CBCompilerista mitään muuta kuin runtimen. Kääntäjään liittyvät muutosehdotukset eivät kuulu tähän projektiin.Combatti wrote:Olisi kyllä mukava lisä, jos poistettaisin compilerista tuo ominaisuus, että ei tarvitse nimetä ajettavaa tiedostoa tietyllä tavalla, että se ajautuisi.
cbEnchanted - uudelleenkirjoitettu runtime
Re: cbEnchanted - uudelleenkirjoitettu runtime
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
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
- Konstaduck
- Advanced Member
- Posts: 267
- Joined: Sat Dec 17, 2011 3:09 pm
- Location: Nurmijärvi, Finland
- Contact:
Re: cbEnchanted - uudelleenkirjoitettu runtime
Onhan GFXModeExists() olennainen osa koodaajaan työkalupakkia, joten miksei silläkin voisi olla hiukan suurempaa prioreettiä?
Re: cbEnchanted - uudelleenkirjoitettu runtime
Ei se ole. Saat hyvin tehtyä pelin ilman sitä. GFXModeExists() on lähinnä vasta viimeistelyvaiheen hommia.Konstaduck wrote:Onhan GFXModeExists() olennainen osa koodaajaan työkalupakkia, joten miksei silläkin voisi olla hiukan suurempaa prioreettiä?
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
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
- Konstaduck
- Advanced Member
- Posts: 267
- Joined: Sat Dec 17, 2011 3:09 pm
- Location: Nurmijärvi, Finland
- Contact:
Re: cbEnchanted - uudelleenkirjoitettu runtime
Muuten tuli mieleen, lukeeko se nykyinen näyttötila jossain päin rekisteriä? Jos lukee, voisi tehdä funktion NowGFXMode() - joka kertoo nykyisen näyttötilan. cbAPIllahan onnistuu rekisterin lukeminen.
Re: cbEnchanted - uudelleenkirjoitettu runtime
Tuossa nyt ei olisi päätä eikä häntää. Miksi ruveta hakemaan nykyisen näyttötilan tietoja rekisteristä, kun voi saman tehdä nopeamminkin screenheight-ja -width:eillä. Värisyvyyttähän ei voi selvittää, mutta onko sillä loppujen lopuksi väliä? Korjaa, jos tulkitsin ajatuksesi väärin.Konstaduck wrote:Muuten tuli mieleen, lukeeko se nykyinen näyttötila jossain päin rekisteriä? Jos lukee, voisi tehdä funktion NowGFXMode() - joka kertoo nykyisen näyttötilan. cbAPIllahan onnistuu rekisterin lukeminen.
~Yhteiskuntaan kyllästynyt koodari.
- Konstaduck
- Advanced Member
- Posts: 267
- Joined: Sat Dec 17, 2011 3:09 pm
- Location: Nurmijärvi, Finland
- Contact:
Re: cbEnchanted - uudelleenkirjoitettu runtime
Voi että combatti, olet oikeassa! Miksi en tule koskaan ajatelleeksi noin yksinkertaisia vastauksia..?Combatti wrote:Tuossa nyt ei olisi päätä eikä häntää. Miksi ruveta hakemaan nykyisen näyttötilan tietoja rekisteristä, kun voi saman tehdä nopeamminkin screenheight-ja -width:eillä. Värisyvyyttähän ei voi selvittää, mutta onko sillä loppujen lopuksi väliä? Korjaa, jos tulkitsin ajatuksesi väärin.
Re: cbEnchanted - uudelleenkirjoitettu runtime
Huomaa kyllä kun joku on elänyt koko tietokone-elämänsä 32-bittisten värien aikakautta n_nCombatti wrote:Värisyvyyttähän ei voi selvittää, mutta onko sillä loppujen lopuksi väliä?
- Sami The Great
- Advanced Member
- Posts: 485
- Joined: Tue Aug 28, 2007 4:15 pm
- Contact:
Re: cbEnchanted - uudelleenkirjoitettu runtime
ScreenWidth ja-Height palauttaa tietääkseni luodun ikkunan koon. Nykyisen näyttötilan saamisella varmaankin haettiin sitä, että ennen, kun ikkuna luodaan, saadaan tietoon koko, johon ikkuna asetetaan.
http://www.rockodilegames.com
CoolBasickin käyttäjä vuodesta 2004.
CoolBasickin käyttäjä vuodesta 2004.
- Konstaduck
- Advanced Member
- Posts: 267
- Joined: Sat Dec 17, 2011 3:09 pm
- Location: Nurmijärvi, Finland
- Contact:
Re: cbEnchanted - uudelleenkirjoitettu runtime
Hmm, totta. Eihän screenwidth ja -height hyödytä yhtään mitään, jos ei tiedetä, tukeeko näyttä tilaa. Siksi GFXModeExists() on keksitty.
Re: cbEnchanted - uudelleenkirjoitettu runtime
Itse laitan melko usein 800x600 koon. Suuri ja monessa monitorissa tuettu. Löysin rekisteristä arvot MaxResolution ja DefaultSettings.X-ja Yresolution. Hakusanana oli loogisestikin ajateltuna resolution. Saattavathan ne arvot tietenkin olla konekohtaisia.Konstaduck wrote:Hmm, totta. Eihän screenwidth ja -height hyödytä yhtään mitään, jos ei tiedetä, tukeeko näyttä tilaa. Siksi GFXModeExists() on keksitty.
~Yhteiskuntaan kyllästynyt koodari.
-
- Devoted Member
- Posts: 594
- Joined: Tue Sep 30, 2008 4:30 pm
- Location: Ruudun toisella puolella
Re: cbEnchanted - uudelleenkirjoitettu runtime
Eikös juuri tästä syystä ole tuo GFXModeExists()?Combatti wrote:...Saattavathan ne arvot tietenkin olla konekohtaisia.
Mutta kuten VesQ sanoi, ei se kovin olennainen osa koodausta ole.
Re: cbEnchanted - uudelleenkirjoitettu runtime
Hmm, käsittääkseni GFXModeExists:kin lukee tietonsa rekisteristä. Hirtä heti, jos olen väärässä.Wingman wrote:Eikös juuri tästä syystä ole tuo GFXModeExists()?Combatti wrote:...Saattavathan ne arvot tietenkin olla konekohtaisia.
Mutta kuten VesQ sanoi, ei se kovin olennainen osa koodausta ole.
Ja Konstaduck vain haluaa käyttää GFXModeExistsiä, vaikkei edes ole kovin olennainen komento.
~Yhteiskuntaan kyllästynyt koodari.
Re: cbEnchanted - uudelleenkirjoitettu runtime
En tiedä mistä nykyinen CB hakee tiedon GFXModeExists-funktiossa. cbE ei tietenkään vielä hae tietoa yhtään mistään, koska sitä ei ole vielä toteutettu. Sitten kun se toteutetaan, hakenee se tiedon näytönohjaimelta eikä rekisteristä.Combatti wrote:Hmm, käsittääkseni GFXModeExists:kin lukee tietonsa rekisteristä. Hirtä heti, jos olen väärässä.
Ja Konstaduck vain haluaa käyttää GFXModeExistsiä, vaikkei edes ole kovin olennainen komento.
Mutta nyt oikeasti, takaisin topikkiin. GFXModeExistsistä vänkääminen ei enää tässä vaiheessa liity cbEnchantediin. Joten jos jollakulla on vielä tästä aiheesta lisää sanottavaa, sanokoon sen offtopic-ketjussa. Kiitos ja kumarrus.
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
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
Re: cbEnchanted - uudelleenkirjoitettu runtime
Miksi ylipäätään mitään laitteistoon liittyvää tietoa olisi rekisterissäCombatti wrote: Hmm, käsittääkseni GFXModeExists:kin lukee tietonsa rekisteristä. Hirtä heti, jos olen väärässä.
Ja Konstaduck vain haluaa käyttää GFXModeExistsiä, vaikkei edes ole kovin olennainen komento.
Ja onhan se.
- Konstaduck
- Advanced Member
- Posts: 267
- Joined: Sat Dec 17, 2011 3:09 pm
- Location: Nurmijärvi, Finland
- Contact:
Re: cbEnchanted - uudelleenkirjoitettu runtime
Anteeksi törkeä offtopic, mutta pakko tähän väliin sanoa, että tuo 800 x 600 on melkoista suttua 1920 x 1080 hd monitorissa...Combatti wrote:Itse laitan melko usein 800x600 koon. Suuri ja monessa monitorissa tuettu
Re: cbEnchanted - uudelleenkirjoitettu runtime
Riippuu monitorin koosta enemmän kuin resoluutiosta.Konstaduck wrote:Anteeksi törkeä offtopic, mutta pakko tähän väliin sanoa, että tuo 800 x 600 on melkoista suttua 1920 x 1080 hd monitorissa...Combatti wrote:Itse laitan melko usein 800x600 koon. Suuri ja monessa monitorissa tuettu
Re: cbEnchanted - uudelleenkirjoitettu runtime
Attention:
Varoituksia on jaettu.Nyt loppuu se offtopic
Re: cbEnchanted - uudelleenkirjoitettu runtime
Viltzun kokeiluiden tuloksena löytyi muutamia rajoituksia koskien cbE:n ääntentoistoa:
xm-tiedostoja voi toistaa vain suoraan tiedostosta eikä niitä voi ladata LoadSoundilla ja wav-tiedostoista on tuettuna vain 8/16bittiset pcm wavit. Wav tiedostot kannattaa siis pakata vaikka flaciksi tai ogg:ksi. Eli varsinkin tuo jälkimmäinen saattaa aiheuttaa "PlaySound() failed - Could not load audio stream" tai "LoadSound() failed!" virheilmoituksia mikäli tiedosto ei ole tuettu.
xm-tiedostoja voi toistaa vain suoraan tiedostosta eikä niitä voi ladata LoadSoundilla ja wav-tiedostoista on tuettuna vain 8/16bittiset pcm wavit. Wav tiedostot kannattaa siis pakata vaikka flaciksi tai ogg:ksi. Eli varsinkin tuo jälkimmäinen saattaa aiheuttaa "PlaySound() failed - Could not load audio stream" tai "LoadSound() failed!" virheilmoituksia mikäli tiedosto ei ole tuettu.
Re: cbEnchanted - uudelleenkirjoitettu runtime
Idea: Resoluution puolitus, esim. 800x600 --> 400x300. Koska nykyisillä näytöillä pienimmät resoluutiot eivät toimi kokoruututilassa. Esimerkin 400x300 olisikin oikeasti 800x600 doublepikselinä, 800x600 taas toimii useimmilla näytöillä. Ohjelma toimisi samoin kuin 400x300 resoluutiossa, eikä tarvisi huolehtia mistään doublepixel efekteistä. Tokihan nykyisellään voi tehdä saman jutun copyboxilla ja kokoruudulle skaalaamalla, mutta kameran paikka, ruudulle piirrettävä teksti ja hiiren sijainti (mitä muita?) eivät toimisi yhtä helposti.
Valmiit pelit: House of Horrors , Battle Zone , Über Ball , Itdoti , Space Chaos , Bloxxplosives ☺
Projekti jota teen ehkä joskus vielä: viewtopic.php?f=11&t=2636 <-- Tämä rivi päivitetty 14.1.2013
Projekti jota teen ehkä joskus vielä: viewtopic.php?f=11&t=2636 <-- Tämä rivi päivitetty 14.1.2013
- Misthema
- Advanced Member
- Posts: 312
- Joined: Mon Aug 27, 2007 8:32 pm
- Location: Turku, Finland
- Contact:
Re: cbEnchanted - uudelleenkirjoitettu runtime
Jostain syystä kustom-funkkareissa on jotain häikäkkää häppää... Transform-funkkarit ei enää päde primitiiveihin jos on laitettu DrawToWorld päälle, ja kuvat eivät edes piirry maailman koordinaatteihin.
Myöskin transform-funkkareiden tapa vaikuttaa ruutuun on jotain aiiiivan uutta; ne vaikuttaa koko ruutuun, eivätkä vain seuraaviin piirtoihin... Olisikohan kaikkien mielestä parempi laittaa nämä funktiot vaikuttamaan vain piirtokomentoihin, kuviin ja muihin ruudulle läntättäviin, eikä koko ruutuun... Eli siis skaalauskin vaikuttaisi esim. palloon niin, ettei tämän koordinaatit mene päin seiniä, mutta silti pallosta tulee suurempi skaalauksen ansiosta. Koordinaatit siis pitäisi laskea uudelleen skaalauksen ja pyörityksen jälkeen, että kuvat sun muut pyörisivät ja skaalautuisivat paikoillaan.
JA VIELÄ: funktioiden pitäisi säätää VAIN niitä asioita joita funktio ottaa vastaan, eli jos laitan rotaatiota -> piirrän kuvan -> säädän skaalaa -> piirrän palloja, niin tässä tapauksessa rotaatio häviää palloilta, vaikka kaiken logiikan mukaan, se on säädetty johonkin muuhun kulmaan kuin nollaan, johon tämä SKAALAUS funktio sen asettaa. Meh. Meinaa jo hermot mennä =D Lopetan hyvän sään aikana.
Kiitos ja näkemiin!
Myöskin transform-funkkareiden tapa vaikuttaa ruutuun on jotain aiiiivan uutta; ne vaikuttaa koko ruutuun, eivätkä vain seuraaviin piirtoihin... Olisikohan kaikkien mielestä parempi laittaa nämä funktiot vaikuttamaan vain piirtokomentoihin, kuviin ja muihin ruudulle läntättäviin, eikä koko ruutuun... Eli siis skaalauskin vaikuttaisi esim. palloon niin, ettei tämän koordinaatit mene päin seiniä, mutta silti pallosta tulee suurempi skaalauksen ansiosta. Koordinaatit siis pitäisi laskea uudelleen skaalauksen ja pyörityksen jälkeen, että kuvat sun muut pyörisivät ja skaalautuisivat paikoillaan.
JA VIELÄ: funktioiden pitäisi säätää VAIN niitä asioita joita funktio ottaa vastaan, eli jos laitan rotaatiota -> piirrän kuvan -> säädän skaalaa -> piirrän palloja, niin tässä tapauksessa rotaatio häviää palloilta, vaikka kaiken logiikan mukaan, se on säädetty johonkin muuhun kulmaan kuin nollaan, johon tämä SKAALAUS funktio sen asettaa. Meh. Meinaa jo hermot mennä =D Lopetan hyvän sään aikana.
Kiitos ja näkemiin!
Code: Select all
SCREEN 800,600
Const CBE_CUSTOM_FUNCTION_GROUP = 1
img = LoadImage("media/animcow.bmp")
a_plus = 360/18
'Tämän jos laittaa päälle,
' palloihin ei enää vaikuta
' Transform-funktiot... o_O?
'DrawToWorld ON
Repeat
a#=Timer()/50.0
scale# = 1.5+Sin(a*4)*.5
cbeTransformBuild(0,0,scale,scale,0+Sin(a*5)*45)
DrawImage img,40,40
cbeTransformBuild(0,0,scale,scale,0+Sin(a*5)*45)
For i=0 To 17
x#= 200.0+Cos(a+a_plus*i)*80
y#= 150.0-Sin(a+a_plus*i)*80
Circle x,y,20
Next i
cbeTransformReset()
Text 0,0,FPS()
DrawScreen
Forever
Function cbeTransformBuild(transX#, transY#, scaleX#, scaleY#, angle#)
group = CBE_CUSTOM_FUNCTION_GROUP
funcId = 14
EndFunction
Function cbeTransformRotate(angle#)
group = CBE_CUSTOM_FUNCTION_GROUP
funcId = 15
EndFunction
Function cbeTransformScale(scaleX#, scaleY#)
group = CBE_CUSTOM_FUNCTION_GROUP
funcId = 16
EndFunction
Function cbeTransformTranslate(transX#, transY#)
group = CBE_CUSTOM_FUNCTION_GROUP
funcId = 17
EndFunction
Function cbeTransformReset()
group = CBE_CUSTOM_FUNCTION_GROUP
funcId = 18
EndFunction