ChaosBasic [version 0.0.2.4]

Muu yhteisön välinen keskustelu.
Post Reply
User avatar
Jare
Devoted Member
Posts: 877
Joined: Mon Aug 27, 2007 10:18 pm
Location: Pori
Contact:

Re: ChaosBasic [version 0.0.1.8]

Post by Jare »

Hyvältä vaikuttaa. Esitän kuitenkin jo tässä vaiheessa vähän vaativamman kysymyksen ja ymmärrän jos et vielä ole valmis siihen vastaamaan: Milloin pääsemme määrittämään omia luokkia tai funktioita?

P.S. Päivitin jokin aika sitten tuon Notepad++ syntaksivärjäyksen. Uusin versio löytyy nykyään aina täältä: http://koti.mbnet.fi/jare1/chaosbasic/u ... neLang.xml (klikkaa hiiren oikealla ja valitse Tallenna).
User avatar
Dibalo
Advanced Member
Posts: 298
Joined: Mon Aug 27, 2007 8:12 pm
Location: Espoo, Finland
Contact:

Re: ChaosBasic [version 0.0.1.9]

Post by Dibalo »

ChaosBasic 0.0.1.9 ulkona!

Eli tämä on tälläinen hotfix-tyylinen julkaisu. Korjattu muun muassa bugi Vistassa (ihme parametriongelma), lisätty tuki tiedostopoluille välilyöntien kanssa (huom! komentoriviltä käynnistäjille: polun ympärille pitää laittaa heittomerkit, tyyliin "C:\ohjelmat\minun chb\chaosrun.exe"), sekä lisätty trigonometriset funktiot Sin, Tan, Cos, ASin, ATan, ACos. Lisäksi korjattu muita pikku bugeja, jahka niitä on havaittu. Eipä tässä enempää:

Lataa ChaosBasic 0.0.1.9


Milloin pääsemme määrittämään omia luokkia tai funktioita?
Hyvä kysymys. Todennäköisesti seuraava julkaisu tulee noudattamaan versionumeroa 0.1.0.1, joka sisältää jo käyttäjän omat funktiot ja mahdolliset DLL-kutsut. Omia luokkia en uskalla tähän vielä mennä lupaamaan. Lisäksi olen vakavasti miettinyt vaihtoa OpenGL:stä DirectX:ään (Linux-koodarit: älkää huolestuko, sillä säilytän OpenGL-implementaatiot), jonka ansiosta saataisiin EXEn muhkea 390+ kt koko noin 50-100 kt:hen (ehkä jopa pienempäänkin). On kuitenkin mahdollista, että ennen tätä päivitystä saattaa ilmestyä pienempiä korjauksia/lisäyksiä, esimerkiksi versio 0.0.2.4. 8-)
The darkest spells can be found from
http://tunkkaus.blogspot.fi
jannepelaa
Active Member
Posts: 101
Joined: Tue Aug 28, 2007 2:27 pm

Re: ChaosBasic [version 0.0.1.9]

Post by jannepelaa »

Toimii moitteettomasti Vistalla, eikä aikaisempia kielioppivirheen takia tulleita kaatumisiakaan enää ollut (edellisessä versiossa kääntäjä tosin kaatui aina :D ).
Muuta:
Mihin versioon tulee esikääntäjä (include, yms.) ja osaako se korjata esim. if:in If:iksi (tämä on basic, ei c)?
Tee se, että esim. kokonaisluvun voi alustaa "Var blaah As Integer" lisäksi esim. "Integer blaah", tämä nopeuttaisi ja helpottaisi työskentelyä.
User avatar
Jare
Devoted Member
Posts: 877
Joined: Mon Aug 27, 2007 10:18 pm
Location: Pori
Contact:

Re: ChaosBasic [version 0.0.1.9]

Post by Jare »

jannepelaa wrote:Mihin versioon tulee esikääntäjä (include, yms.)
Toivottavasti esikääntäjään tulee joskus tulevaisuudessa ehdollinen kääntäminen. Esimerkkinä jos vaikka vakio nimeltä DEBUG (tai joku muu) on true, niin kääntäjä voisi kääntää ylimääräistä debug-koodia, joka näyttäisi ohjelmassa enemmän teknistä tietoa, kuten muuttujien sisältöjä 8-) .
Sami345
Advanced Member
Posts: 349
Joined: Fri Aug 31, 2007 4:52 pm
Contact:

Re: ChaosBasic [version 0.0.1.8]

Post by Sami345 »

Jare wrote:Hyvältä vaikuttaa. Esitän kuitenkin jo tässä vaiheessa vähän vaativamman kysymyksen ja ymmärrän jos et vielä ole valmis siihen vastaamaan: Milloin pääsemme määrittämään omia luokkia tai funktioita?

P.S. Päivitin jokin aika sitten tuon Notepad++ syntaksivärjäyksen. Uusin versio löytyy nykyään aina täältä: http://koti.mbnet.fi/jare1/chaosbasic/u ... neLang.xml (klikkaa hiiren oikealla ja valitse Tallenna).
Ei toimi. Tiedosto on polussa "C:\Program Files\Notepad++\userDefineLang.xml". Notepad++ on versio 4.6.
Projektit: Fiperus - Jäädytetty pidemmäksi aikaa.
Voitot: Viikkokisa XIII, Pikapelikisa 3, Pikapelikisa 13
http://www.sami345.tk/
jannepelaa
Active Member
Posts: 101
Joined: Tue Aug 28, 2007 2:27 pm

Re: ChaosBasic [version 0.0.1.9]

Post by jannepelaa »

Miksi muuten samaa kuvaa ei voi piirtää uudelleen, jos kuva on jo piirretty ennen Screen.Drawia?
EDIT: Taulukkoon ei voi laittaa kuvaa :( .
KilledWhale
Tech Developer
Tech Developer
Posts: 545
Joined: Sun Aug 26, 2007 2:43 pm
Location: Liminka

Re: ChaosBasic [version 0.0.1.8]

Post by KilledWhale »

Sami345 wrote: Ei toimi. Tiedosto on polussa "C:\Program Files\Notepad++\userDefineLang.xml". Notepad++ on versio 4.6.
Sama ongelma täälläpäin...
CoolBasic henkilökuntaa
Kehittäjä

cbFUN Kello
cbSDL
Whale.dy.fi

<@cce> miltäs tuntuu olla suomen paras
User avatar
Dibalo
Advanced Member
Posts: 298
Joined: Mon Aug 27, 2007 8:12 pm
Location: Espoo, Finland
Contact:

Re: ChaosBasic [version 0.0.1.9]

Post by Dibalo »

jannepelaa wrote:Miksi muuten samaa kuvaa ei voi piirtää uudelleen, jos kuva on jo piirretty ennen Screen.Drawia?
Evo:

Code: Select all

// ladataan kartta
Var map As Image = New Image
map.Load( "map512.jpg" )

Repeat

	// asetaan läpinäkyvyys ja piirretään
	map.SetOpacity( Mouse.X() / 640.0 )
	map.Draw 0,0
	map.Draw 100, 100
	
	// info-teksti
	Screen.Text 0,0, "Move mouse to adjust map's opacity."

// piirretään näyttö
Screen.Draw
Forever
EDIT: Taulukkoon ei voi laittaa kuvaa :( .
Itse asiassa voi, mutta kuvia ei voi käyttää taulukon kautta. Tämä johtuu pienenpienestä bugista, jonka juuri äsken korjasin. :)
The darkest spells can be found from
http://tunkkaus.blogspot.fi
User avatar
Jare
Devoted Member
Posts: 877
Joined: Mon Aug 27, 2007 10:18 pm
Location: Pori
Contact:

Re: ChaosBasic [version 0.0.1.8]

Post by Jare »

KilledWhale wrote:
Sami345 wrote: Ei toimi. Tiedosto on polussa "C:\Program Files\Notepad++\userDefineLang.xml". Notepad++ on versio 4.6.
Sama ongelma täälläpäin...
Ihmeellistä.

Kokeilin ladata N++:n uudestaan (4.6 zippinä), purkaa ja ladata tuon xml-tiedoston ohjelman juureen. Syntaksivärjäys toimi oikein. Kokeilkaapa tekin ladata ohjelma uudestaan (vaikka zippinä) ja purkaa esim vanhan päälle.

P.S. Millä tavalla "ei toimi"? Ei ilmesty kielivalikkoon vai ei vain värjää koodia?
SPuntte
Tech Developer
Tech Developer
Posts: 650
Joined: Mon Aug 27, 2007 9:51 pm
Location: Helsinki, Finland
Contact:

Re: ChaosBasic [version 0.0.1.8]

Post by SPuntte »

Jare wrote:P.S. Millä tavalla "ei toimi"? Ei ilmesty kielivalikkoon vai ei vain värjää koodia?
Muistakaapas ihmiset käyttää silmiänne, kun ne on teille suotu. Jos värjäysmäärittely "toimii", ChB ilmestyy kielivalikon alalaitaan, joka ainakin minulla on piilossa, eli sinne täytyy rullata. Käyttäjän itse lisäämille värjäysmäärityksille on oma osio valmiiden alla.
CoolBasic henkilökuntaa
Tech-kehittäjä
CoolBasic Classic, Cool VES

CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX
Sami345
Advanced Member
Posts: 349
Joined: Fri Aug 31, 2007 4:52 pm
Contact:

Re: ChaosBasic [version 0.0.1.8]

Post by Sami345 »

Jare wrote:
KilledWhale wrote:
Sami345 wrote: Ei toimi. Tiedosto on polussa "C:\Program Files\Notepad++\userDefineLang.xml". Notepad++ on versio 4.6.
Sama ongelma täälläpäin...
Ihmeellistä.

Kokeilin ladata N++:n uudestaan (4.6 zippinä), purkaa ja ladata tuon xml-tiedoston ohjelman juureen. Syntaksivärjäys toimi oikein. Kokeilkaapa tekin ladata ohjelma uudestaan (vaikka zippinä) ja purkaa esim vanhan päälle.

P.S. Millä tavalla "ei toimi"? Ei ilmesty kielivalikkoon vai ei vain värjää koodia?
Outua purin zipin tuonne ja korvasin kaikki tiedostot. Tämän jälkeen alkoi toimia.
Projektit: Fiperus - Jäädytetty pidemmäksi aikaa.
Voitot: Viikkokisa XIII, Pikapelikisa 3, Pikapelikisa 13
http://www.sami345.tk/
Guest

Re: ChaosBasic [version 0.0.1.9]

Post by Guest »

Täytyy siitä huolimatta että maailmalla on viime aikoina tapahtunut paljon, todeta, että Chaosbasic yksinkertaistaa yleisesti sovittuja ja toimiviksi todettuja organisaatio- ja johtamismallin muodollisuuksia.
jannepelaa
Active Member
Posts: 101
Joined: Tue Aug 28, 2007 2:27 pm

Re: ChaosBasic [version 0.0.1.9]

Post by jannepelaa »

Dibalo wrote:
jannepelaa wrote:Miksi muuten samaa kuvaa ei voi piirtää uudelleen, jos kuva on jo piirretty ennen Screen.Drawia?
Evo:

Code: Select all

koodia...
Anteeksi :? , pyöritettyä kuvaa ei voi piirtää uudestaan pyöritettynä ennen Screen.Drawia.
User avatar
Dibalo
Advanced Member
Posts: 298
Joined: Mon Aug 27, 2007 8:12 pm
Location: Espoo, Finland
Contact:

Re: ChaosBasic [version 0.0.1.9]

Post by Dibalo »

jannepelaa wrote:Anteeksi :? , pyöritettyä kuvaa ei voi piirtää uudestaan pyöritettynä ennen Screen.Drawia.

Code: Select all

Var cow As Image = New Image
cow.Load( "cow32.png" )


Repeat

	// asetaan läpinäkyvyys ja piirretään
	cow.SetOpacity( Mouse.X() / 640.0 )
	cow.DrawRotated 200,110, 90
	cow.DrawRotated 100,100,180
	cow.DrawRotated 400,50, 230

// piirretään näyttö
Screen.Draw
Forever
The darkest spells can be found from
http://tunkkaus.blogspot.fi
jannepelaa
Active Member
Posts: 101
Joined: Tue Aug 28, 2007 2:27 pm

Re: ChaosBasic [version 0.0.1.9]

Post by jannepelaa »

Mitä ihmettä? Tämä piirtää panoksen vain kerran:

Code: Select all

...
For b = 0 To 9
	If bullet[b,3] == 1 Then 
		bullet[b,0] = bullet[b,0] + Cos(bullet[b,2]) * 400 * delta_t
		bullet[b,1] = bullet[b,1] - Sin(bullet[b,2]) * 400 * delta_t
		guy.DrawRotated bullet[b,0], bullet[b,1], bullet[b,2]
	EndIf 
Next
guy.DrawRotated posx, posy, rotation
...
Ja jos DrawRotatedin vaihtaa Drawiin, panos näkyy.
User avatar
Dibalo
Advanced Member
Posts: 298
Joined: Mon Aug 27, 2007 8:12 pm
Location: Espoo, Finland
Contact:

Re: ChaosBasic [version 0.0.1.9]

Post by Dibalo »

En voi tutkia asiaa, jollen saa koko koodia tietooni.

EDIT: Vika on varmasti muualla:

Code: Select all

Var cow As Image = New Image
cow.Load( "cow32.png" )

Repeat

	For i = 0 To 360 Step 10
		cow.DrawRotated 320 + 200 * Cos(i), 240 - 200 * Sin(i), i
	Next

Screen.Draw
Forever
The darkest spells can be found from
http://tunkkaus.blogspot.fi
jannepelaa
Active Member
Posts: 101
Joined: Tue Aug 28, 2007 2:27 pm

Re: ChaosBasic [version 0.0.1.9]

Post by jannepelaa »

Code: Select all

Var guy As Image = New Image
guy.Load( "guy.bmp" )

// Panokset
Var bullet[10,4] As Integer
Var found


// Liikkuminen
Var posx As Float = 320
Var posy As Float = 240
Var rotation As Float = 0


Repeat

	Var delta_t As Float = Screen.GetFrameTime()
	// Liikkuminen ja ampuminen
	If Key.Down(KEY_UP) Then
		posx = posx + Cos(rotation) * 200 * delta_t
		posy = posy - Sin(rotation) * 200 * delta_t
	EndIf
	If Key.Down(KEY_LEFT) Then
		rotation += 180 * delta_t
	EndIf
	If Key.Down(KEY_RIGHT) Then
		rotation -= 180 * delta_t
	EndIf
	If Key.Hit(KEY_LCONTROL) Then
		found = 0
		For b = 0 To 9
			If found == 0 Then 
				If bullet[b,3] == 0 Then 
					bullet[b,0] = posx + 0//Cos(rotation) * 200 * delta_t
					bullet[b,1] = posy + 0//Sin(rotation) * 200 * delta_t
					bullet[b,3] = 1
					bullet[b,2] = rotation
					found = 1
				EndIf
			EndIf
		Next
	EndIf
	
	// Panosten päivitys
	For b = 0 To 9
		If bullet[b,3] == 1 Then 
			bullet[b,0] = bullet[b,0] + Cos(bullet[b,2]) * 400 * delta_t
			bullet[b,1] = bullet[b,1] - Sin(bullet[b,2]) * 400 * delta_t
			guy.DrawRotated bullet[b,0], bullet[b,1], bullet[b,2]
			Screen.Text 0,20*(b+1), bullet[b,0] +", "+ bullet[b,1] +", "+ bullet[b,2]
		EndIf 
	Next
	
	
	// Piirretään
	guy.DrawRotated posx, posy, rotation


	// Kerrotaan tietoa...
	Screen.Text 0,0, "Angle: "+ rotation +", FPS: "+Screen.FPS()

Screen.Draw
Forever 
EDIT: Hups, sekoilin jotain... Nyt oikea koodi
User avatar
Dibalo
Advanced Member
Posts: 298
Joined: Mon Aug 27, 2007 8:12 pm
Location: Espoo, Finland
Contact:

Re: ChaosBasic [version 0.0.1.9]

Post by Dibalo »

Koodissasi oli vikaa. Tässä toimiva:

Code: Select all

Var guy As Image = New Image
guy.Load( "guy.bmp" )

// Panokset
Var bullet[200,4] As Float

For i = 0 To 199
	bullet[i,3] = 0
Next


// Liikkuminen
Var posx As Float = 320
Var posy As Float = 240
Var rotation As Float = 0


Repeat

   Var delta_t As Float = Screen.GetFrameTime()
   // Liikkuminen ja ampuminen
   If Key.Down(KEY_UP) Then
      posx = posx + Cos(rotation) * 200 * delta_t
      posy = posy - Sin(rotation) * 200 * delta_t
   EndIf
   If Key.Down(KEY_LEFT) Then
      rotation += 180 * delta_t
   EndIf
   If Key.Down(KEY_RIGHT) Then
      rotation -= 180 * delta_t
   EndIf
   If Key.Hit(KEY_LCONTROL) Then
      For b = 0 To 199
         If bullet[b,3] == 0 Then
            If bullet[b,3] == 0 Then
               bullet[b,0] = posx
               bullet[b,1] = posy
               bullet[b,3] = 1
               bullet[b,2] = rotation
               b = 199 // vippaskonsti, jolla korvataan Break ;)
            EndIf
         EndIf
      Next
   EndIf
      
   // Panosten päivitys
   For b = 0 To 199
      If bullet[b,3] == 1 Then
         bullet[b,0] = bullet[b,0] + Cos(bullet[b,2]) * 400 * delta_t
         bullet[b,1] = bullet[b,1] - Sin(bullet[b,2]) * 400 * delta_t
         guy.DrawRotated bullet[b,0], bullet[b,1], bullet[b,2], 0.2, 0.2
         
         If bullet[b,0] < 0 Or bullet[b,0] > 640 Then
			bullet[b,3] = 0
		 ElseIf bullet[b,1] < 0 Or bullet[b,1] > 480 Then
			bullet[b,3] = 0
		 EndIf
		 
      EndIf
   Next
   
   
   // Piirretään
   guy.DrawRotated posx, posy, rotation


   // Kerrotaan tietoa...
   Screen.Text 0,0, "Angle: "+ rotation +", FPS: "+Screen.FPS()

Screen.Draw
Forever
The darkest spells can be found from
http://tunkkaus.blogspot.fi
jannepelaa
Active Member
Posts: 101
Joined: Tue Aug 28, 2007 2:27 pm

Re: ChaosBasic [version 0.0.1.9]

Post by jannepelaa »

Dibalo wrote:Koodissasi oli vikaa. Tässä toimiva:

Code: Select all

koodia...
Aa.. taulukon jäseniä ei luodessa alusteta 0:ksi. Nyt toimii. :D
EDIT: Pistäppäs seuraavaan versioon Timer-funktio.
EDIT2: Trigonometrisistä funktioista puuttuu ATan2.
Last edited by jannepelaa on Sat Dec 15, 2007 12:34 pm, edited 1 time in total.
Drath
Newcomer
Posts: 40
Joined: Mon Aug 27, 2007 8:32 pm

Re: ChaosBasic [version 0.0.1.9]

Post by Drath »

jannepelaa wrote: EDIT: Pistäppäs seuraavaan versioon Timer-funktio.
Itse toivoisin että tulisi myös Timer-olio. Oliolle voisi sanoa start, jolloin se alkaa ottamaan aikaa. Kun haluaa tietää kaunko aikaa on kulunut, voi kysyä oliolta tyyliin timer.elapsed. Haen sellaista ajanmittauskellon tapaista toimintaa. Kun noita omia luokkia ei vielä hetkeen ole tulossa säästyisi paljolta häsläämiseltä ajan kanssa jos olisi tuollainen.
CoolBasic henkilökuntaa
Sisältövastaava
Post Reply