CoolBasic Classic: Kehitysuutisten kommentit

CoolBasiciin yleisesti liittyvä keskustelu.
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: CoolBasic Classic: Kehitysuutisten kommentit

Post by axu »

Tuleeko CBC muuten tukemaan "jagged" taulukoita, eli taulukoita taulukoista? Esim.:

Code: Select all

Dim Taulukko(2) As Array
Dim Taulukko(0)(3) As Float
Dim Taulukko(1)(3) As Float
Dim Taulukko(2)(5) As Float
Eli tuo taulukko sisältäisi 3 float tyyppistä taulukkoa, kaksi 4 solun taulukkoa ja yksi 6 solun taulukko.

Toivottavasti cbc:n äänimoottori on monipuolinen, semmosia kun näkee niin harvoin...
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
User avatar
Zero
Lead Developer
Lead Developer
Posts: 727
Joined: Sun Aug 26, 2007 2:30 pm
Location: Helsinki, Finland
Contact:

Re: CoolBasic Classic: Kehitysuutisten kommentit

Post by Zero »

Classic ei tue sisäkkäisiä taulukoita, koska kyseessä ei ole vahvasti tyypitetty eikä dynaamisesti tyypitetty kieli. Ts. taulukko sinänsä ei ole oma tietotyyppinsä.
CoolBasic henkilökuntaa
Johtava Suunnittelija
CoolBasic V3, CoolBasic Classic

http://www.coolbasic.com/blog
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: CoolBasic Classic: Kehitysuutisten kommentit

Post by MaGetzUb »

Tuleeko taulukoille minkäänlaisia osoittimia, että niitä voitaisiin käyttää sitten vaikka Tyypin kenttänä? En oikein ole noista ennemmin olleista taulukko keskusteluista päässyt jyvälle, niin kysyin sitte näin.
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
User avatar
Zero
Lead Developer
Lead Developer
Posts: 727
Joined: Sun Aug 26, 2007 2:30 pm
Location: Helsinki, Finland
Contact:

Re: CoolBasic Classic: Kehitysuutisten kommentit

Post by Zero »

Taulukot ovat todellisuudessa osoittimia. Mikä tahansa Integer-tyyppinen muuttuja (tai Typen kenttä) voi siis säilöä taulukon.
CoolBasic henkilökuntaa
Johtava Suunnittelija
CoolBasic V3, CoolBasic Classic

http://www.coolbasic.com/blog
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: CoolBasic Classic: Kehitysuutisten kommentit

Post by Latexi95 »

Voisiko Classiciin lisätä mahdollisuuden ladata kuvia, ääniä, videoita, yms. tiedoston keskeltä tai muistipaloista?
Koska nyt niitä on oikeastaan mahdoton tallentaa samaan tiedostoon järkevästi.
Wingman
Devoted Member
Posts: 594
Joined: Tue Sep 30, 2008 4:30 pm
Location: Ruudun toisella puolella

Re: CoolBasic Classic: Kehitysuutisten kommentit

Post by Wingman »

Aika hienolta näyttää tuo monen kameran tuki, tarvitsisin sitä kyllä jo nyt. Ja hienosti ootte mennyt eteenpäin, eli: "Keep Up the Good Work!"
- - - -
temu92
Web Developer
Web Developer
Posts: 1226
Joined: Mon Aug 27, 2007 9:56 pm
Location: Gamindustri
Contact:

Re: CoolBasic Classic: Kehitysuutisten kommentit

Post by temu92 »

Pienellä säädöllä monikamerainen peli onnistuu jo nyt :P

DrawToImage ja DrawGame = avainsanat.
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: CoolBasic Classic: Kehitysuutisten kommentit

Post by phons »

Joo, olen itse tehnyt vähän tuontyylisen kameramoottorin(aktiiviset ja ei-aktiiviset kamerat) tämän hetkiselle CB:lle ja toimii hienosti.
Kuulostaa hyvältä tuo kameran kääntely, mikäli ymmärsin oikein.
Image
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: CoolBasic Classic: Kehitysuutisten kommentit

Post by axu »

Jep, kameran kääntelyä olen halunnut jo vuoden ajan ja tuossahan se on :P
Voiko muuten objekteille laittaa pyörimissulavuuden kuin ennenkin, nimittäin joissain tapauksissa esim. 90 asteen käännökset ovat parempia kuin liukuva?
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
SPuntte
Tech Developer
Tech Developer
Posts: 650
Joined: Mon Aug 27, 2007 9:51 pm
Location: Helsinki, Finland
Contact:

Re: CoolBasic Classic: Kehitysuutisten kommentit

Post by SPuntte »

axu wrote:Voiko muuten objekteille laittaa pyörimissulavuuden kuin ennenkin, nimittäin joissain tapauksissa esim. 90 asteen käännökset ovat parempia kuin liukuva?
En näe tuossa mitään mieltä, sillä grafiikkamoottori ei blittaa esipyöritettyä kuvaa (kuten wanha CB tekee) vaan piirtää teksturoidun nelikulmion näytönohjaimella. Kulman voi siis asettaa juuri niin tarkasti, kuin CBC:n liukulukutietotyyppi rajoittaa. Siis ainakin teoriassa esimerkiksi jo vain 10^-5:n asteen muutos kiertokulmassa tuottaa erilaisen piirtotuloksen.

Kuvaamasi pyörityksen voi toteuttaa helposti myös itse, vaikkapa näin:

Code: Select all

Select GetKey()
    Case KEY_RIGHTARROW
        rotation = 0
    Case KEY_UPARROW
        rotation = 1
    Case KEY_LEFTARROW
        rotation = 2
    Case KEY_DOWNARROW
        rotation = 3
EndSelect
...
RotateObject obj, rotation*90
CoolBasic henkilökuntaa
Tech-kehittäjä
CoolBasic Classic, Cool VES

CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: CoolBasic Classic: Kehitysuutisten kommentit

Post by axu »

Mutta tarkkoihin kulmiin asettaminen ei oikein toimisi esim. pointobject:in kanssa(paitsi jos pointobject:in jälkeen asettaa tarkan arvon), tai jos haluaa liikuttaa objektia tietyssä kulmassa(no tämäkin kyllä on kierrettävissä tallentamalla erikseen objektin piirtokulma ja liikkumiskulma, jota käytetään sitten translateobject:in kanssa). Eihän tämä kyllä mikään välttämättömyys ole, mietin vain ;)
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
ezbe
Tech Developer
Tech Developer
Posts: 93
Joined: Fri May 08, 2009 6:53 pm

Re: CoolBasic Classic: Kehitysuutisten kommentit

Post by ezbe »

axu wrote:Mutta tarkkoihin kulmiin asettaminen ei oikein toimisi esim. pointobject:in kanssa(paitsi jos pointobject:in jälkeen asettaa tarkan arvon), tai jos haluaa liikuttaa objektia tietyssä kulmassa(no tämäkin kyllä on kierrettävissä tallentamalla erikseen objektin piirtokulma ja liikkumiskulma, jota käytetään sitten translateobject:in kanssa). Eihän tämä kyllä mikään välttämättömyys ole, mietin vain ;)
PointObject nimenomaan asettaisi objektin "tarkkaan" kulmaan, pyörimisarvoja/sulavuutta ei 3d-kiihdytyksen kanssa tarvita eikä tueta. Se, miten pieni muutos kulmassa oikeasti näkyy ruudulla asti, riippuu siitä miten isona ko. objekti näkyy ruudulla (vrt. 2x2 pikselin objekti tai 512x512 pikselin objekti), mutta sisäisesti ja rautatasolla pyöritys voidaan tehdä juuri niin tarkkaan kuin liukuluvut antavat myöten. Siinä samalla kuvien latausnopeus nousee roimasti, koska pyöritystä ei tehdä latauksen yhteydessä softalla, eli CBC-ohjelmat latautuvat suurienkin kuvamäärien kanssa paljon nopeammin kuin edeltäjässään.
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: CoolBasic Classic: Kehitysuutisten kommentit

Post by axu »

Tuleeko muuten CBC:hen sellaista komentoa, että voisi piirtää kuvan antamalla sille neljän nurkan koordinaatit?
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
User avatar
Koodari
Active Member
Posts: 201
Joined: Wed Nov 18, 2009 9:01 pm
Contact:

Re: CoolBasic Classic: Kehitysuutisten kommentit

Post by Koodari »

axu wrote:Tuleeko muuten CBC:hen sellaista komentoa, että voisi piirtää kuvan antamalla sille neljän nurkan koordinaatit?
Ei se nyt noin vaikeaa ole:

Code: Select all

'Kirjoita koodin alkuun: Global (kuvamuuttuja ilman sulkuja)! Esim: Global img
Global img '<- TÄRKEÄ!

img=LoadImage("Media\cow.bmp")
Repeat
    Image4(img,20,15,100,50)
    DrawScreen
Forever

'Se functio:
Function Image4(kuva,x1,y1,x2,y2)
    ResizeImage kuva,x2-x1,y2-y1
    DrawImage kuva,x1,y1
EndFunction
Alussa oli asiakas, projekti ja Koodari...

Code: Select all

[23:36:33] <Minixmix> jos nyt viel yhen lastin heittäis
[23:36:48] <Minixmix> Sit loput vois hoitaa kännyllä :/
[00:14:49] <Minixmix> mutta nyt tyhjennykselle ->
[/size]
User avatar
CCE
Artist
Artist
Posts: 650
Joined: Mon Aug 27, 2007 9:53 pm

Re: CoolBasic Classic: Kehitysuutisten kommentit

Post by CCE »

Koodari wrote:
axu wrote:Tuleeko muuten CBC:hen sellaista komentoa, että voisi piirtää kuvan antamalla sille neljän nurkan koordinaatit?
Ei se nyt noin vaikeaa ole:

Code: Select all

'Kirjoita koodin alkuun: Global (kuvamuuttuja ilman sulkuja)! Esim: Global img
Global img '<- TÄRKEÄ!

img=LoadImage("Media\cow.bmp")
Repeat
    Image4(img,20,15,100,50)
    DrawScreen
Forever

'Se functio:
Function Image4(kuva,x1,y1,x2,y2)
    ResizeImage kuva,x2-x1,y2-y1
    DrawImage kuva,x1,y1
EndFunction
Olisikohan sittenkin kyseessä ollut tämän tyylinen piirto?
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: CoolBasic Classic: Kehitysuutisten kommentit

Post by koodaaja »

Todennäköisesti tarkoitettiin CCE:n esimerkin mukaista, Koodarin esimerkissähän annetaan neljä koordinaattia, mutta vain kaksi kulmaa.

Kysyin Zerolta jokunen aika sitten teksturoidun kolmion piirrosta (käytännössä sama, kolmio on tietokonegrafiikassa perinteisempi polygoni) ja siitä ei ainakaan silloin varmaa tietoa ollut. Ominaisuus olisi varsin muikea, mutta eipä tuo maailmaa kaada jos se puuttuu.
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: CoolBasic Classic: Kehitysuutisten kommentit

Post by axu »

Juu juuri tuota jälkimmäistä tietenkin tarkoitin :)
Kyllähän tuommoisen kai sitten viime kädessä itsekin osaisi tehdä, vaikka siihen ei suoraa tukea olisikaan(syö vaan enemmän tehoja?) :P
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
SPuntte
Tech Developer
Tech Developer
Posts: 650
Joined: Mon Aug 27, 2007 9:51 pm
Location: Helsinki, Finland
Contact:

Re: CoolBasic Classic: Kehitysuutisten kommentit

Post by SPuntte »

En uskalla yksityiskohdista sanoa, mutta nykyisessä Cool VESissä olisi useampikin mahdollinen tapa tuon toteuttamiseen. Mitään teknistä estettä asialle ei siis ole vaan ongelma on ainoastaan siinä, että käyttäjän päästäminen puukottamaan enginen sisäistä dataa on potentiaalisesti vaarallista. Toisaalta myös julkisen rajapinnan luominen kuvatun efektin toteuttamiseen sotisi objektimoottoria ja muuta grafiikanpiirtologiikkaa vastaan, sillä kyseessä on kuitenkin vain 2D-in-3D-moottori. Tämä ei kuitenkaan tarkoita, että ominaisuus poissuljettujen ideoiden listalla.
CoolBasic henkilökuntaa
Tech-kehittäjä
CoolBasic Classic, Cool VES

CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX
KilledWhale
Tech Developer
Tech Developer
Posts: 545
Joined: Sun Aug 26, 2007 2:43 pm
Location: Liminka

Re: CoolBasic Classic: Kehitysuutisten kommentit

Post by KilledWhale »

Vaikka tuohon ei olisi suoraan valmiita komentoja, niin kyllähän opengl kutsuja voi suoritella hieman ulkopuolisemmin esimerkiksi muistia sörkkimällä dll avulla. Tosin riippuen dll-tuen kehittyneisyydestä voi olla mahdollista hyväksikäyttää suoraan winAPInan read- ja writeprocessmemory komentoja ja myrkyttää itsensä lennosta ilman ulkoista apua. Toinen vaihtoehto olisi laittaa piirtoon omat välikappaleet winapihookeilla. Tosin näitä käyttäessä saattaa hajottaa kaiken pahasti ja niiden winettyvyys on hieman kyseenalaista.
CoolBasic henkilökuntaa
Kehittäjä

cbFUN Kello
cbSDL
Whale.dy.fi

<@cce> miltäs tuntuu olla suomen paras
User avatar
Koodari
Active Member
Posts: 201
Joined: Wed Nov 18, 2009 9:01 pm
Contact:

Re: CoolBasic Classic: Kehitysuutisten kommentit

Post by Koodari »

Olisi hienoa, jos CBC :hen voisi lisätä omia functioita, siten ettei niitä tarvitsisi liittää koodiin! Kun koodi pakataan .exe :ksi, niin CBC lisää functiot exeen samalla tapaan, kuten nykyisessä versiossa se lisää oletusfunctiot, kuten esimerkiksi:

Code: Select all

KeyHit()
Alussa oli asiakas, projekti ja Koodari...

Code: Select all

[23:36:33] <Minixmix> jos nyt viel yhen lastin heittäis
[23:36:48] <Minixmix> Sit loput vois hoitaa kännyllä :/
[00:14:49] <Minixmix> mutta nyt tyhjennykselle ->
[/size]
Post Reply