Page 11 of 18

Re: cbEnchanted - uudelleenkirjoitettu runtime

Posted: Tue Jun 26, 2012 4:28 pm
by skorpioni-cb
Koska cbE:ssä on noita custom-funktioita, ajattelin tehdä epävirallisen manuaalin aiheesta, se tosin on englanniksi koska en muistanut HTML-kielen merkkejä jotka vastaa åäö-merkkejä, edittaan paketin sitten tähän viestiin, kun se on valmis (nimittäin kirjoitan koko paskan käsin >.< )

Re: cbEnchanted - uudelleenkirjoitettu runtime

Posted: Tue Jun 26, 2012 5:33 pm
by temu92
skorpioni-cb wrote:HTML-kielen merkkejä jotka vastaa åäö-merkkejä
Ei niitä tarvitse erikseen koodata HTML:n symbooleiksi, kunhan tiedosto tallennetaan oikealla charsetillä (mieluiten utf-8).

Re: cbEnchanted - uudelleenkirjoitettu runtime

Posted: Tue Jun 26, 2012 5:39 pm
by tuhoojabotti
Lisäksi ne on helppo muistaa &<kirjain>uml; niinkuin &auml; uml tulee sanasta umlaut.

Re: cbEnchanted - uudelleenkirjoitettu runtime

Posted: Tue Jun 26, 2012 10:45 pm
by valscion
Versio 0.3.1 julkaistu!

Lataa alta itsellesi sopivin paketti: cbEnchantedin Windows-versio vaatii, että Microsoft Visual C++ 2010 Redistributable Package (x86) on asennettuna koneella.
Windows-paketti sisältää kaksi eri 32-bittistä julkaisuversiota cbEnchantedista:
  1. testable kansiossa on exet, joiden avulla voit testata jo käännettyjä CB-exe tiedostoja. Käytä komentoriviä ja kutsu kyseistä exeä niin että ensimmäisenä parametrina on testattavan ohjelman exen tiedostopolku TAI tiputa testattava exe cbEnchantedin exe-tiedostoon. Tiedostopolussa ei saa olla välilyöntejä.
  2. compiler kansiossa on muokatut versiot CBCompiler.exe-tiedostosta, joissa on korvattu wanhan CB:n runtimet cbEnchantedilla. Kun vaihdat tämän CoolBasicin asennuskansiosta löytyvän IDE\CBCompiler.exe tiedoston paikalle, saat heti käännettyä cbEnchanted-ohjelmia.
Lukekaa cbEnchantedin GitHub-wikiä, josta löytyy yleistä tietoa projektista. Katsokaa etenkin sivu Erikoisuuksia ja eroavaisuuksia. Wikiin on tarkennettu ongelmaa kuvien piirtojen kanssa ja kerrottu miten niiltä selvitään. Alla kuitenkin lainaus teille laiskoille, jotka ette jaksa wikiä lukaista.
HUOM! Objektien piirto sekä kuvien maailmankoordinaatteihin piirto luultavasti bugaavat, kun piirtokoordinaatit ovat kahden pikselin välissä. Ongelmalta välttyy kun tekee alunperin kuvia, joissa on vähintään yhden pikselin täysin läpinäkyvä reunus. Aiheesta on tehty bugiraportti #119 mutta sitä on todella hankala korjata. Siksi suosittelemme, että teet kaikki maailmankoordinaattehin piirrettäväksi tarkoitetut kuvasi sellaisiksi että niissä on vähintään yhden pikselin täysin läpinäkyvä reunus välttyäksesi tältä bugilta. Animoidussa kuvissa lisäät tietenkin yhden pikselin reunuksen jokaiseen kuvasarjan osaan. Törmäykset voit sitten asettaa ObjectRange komennolla takaisin pikselintarkaksi laittamalla törmäysalueen leveyden ja korkeuden kahta pikseliä pienemmäksi kuin mitä ObjectSizeX() ja ObjectSizeY() palauttavat.
Muutokset edelliseen versioon: Tämän julkaisun tunnetut bugit

Re: cbEnchanted - uudelleenkirjoitettu runtime

Posted: Wed Jun 27, 2012 8:16 am
by skorpioni-cb
Ihan kiva muuten, mutku miks cbeSToWX ja kaikilla muilla STo ja WTo-funktioilla otetaan parametreiksi x ja y
EDIT:

BTW. Minun manuaali tähän 0.3.1-versioon on valmis, lataa se

cbE-ohjeet.rar
tästä
(22.14 KiB) Downloaded 454 times
[/edit]

Re: cbEnchanted - uudelleenkirjoitettu runtime

Posted: Wed Jun 27, 2012 10:05 am
by Latexi95
skorpioni-cb wrote:Ihan kiva muuten, mutku miks cbeSToWX ja kaikilla muilla STo ja WTo-funktioilla otetaan parametreiksi x ja y
Kun kameraa on käännetty, niin molempia koordinaatteja uuden koordinaatin laskemiseen.

Re: cbEnchanted - uudelleenkirjoitettu runtime

Posted: Wed Jun 27, 2012 10:43 am
by skorpioni-cb
Latexi95 wrote:
skorpioni-cb wrote:Ihan kiva muuten, mutku miks cbeSToWX ja kaikilla muilla STo ja WTo-funktioilla otetaan parametreiksi x ja y
Kun kameraa on käännetty, niin molempia koordinaatteja uuden koordinaatin laskemiseen.
Aha, ei sieltä koodista saanut selvää, katsotkos muuten onko toi mun manuaali sopivan ymmärrettävää englantia, ja onko se selkeä

Re: cbEnchanted - uudelleenkirjoitettu runtime

Posted: Wed Jun 27, 2012 12:05 pm
by axu
Kiitos uudesta versiosta!

Miksi cbeDrawTintedScaledRotatedImageBoxin nimi vaihdettiin cbeDrawTintedScaledRotatedImageRegioniksi? Yhtenäistämistä Allegron komennon kanssa? Olisi nyt edes hieman yksinkertaisemmaksi muutettu, tuota en ole kertaakaan käsin jaksanut kirjoittaa saatika sitten muistaa koko komennon nimeä :D Mielestäni jopa cbeDrawImage olisi riittävä. Tai sitten pitäisi saada intellisense cb-editoriin.

@skorpioni: en nyt oikein voi kehua tuota englantia. Lähtien Un-väliviiva-Officialista isolla O:lla lähes joka lauseessa on jotain parantamisen varaa. Muutenkin ohjeet olivat melko sisällöttömiä, kannattaa käyttää niitä uusimmassa versiossa olevia selityksiä suoraan customfunctions.cb:stä. Tai kirjoittaa ihan suosiolla suomeksi, kun suht kattavat selitykset englanniksi löytyvät jo sieltä kooditiedostosta.
EDIT:

Mietin muuten, voisiko cbe:hen jotenkin saada tuen jollekin skriptikielelle, esim. Lualle? En tiedä miten käytännössä toimisi, mutta ei tarvisi joka projektille miettiä skriptaustapaa erikseen/kovakoodata jokainen tapahtuma.


Re: cbEnchanted - uudelleenkirjoitettu runtime

Posted: Wed Jun 27, 2012 2:47 pm
by esa94
tuhoojabotti wrote:Lisäksi ne on helppo muistaa &<kirjain>uml; niinkuin &auml; uml tulee sanasta umlaut.
Suomen ä tosin ei ole a-umlaut vaikka se niin kirjoitetaankin ^_^

Re: cbEnchanted - uudelleenkirjoitettu runtime

Posted: Wed Jun 27, 2012 4:42 pm
by KilledWhale
axu wrote:Mietin muuten, voisiko cbe:hen jotenkin saada tuen jollekin skriptikielelle, esim. Lualle? En tiedä miten käytännössä toimisi, mutta ei tarvisi joka projektille miettiä skriptaustapaa erikseen/kovakoodata jokainen tapahtuma.
Jos jaksaa säätää vitusti niin miksipä ei.

Käytännössä luan bindit pitäisi parsia jotenki hienostuneesti samaan tapaan kuin kustomoidut funktiot on toteutettu. Normaalien cbfunkkareidenki bindaus vois onnistua, mutta tämä vaatisi toisenlaista kikkailua.

Joka tapauksessa operaatio on perseestä ja kukaan tuskin jaksaa sitä alkaa tekemään. Jos kuitenkin haluat itse härvätä kyseisen systeemin toimintaan ja kysyntää löytyy niin tervetuloa vain mukaan tiimiin säätämään.

Loppujen lopuksi helpompi ja hieman elegantimpi toteutustapa olisi toteuttaa CBE:hen funktiopointterit, jolloin komentoja voisi esim. taulukoida ja sitten kutsua tietynlaisten tapahtumien sattuessa. Homma olisi vielä kohtalaisen helppo toteuttaa lisäämällä vain esikäsittelyä ja toteuttamalla jonkinlaiset bind() ja call() funktiot, joilla voisi säilöä funktio-osoittimen muuttujaan ja tämän jälkeen kutsua funktiota muuttujan perusteella jotenkin tähän tyyliin (perstuntumalta kirjoitettuna):

Code: Select all

Function Bind()
    group = CBE_FUNCTIONAL
    funcId = 1
EndFunction

Function Call(id As Integer)
    group = CBE_FUNCTIONAL
    funcId = 2
EndFunction

Function A()
    Print "A"
EndFunction

Function B()
    Print "B"
EndFunction

Function C()
    Print "C"
EndFunction

Dim funcs(3) As Integer

// Bindin kutsuminen tekisi sen että seuraava funktiokutsu jäisi välistä ja funktion osoitin sijoitettaisiin muuttujaan
funcs(0) = Bind()
A()

funcs(1) = Bind()
B()

funcs(2) = Bind()
C()

// Käy läpi kolme funktiota ja kutsuu ne
For i = 0 To 2
    Call(funcs(i))
Next i

Re: cbEnchanted - uudelleenkirjoitettu runtime

Posted: Wed Jun 27, 2012 5:03 pm
by skorpioni-cb
KilledWhale wrote:Textiä...
Lua-tulkki, bitch please, me tarvitaan asm-tulkki, jotta saadaan tehtyä saatanan nopeita laskutoimituksia. Ja jos ei aika riitä manuaalin kanssa, voin tietenkin tulla sinne säätämään, jos tarvitsee :lol:

Re: cbEnchanted - uudelleenkirjoitettu runtime

Posted: Wed Jun 27, 2012 5:26 pm
by atomimalli
Lua-tulkki nyt vaan sattuu olemaan pikkasen nopeampi ja hyödyllisempi kuin asm-tulkki. Toivon ettei asm-tulkkia mainita enää täällä.
LLVM-mahdollisuus kiehtoo itseäni eniten tuon suuntaisista jutuista ja piirtopuskurointi sitten graffan puolelta, kun kerta parannuksista oli puhe. Lua kyllä toisi cb:n taas uudelle tasolle pelikielenä, että se ei kuulosta lainkaan pahalta.

Re: cbEnchanted - uudelleenkirjoitettu runtime

Posted: Wed Jun 27, 2012 5:39 pm
by axu
KilledWhale wrote:Käytännössä luan bindit pitäisi parsia jotenki hienostuneesti samaan tapaan kuin kustomoidut funktiot on toteutettu. Normaalien cbfunkkareidenki bindaus vois onnistua, mutta tämä vaatisi toisenlaista kikkailua.
Ehkäpä jotenkin näin?

Code: Select all

Function Bind()
    group = CBE_FUNCTIONAL
    funcId = 1
    name$ = "A"
    A()
    name$ = "B"
    B()
    name$ = "C"
    C()
EndFunction

Function Call(id As Integer)
    group = CBE_FUNCTIONAL
    funcId = 2
EndFunction

Function A()
    Print "A"
EndFunction

Function B()
    Print "B"
EndFunction

Function C()
    Print "C"
EndFunction

Call("A")
Call("B")
Call("C")
Eli Bindissä olisi vuoronperään merkkijonon asettaminen ja funktiokutsu. Funktioita voidaan kutsua sitten näillä nimillä.

Sitä en kyllä lähde kieltämään, etteikö systeemi vaatisi todennäköisesti järjetöntä säätämistä, mutta siinä vaiheessa kun porukka pystyy purkamaan kääntäjän tuottaman tavukoodin ja kirjoittamaan runtimen uusiksi, vieläpä alkuperäistä nopeammaksi, niin on hankala löytää ehdotuksille rajoja ;)

Re: cbEnchanted - uudelleenkirjoitettu runtime

Posted: Wed Jun 27, 2012 10:16 pm
by Konstaduck
Memory Acces Violation ei hävinnyt minnekkään cbE:n tultua.

Code: Select all

Errors off
obj =Loadimage("Tätäkuvaaeioleolemassa.png")
Jos ei laita tuota errors offia, tuottaa cbE virheikkunnan selityksineen. Mutta jos taas tuo errors off on päällä, tuleepi Memory Acces Violation. Ilmiselvä bugi siis. Huh, onpas koketusnäytöllä ärsyttävää kirjoittaa... :)

Re: cbEnchanted - uudelleenkirjoitettu runtime

Posted: Wed Jun 27, 2012 11:40 pm
by valscion
Ei se mikään bugi ole vaan ihan tarkoituksellinen. Se myös seuraa Errors komennon manuaalin selitystä.

Re: cbEnchanted - uudelleenkirjoitettu runtime

Posted: Thu Jun 28, 2012 7:59 am
by skorpioni-cb
VesQ wrote:Ei se mikään bugi ole vaan ihan tarkoituksellinen. Se myös seuraa Errors komennon manuaalin selitystä.
Tottakai nyt CoolBasicissa täytyy MAV olla :D

Re: cbEnchanted - uudelleenkirjoitettu runtime

Posted: Thu Jun 28, 2012 11:17 am
by Konstaduck
Eikö siis ole minkäänlaista tapaa olla välittämättä, jos objektia ei voida ladata?

Re: cbEnchanted - uudelleenkirjoitettu runtime

Posted: Thu Jun 28, 2012 11:29 am
by skorpioni-cb
Konstaduck wrote:Eikö siis ole minkäänlaista tapaa olla välittämättä, jos objektia ei voida ladata?
On, antamalla oikean tiedostopolun

Re: cbEnchanted - uudelleenkirjoitettu runtime

Posted: Thu Jun 28, 2012 11:34 am
by Konstaduck
Ei, vaan sillein, että annetaan väärä tiedostopolku, mutta ei vaan välitetä, onnistuiko lataaminen. Onko sellaista?

Re: cbEnchanted - uudelleenkirjoitettu runtime

Posted: Thu Jun 28, 2012 11:35 am
by axu
Konstaduck wrote:Eikö siis ole minkäänlaista tapaa olla välittämättä, jos objektia ei voida ladata?
Tarkista onko tiedosto olemassa ennen sen lataamista. Eipä siinä juuri sen enempää voi tehdä. Tuo Errors tosiaan pystyy kytkemään vain tarkennetut virheilmoitukset pois (etteivät ne hämmennä loppukäyttäjää, ohjelmoijallehan tarkat virheilmoitukset ovat vain hyödyksi). Minkäänlaista virheenkäsittelyä cb:ssä ei ole. Cbe tosin tarjoaa useissa virhetilanteissa mahdollisuuden jatkaa ohjelman suoritusta, joten voit koodissasi ottaa sen huomioon (tarkistat objektin latauksen jälkeen onnistuiko se).