ChaosBasic [version 0.0.2.4]

Muu yhteisön välinen keskustelu.
User avatar
valscion
Moderator
Moderator
Posts: 1588
Joined: Thu Dec 06, 2007 8:46 pm
Location: Espoo
Contact:

Re: ChaosBasic [version 0.0.2.4]

Post by valscion » Wed Dec 26, 2007 4:35 am

Kiitos ohjeistuksesta. Toimii nyt aivan mahtavasti!

Ja saanko vielä sanoa: Holy COW! 2000 lehmää ja fps hipoo satasta! Odotin kyllä nopeaa, mutta tämähän ylittää kaikki odotukseni! Keep up the DAMN good work!
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

User avatar
vilQuri
Active Member
Posts: 239
Joined: Wed Aug 29, 2007 6:25 pm
Location: Turku

Re: ChaosBasic [version 0.0.2.4]

Post by vilQuri » Wed Dec 26, 2007 2:39 pm

Tämähän hakkaa CB:n totaalisesti! Ja milloinkas ChaosBasic:ille saadaan omat sivut ja foorumit?? :mrgreen:

User avatar
Sami345
Advanced Member
Posts: 349
Joined: Fri Aug 31, 2007 4:52 pm
Contact:

Re: ChaosBasic [version 0.0.2.4]

Post by Sami345 » Wed Dec 26, 2007 5:47 pm

vilQuri wrote:Tämähän hakkaa CB:n totaalisesti! Ja milloinkas ChaosBasic:ille saadaan omat sivut ja foorumit?? :mrgreen:
Foorumit taitaa olla jo http://www.chaoslib.info/forum/.
Projektit: Fiperus - Jäädytetty pidemmäksi aikaa.
Voitot: Viikkokisa XIII, Pikapelikisa 3, Pikapelikisa 13
http://www.sami345.tk/

User avatar
Dibalo
Advanced Member
Posts: 298
Joined: Mon Aug 27, 2007 8:12 pm
Location: Espoo, Finland
Contact:

Re: ChaosBasic [version 0.0.2.4]

Post by Dibalo » Wed Dec 26, 2007 7:17 pm

Sami345 wrote:
vilQuri wrote:Tämähän hakkaa CB:n totaalisesti! Ja milloinkas ChaosBasic:ille saadaan omat sivut ja foorumit?? :mrgreen:
Foorumit taitaa olla jo http://www.chaoslib.info/forum/.
Nuo foorumit ovat kuolleet. Ensi vuoden alusta ChaosBasic saa viralliset kotisivut ja foorumin.
The darkest spells can be found from
http://tunkkaus.blogspot.fi

User avatar
valscion
Moderator
Moderator
Posts: 1588
Joined: Thu Dec 06, 2007 8:46 pm
Location: Espoo
Contact:

Re: ChaosBasic [version 0.0.2.4]

Post by valscion » Wed Dec 26, 2007 10:19 pm

ChaosBasic tarvitsisi kunnon Editorin. Vähän samanlaisen kuin coolbasicissa
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

User avatar
Pate5
Artist
Artist
Posts: 551
Joined: Tue Aug 28, 2007 4:53 pm
Location: Vantaa

Re: ChaosBasic [version 0.0.2.4]

Post by Pate5 » Wed Dec 26, 2007 10:21 pm

OonSuomesta wrote:ChaosBasic tarvitsisi kunnon Editorin. Vähän samanlaisen kuin coolbasicissa
Niin, ja manuaalin ja komentojen esittelyt.
CoolBasic henkilökuntaa
Graafikko

User avatar
valscion
Moderator
Moderator
Posts: 1588
Joined: Thu Dec 06, 2007 8:46 pm
Location: Espoo
Contact:

Re: ChaosBasic [version 0.0.2.4]

Post by valscion » Thu Dec 27, 2007 12:00 am

Pate5 wrote:ja manuaalin.
Dibalo, jos tarvitset apua, niin voin tehdä sinulle valmiin sivupohjan (html ja/tai php) manuaalista.
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

User avatar
Sami345
Advanced Member
Posts: 349
Joined: Fri Aug 31, 2007 4:52 pm
Contact:

Re: ChaosBasic [version 0.0.2.4]

Post by Sami345 » Thu Dec 27, 2007 1:43 pm

Nopeus on kasvanut huimasti versiosta 0.0.1.9 versioon 0.0.2.4. Tein pienen testin ajoin saman koodin molepien kääntäjien läpi ja vertailin ohjelmien nopeutta.
0.0.1.9 version kääntäjän luoman ohjelman FPS = 1.8.
0.0.2.4 version kääntäjän luoman ohjelman FPS heittelehti 60 ja 71 välissä.

Tässä vielä koodi joka on 0.0.1.9 esimerkistä 4 hieman muunneltu poistamalla fontin lataus:

Code: Select all

/************* LENTÄVÄT LEHMÄT - ESIMERKKI 4 *************/
// Matti Lankinen

/*
	Alkusanat:
	Nyt käydään läpi edellisissä esimerkkikoodeissa oppimamme asiat ja yhdistellään ne
	cooliksi demoksi.. ;) On siis läpinäkyvyyttä ja venyvyyttä ja vaikka mitä kivaa.
	Lisäksi uutena käydään fontit ja tekstin/(primitiivien*) värjäys.
	
	*Primitiivejä ei tuettu vielä
*/


// kartan kuva
Var map As Image = New Image
map.Load "map512.jpg"

// lehmien kuva
Var cow As Image = New Image
cow.AddMask 0,0,0		// maskaus on lisättävä aina ENNEN latausta
cow.Load "cow32.png"


// kartan tiedot
Var mapPos[4,2] As Float
Var mapVel[4,2] As Float

For i = 0 To 3
	mapPos[i,0] = Randomf(0,630)
	mapPos[i,1] = Randomf(0,470)
	mapVel[i,0] = Randomf(-200,200)
	mapVel[i,1] = Randomf(-200,200)
Next


// läpinäkyvyysmuuttujat
Var mapOp As Float = 1.0
Var cowOp As Float = 1.0



// lehmien sijainnit
Var cowPos[1000,2] As Float
Var cowVel[1000,2] As Float
Var cowRot[1000,2] As Float // 0 = speed, 1 = angle

For i = 0 To 999
	cowPos[i,0] = Randomf(0,638)
	cowPos[i,1] = Randomf(0,488)
	cowVel[i,0] = Randomf(-50,50)
	cowVel[i,1] = Randomf(-50,50)
	cowRot[i,0] = Randomf(-120,120)
	cowRot[i,1] = Randomf(0,360)
Next






Repeat

	// päivitetään kartan sijainti
	Var delta_t As Float = Screen.GetFrameTime()
	For i = 0 To 3
		mapPos[i,0] += mapVel[i,0] * delta_t
		mapPos[i,1] += mapVel[i,1] * delta_t
		
		If mapPos[i,0] <= 0 Or mapPos[i,0] >= 640 Then
			mapVel[i,0] = -mapVel[i,0]
		EndIf
		If mapPos[i,1] <= 0 Or mapPos[i,1] >= 480 Then
			mapVel[i,1] = -mapVel[i,1]
		EndIf
	Next
	
	// sitten lehmien sijainti
	For i = 0 To 999
		cowPos[i,0] += cowVel[i,0] * delta_t
		cowPos[i,1] += cowVel[i,1] * delta_t
		
		If cowPos[i,0] <= 0 Or cowPos[i,0] >= 640 Then
			cowVel[i,0] = -cowVel[i,0]
		EndIf
		If cowPos[i,1] <= 0 Or cowPos[i,1] >= 480 Then
			cowVel[i,1] = -cowVel[i,1]
		EndIf
		
		cowRot[i,1] += cowRot[i,0] * delta_t
		cow.DrawRotated cowPos[i,0], cowPos[i,1], cowRot[i,1]
	Next
	
	
	
	// piirretään kartta
	map.Distort mapPos[0,0], mapPos[0,1], mapPos[1,0], mapPos[1,1], mapPos[2,0], mapPos[2,1], mapPos[3,0], mapPos[3,1]

	// FPS
	Screen.Text 0,0, "FPS: " + Screen.FPS() + "\nPress U/J to adjust map's opacity.\nPress I/K to adjust cow's opacity."
	
	
	
	// kartan läpinäkyvyys
	map.SetOpacity mapOp
	If Key.Down(KEY_U) Then
		mapOp += delta_t
	ElseIf Key.Down(KEY_J) Then
		mapOp -= delta_t
	EndIf

	If mapOp < 0 Then
		mapOp = 0
	ElseIf mapOp > 1 Then
		mapOp = 1
	EndIf
	
	// lehmien
	cow.SetOpacity cowOp
	If Key.Down(KEY_I) Then
		cowOp += delta_t
	ElseIf Key.Down(KEY_K) Then
		cowOp -= delta_t
	EndIf

	If cowOp < 0 Then
		cowOp = 0
	ElseIf cowOp > 1 Then
		cowOp = 1
	EndIf


Screen.Draw
Forever
Projektit: Fiperus - Jäädytetty pidemmäksi aikaa.
Voitot: Viikkokisa XIII, Pikapelikisa 3, Pikapelikisa 13
http://www.sami345.tk/

User avatar
jannepelaa
Active Member
Posts: 101
Joined: Tue Aug 28, 2007 2:27 pm

Re: ChaosBasic [version 0.0.2.4]

Post by jannepelaa » Thu Dec 27, 2007 9:19 pm

Sami345 wrote:Nopeus on kasvanut huimasti versiosta 0.0.1.9 versioon 0.0.2.4. Tein pienen testin ajoin saman koodin molepien kääntäjien läpi ja vertailin ohjelmien nopeutta.
0.0.1.9 version kääntäjän luoman ohjelman FPS = 1.8.
0.0.2.4 version kääntäjän luoman ohjelman FPS heittelehti 60 ja 71 välissä.

Tässä vielä koodi joka on 0.0.1.9 esimerkistä 4 hieman muunneltu poistamalla fontin lataus:

Code: Select all

Koodi
Eikös se johdu siitä, että ChaosBasic käyttää nyt DirectX:ää OpenGL:n (oliko?) sijasta.

User avatar
CCE
Artist
Artist
Posts: 650
Joined: Mon Aug 27, 2007 9:53 pm

Re: ChaosBasic [version 0.0.2.4]

Post by CCE » Fri Dec 28, 2007 10:07 pm

Hahaa, spottasin bugin.
Kääntäjä kaatuu jos For loopin Step arvo on syötetty virheellisesti ja on negatiivinen.

Code: Select all

For y = 100 To 0 Step foo=-69
Esim. tämä koodipätkä kaataa kääntäjän.

Ja naputtelinpa vielä kokoon huippurealisistisen mönjäsimulaattorin

Code: Select all

	// TEH MÖNJÄSIMULAATTORI
// by: cce
	Var x_offset=100 
	Var y_offset=100
	Var new_mouse_x=0	// pakko olla tälläset, muuten hiiri bugaa
	Var new_mouse_y=0
	Var new_mouse_down=0
	
	Var aika=0 	// käytetään pelin hidastamiseksi
	Var uusi_aika=0
	
	Var suunta = 0	// veden valumissuunta
	
	Var map[48,32,1] As Integer  // x, y, data
	Screen.SetColor(255, 255, 255)
Repeat
	Var delta_t As Float = Screen.GetFrameTime()
	new_mouse_x=Mouse.X()
	new_mouse_y=Mouse.Y()
	If Mouse.Hit(1)==True Then 
		new_mouse_down=1
	Else
		new_mouse_down=0
	EndIf
	
	// päivitetään hiekkalaatikko alhaalta ylöspäin
	For x = 0 To 47
	For y = 31 To 0 Step -1
		If map[x,y,0]==1 Then	// jos on kyseessä vesipisara
			If y < 31 Then // joka ei ole ruudun alaosassa
				If map[x,y+1,0] == 0 Then	// jonka alla on tyhjää tilaa
					map[x,y,0] = 0	// poistetaan nykyisestä kohdasta piste
					map[x,y+1,0] = 1 // ja siirretään se alaspäin
					Continue // ja seuraavan pikselin pariin
				Else	// jos ei ole, siirretään sitten alaviistoon
					If x > 0 And x < 47 Then // jos ei olla laidoilla
						If map[x-1,y+1,0]==0 Then // jos vasemmalla alaviistossa
							map[x,y,0] = 0	// poistetaan nykyisestä kohdasta piste
							map[x-1,y+1,0] = 1 // ja siirretään se alaspäin
							Continue
						ElseIf map[x+1,y+1,0]==0 Then  // ja jos oikealla
							map[x,y,0] = 0	
							map[x+1,y+1,0] = 1 		
							Continue
						Else	// siirretään sivuille
								// hieman toimimatonta koodia, pitäisi siirtää mönjää sivuille
								/*If map[x-1,y,0] == 0 Then
									map[x,y,0] = 0
									map[x-1,y,0] = 1
								EndIf

								If map[x+1,y,0] == 0 Then								
									map[x,y,0] = 0
									map[x+1,y,0] = 1
								EndIf
									*/
						EndIf
					EndIf
				EndIf
			EndIf
		EndIf
	Next
	Next
	
	// piirretään hiekkalaatikko
	For x = 0 To 47	
	For y = 0 To 31
		// Box(x*4, y*4, 4, 4)
		If map[x,y,0]==0 Then
			Screen.SetColor(32, 32, 32)
		EndIf
		If map[x,y,0]==1 Then
			Screen.SetColor(64, 255, 64)
		EndIf
		If map[x,y,0]==2 Then
			Screen.SetColor(128, 128, 128)
		EndIf
		
		 Screen.Box(x_offset+x*8,y_offset+y*8, 8, 8) // piirretään itse neliö
		
		If (new_mouse_x()-x_offset)/8==x And (new_mouse_y()-y_offset)/8==y Then
			// map[x,y,0] = 1
			If Mouse.Down(0) Then // jos klikataan, niin lisätään vettä
				map[x,y,0] = 1
			ElseIf Mouse.Down(1) Then
				map[x,y,0] = 0
			ElseIf Key.Down(KEY_SPACE) Then
				map[x,y,0] = 2
			EndIf
		EndIf
	 // Screen.Text x*8,y*8, "O"
	Next 
	Next

		Screen.SetColor(255, 255, 255)
	// FPS
	Screen.Text 0,24, "FPS: "+Screen.FPS()
	Screen.Text 0,0, "TEH MÖNJÄSIMULAATTORI"
	Screen.Text 0,12, "Mouse1: Lisää mönjää, Mouse2: Poista, Space: Piirrä maata"

// piirretään näyttö
Screen.Draw
// odottelut pois, jos haluat hidastaa, poista kommentointi allaolevista riveistä
/*
// ja pikku odottelu, hidastetaan peliä
	aika=Timer()
	Repeat
	uusi_aika=Timer()
	Until uusi_aika-aika > 15
*/

Forever

User avatar
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: ChaosBasic [version 0.0.2.4]

Post by tuhoojabotti » Sat Dec 29, 2007 2:07 pm

kiva toi simulaattori tein kerran coolbasicilla se oli kyllä kivan hidas ;)
tyypit ois hyvä saada tähän pian niin ja objectit mutta niissä taitaa olla aika paljon työtä ;)
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”

User avatar
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: ChaosBasic [version 0.0.2.4]

Post by koodaaja » Sat Dec 29, 2007 3:05 pm

tuhoojabotti wrote:kiva toi simulaattori tein kerran coolbasicilla se oli kyllä kivan hidas ;)
tyypit ois hyvä saada tähän pian niin ja objectit mutta niissä taitaa olla aika paljon työtä ;)
Tuskin Dibalo tästä mitään CB:n suoraa kloonia tekee, niin eiköhän olioiden ja structien kehiin saaminen olisi olennaisinta - en tosin tiedä, onko moisia vielä, en ole tätä uusinta versiota vielä kokeillutkaan. Eikä CB:n objektien vastinetta mielestäni tarvita ollenkaan, kuvat ajavat saman asian aivan hyvin.

User avatar
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: ChaosBasic [version 0.0.2.4]

Post by tuhoojabotti » Sat Dec 29, 2007 4:28 pm

en pystynyt olemaan koskematta tohon mönjö koodiin tein siitä vähän hitaamman ja enemmän nestemäisen ;)

Code: Select all

       // TEH MÖNJÄSIMULAATTORI
    // by: cce
	// modifications by: Tuhoojabotti
       Var x_offset=100
       Var y_offset=100
       Var new_mouse_x=0   // pakko olla tälläset, muuten hiiri bugaa
       Var new_mouse_y=0
       Var new_mouse_down=0
       Var noppa=0
	   
	   
       Var aika=0    // käytetään pelin hidastamiseksi
       Var uusi_aika=0
       
       Var suunta = 0   // veden valumissuunta
       
       Var map[96,64,1] As Integer  // x, y, data
       Screen.SetColor(255, 255, 255)
    Repeat
       Var delta_t As Float = Screen.GetFrameTime()
       new_mouse_x=Mouse.X()
       new_mouse_y=Mouse.Y()
       If Mouse.Hit(1)==True Then
          new_mouse_down=1
       Else
          new_mouse_down=0
       EndIf
       
       // päivitetään hiekkalaatikko alhaalta ylöspäin
       For x = 0 To 95
       For y = 63 To 0 Step -1
          If map[x,y,0]==1 Then   // jos on kyseessä vesipisara
             If y < 63 Then // joka ei ole ruudun alaosassa
                If map[x,y+1,0] == 0 Then   // jonka alla on tyhjää tilaa
                   map[x,y,0] = 0   // poistetaan nykyisestä kohdasta piste
                   map[x,y+1,0] = 1 // ja siirretään se alaspäin
				   
                   Continue // ja seuraavan pikselin pariin
                Else   // jos ei ole, siirretään sitten alaviistoon
                   If x > 0 And x < 95 Then // jos ei olla laidoilla
                      If map[x-1,y+1,0]==0 Then // jos vasemmalla alaviistossa
                         map[x,y,0] = 0   // poistetaan nykyisestä kohdasta piste
                         map[x-1,y+1,0] = 1 // ja siirretään se alaspäin
                         Continue
                      ElseIf map[x+1,y+1,0]==0 Then  // ja jos oikealla
                         map[x,y,0] = 0   
                         map[x+1,y+1,0] = 1       
                         Continue
                      Else   // siirretään sivuille
							noppa=Random(0,200)
							If noppa<100 Then 
								If map[x-1,y,0] == 0 Then 
									map[x,y,0] =0
									map[x-1,y,0] =1
								EndIf
							EndIf
							If noppa>100 Then 
								If map[x+1,y,0] == 0 Then 
									map[x,y,0] =0
									map[x+1,y,0] =1
								EndIf
							EndIf					  
                      EndIf
				   Else // reunalla ollaan
						If x<1 Then 
							If map[x,y,0]==1 Then 
								If map[x+1,y,0]==0 Then
									map[x,y,0]=0
									map[x+1,y,0]=1
								EndIf 
							EndIf
						ElseIf x>94 Then 
							If map[x,y,0]==1 Then 
								If map[x-1,y,0]==0 Then
									map[x,y,0]=0
									map[x-1,y,0]=1
								EndIf 
							EndIf
						EndIf
                   EndIf
                EndIf
             EndIf
          EndIf
       Next
       Next
       
       // piirretään hiekkalaatikko
       For x = 0 To 95 
       For y = 0 To 63
          // Box(x*4, y*4, 4, 4)
          If map[x,y,0]==0 Then
             Screen.SetColor(32, 32, 32)
          EndIf
          If map[x,y,0]==1 Then
             Screen.SetColor(0, 0, 255)
          EndIf
          If map[x,y,0]==2 Then
             Screen.SetColor(128, 128, 128)
          EndIf
          
           Screen.Box(x_offset+x*2,y_offset+y*2, 2, 2) // piirretään itse neliö
          
          If (new_mouse_x()-x_offset)/2==x And (new_mouse_y()-y_offset)/2==y Then
             // map[x,y,0] = 1
             If Mouse.Down(0) Then // jos klikataan, niin lisätään vettä
			 For i=0 To 2
				For a=0 To 2
					If x+i<96 Then 
						If y+a<64 Then 
							map[x+i,y+a,0] = 1
						EndIf
					EndIf
				Next
			 Next 
             ElseIf Mouse.Down(1) Then
                map[x,y,0] = 0
             ElseIf Key.Down(KEY_SPACE) Then
                map[x,y,0] = 2
             EndIf
          EndIf
        // Screen.Text x*8,y*8, "O"
       Next
       Next

          Screen.SetColor(255, 255, 255)
       // FPS
       Screen.Text 0,24, "FPS: "+Screen.FPS()
       Screen.Text 0,0, "TEH MÖNJÄSIMULAATTORI"
       Screen.Text 0,12, "Mouse1: Lisää mönjää, Mouse2: Poista, Space: Piirrä maata"

    // piirretään näyttö
    Screen.Draw
  
    Forever 
	
EDIT:

Korjasin pari bugia jotka estivät virtuaali veden tasaantumisen

Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”

User avatar
Dibalo
Advanced Member
Posts: 298
Joined: Mon Aug 27, 2007 8:12 pm
Location: Espoo, Finland
Contact:

Re: ChaosBasic [version 0.0.2.4]

Post by Dibalo » Tue Jan 01, 2008 3:05 am

Onnellista Uutta Vuotta Kaikille!

Vuoden alun kunniaksi pientä esimakua tulevasta editorista (hyvin alkuvaiheissa vielä):
Image
The darkest spells can be found from
http://tunkkaus.blogspot.fi

User avatar
vilQuri
Active Member
Posts: 239
Joined: Wed Aug 29, 2007 6:25 pm
Location: Turku

Re: ChaosBasic [version 0.0.2.4]

Post by vilQuri » Tue Jan 01, 2008 3:22 pm

Todella hieno, millon pistät lataukseen että pääsee jo tekemään jotain Chb:llä(vai mikä se olikin). :mrgreen: Tuleeko siihen samallainen run-systeemi kuin CB:n editorissa?

User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: ChaosBasic [version 0.0.2.4]

Post by Jonez » Tue Jan 01, 2008 4:36 pm

Näyttää erittäin hienolta. Se on kumma miten kunnon editori (ja helppo pääsy hyviin ohjeisiin) ainakin itsellä lisää koodaamishaluja.

Oli mulla asiaakin. Onko se bugi vai ominaisuus, kun ChB:ssä voi funktioita, joille annetaan parametriksi taulukko, käyttää vain jos taulukko on varattu itse funktion jälkeen? Itse tykkään heittää kaikki funkkarit pääsilmukan jälkeen, joka tässä tapauksessa on mahdotonta. Ymmärrän kyllä jos vastaus on yksinkertaisesti se että ChB on vielä alkuvaiheessa.

Tässä vielä esimerkki:
Toimii:

Code: Select all

Function Funkkari( Var taulu[] ) As Void
	Screen.Text 20, 20, "jotain"
EndFunction

Var taulu[10]

Repeat
	If Key.Hit( KEY_ESCAPE ) Then End
	
	Funkkari( taulu )

	Screen.Draw()
Forever
Ei toimi:

Code: Select all

Var taulu[10]

Repeat
	If Key.Hit( KEY_ESCAPE ) Then End
	
	Funkkari( taulu )

	Screen.Draw()
Forever


Function Funkkari( Var taulu[] ) As Void
	Screen.Text 20, 20, "jotain"
EndFunction
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War

User avatar
Dande
Active Member
Posts: 193
Joined: Tue Aug 28, 2007 4:30 pm

Re: ChaosBasic [version 0.0.2.4]

Post by Dande » Tue Jan 01, 2008 5:19 pm

Jonez wrote:Oli mulla asiaakin. Onko se bugi vai ominaisuus, kun ChB:ssä voi funktioita, joille annetaan parametriksi taulukko, käyttää vain jos taulukko on varattu itse funktion jälkeen? Itse tykkään heittää kaikki funkkarit pääsilmukan jälkeen, joka tässä tapauksessa on mahdotonta. Ymmärrän kyllä jos vastaus on yksinkertaisesti se että ChB on vielä alkuvaiheessa.
Kyseessä lienee bugi, koska seuraava toimii:

Code: Select all

Var taulu[10]

Repeat
   If Key.Hit( KEY_ESCAPE ) Then End
   
   Funkkari( taulu )

   Screen.Draw()
Forever


Function Funkkari( Var taulu2[] ) As Void
   Screen.Text 20, 20, "jotain"
EndFunction
kyseessä lienee jonkinlainen virhe funktion nimiavaruuden käsittelyssä.

User avatar
Pie2
Member
Posts: 55
Joined: Mon Aug 27, 2007 8:14 pm
Location: Porvoo

Re: ChaosBasic [version 0.0.2.4]

Post by Pie2 » Wed Jan 02, 2008 12:33 am

Latasinpa minäkin uusimman version. Täytyy sanoa että olet ahkeroinut kovasti, hyvää työtä. :]
Itse toivoisin tiedoston luku- ja kirjoituskomentoja.
GJ
Since 24-March 05

User avatar
Misthema
Advanced Member
Posts: 312
Joined: Mon Aug 27, 2007 8:32 pm
Location: Turku, Finland
Contact:

Re: ChaosBasic [version 0.0.2.4]

Post by Misthema » Wed Jan 02, 2008 12:52 am

Tuli hieman apinoitua ChB:llä ja sain aikaiseksi oman input systeemin. Tosin en saanut sitä toimimaan funktiossa....


Koodi kuitenkin tässä:

Code: Select all

// Joku input testi löel. By Misthema

Var _input As String
Var _column As Integer = 1
Var _blink As Integer = 0
Var _blinkTime As Float = 0.0
Var fontti As Font = New Font
fontti.Load "Lucida Console", 10
Screen.SetFont fontti
Screen.SetColor 0,255,0


Repeat

    Screen.Text 0,0, ">" + _input
	If _blink == 1 Then
		Screen.Box 6*_column,0, 5,10
		_blinkTime -= 1.0
	Else
		_blinkTime += 1.0
	EndIf
	//If _blink == 0 Then 
	If _blinkTime >= 50.0 Then _blink = 1
	If _blinkTime <= 0 Then _blink = 0
		
    // Numerot
    If Key.Hit(KEY_1) Then
		_input += "1"
		_column += 1
	EndIf
    If Key.Hit(KEY_2) Then
		_input += "2"
		_column += 1
	EndIf
    If Key.Hit(KEY_3) Then
		_input += "3"
		_column += 1
	EndIf
    If Key.Hit(KEY_4) Then
		_input += "4"
		_column += 1
	EndIf
    If Key.Hit(KEY_5) Then
		_input += "5"
		_column += 1
	EndIf
    If Key.Hit(KEY_6) Then
		_input += "6"
		_column += 1
	EndIf
    If Key.Hit(KEY_7) Then
		_input += "7"
		_column += 1
	EndIf
    If Key.Hit(KEY_8) Then
		_input += "8"
		_column += 1
	EndIf
    If Key.Hit(KEY_9) Then
		_input += "9"
		_column += 1
	EndIf

    If Key.Hit(KEY_SPACE) Then
		_input += " "
		_column += 1
	EndIf
    //If Key.Hit(KEY_BACKSLASH) Then _input -= 1 <- TÄMÄ EI TOIMI VIELÄ!
    
    // Jos jompaa kumpaa shiftiä painetaan, niin...
    If Key.Down(KEY_LSHIFT) Or Key.Down(KEY_RSHIFT) Then
        // Isot kirjaimet
        If Key.Hit(KEY_A) Then
			_input += "A"
			_column += 1
		EndIf
        If Key.Hit(KEY_B) Then
			_input += "B"
			_column += 1
		EndIf
        If Key.Hit(KEY_C) Then
			_input += "C"
			_column += 1
		EndIf
		If Key.Hit(KEY_D) Then
			_input += "D"
			_column += 1
		EndIf
        If Key.Hit(KEY_E) Then
			_input += "E"
			_column += 1
		EndIf
        If Key.Hit(KEY_F) Then
			_input += "F"
			_column += 1
		EndIf
        If Key.Hit(KEY_G) Then
			_input += "G"
			_column += 1
		EndIf
        If Key.Hit(KEY_H) Then
			_input += "H"
			_column += 1
		EndIf
        If Key.Hit(KEY_I) Then
			_input += "I"
			_column += 1
		EndIf
        If Key.Hit(KEY_J) Then
			_input += "J"
			_column += 1
		EndIf
        If Key.Hit(KEY_K) Then
			_input += "K"
			_column += 1
		EndIf
        If Key.Hit(KEY_L) Then
			_input += "L"
			_column += 1
		EndIf
        If Key.Hit(KEY_M) Then
			_input += "M"
			_column += 1
		EndIf
        If Key.Hit(KEY_N) Then
			_input += "N"
			_column += 1
		EndIf
        If Key.Hit(KEY_O) Then
			_input += "O"
			_column += 1
		EndIf
        If Key.Hit(KEY_P) Then
			_input += "P"
			_column += 1
		EndIf
        If Key.Hit(KEY_Q) Then
			_input += "Q"
			_column += 1
		EndIf
        If Key.Hit(KEY_R) Then
			_input += "R"
			_column += 1
		EndIf
        If Key.Hit(KEY_S) Then
			_input += "S"
			_column += 1
		EndIf
        If Key.Hit(KEY_T) Then
			_input += "T"
			_column += 1
		EndIf
        If Key.Hit(KEY_U) Then
			_input += "U"
			_column += 1
		EndIf
        If Key.Hit(KEY_V) Then
			_input += "V"
			_column += 1
		EndIf
        If Key.Hit(KEY_W) Then
			_input += "W"
			_column += 1
		EndIf
        If Key.Hit(KEY_X) Then
			_input += "X"
			_column += 1
		EndIf
        If Key.Hit(KEY_Z) Then
			_input += "Z"
			_column += 1
		EndIf

        // SHIFT+ merkit
        If Key.Hit(KEY_SLASH) Then
			_input += "_"
			_column += 1
		EndIf
        If Key.Hit(KEY_PERIOD) Then
			_input += ":"
			_column += 1
		EndIf
        If Key.Hit(KEY_COMMA) Then
			_input += ";"
			_column += 1
		EndIf
    Else // Jollei kumpaakaan shiftiä paineta, niin...
        // Pienet kirjaimet
        If Key.Hit(KEY_A) Then
			_input += "a"
			_column += 1
		EndIf
        If Key.Hit(KEY_B) Then
			_input += "b"
			_column += 1
		EndIf
		If Key.Hit(KEY_C) Then
			_input += "c"
			_column += 1
		EndIf
        If Key.Hit(KEY_D) Then
			_input += "d"
			_column += 1
		EndIf
        If Key.Hit(KEY_E) Then
			_input += "e"
			_column += 1
		EndIf
        If Key.Hit(KEY_F) Then
			_input += "f"
			_column += 1
		EndIf
        If Key.Hit(KEY_G) Then
			_input += "g"
			_column += 1
		EndIf
        If Key.Hit(KEY_H) Then
			_input += "h"
			_column += 1
		EndIf
        If Key.Hit(KEY_I) Then
			_input += "i"
			_column += 1
		EndIf
        If Key.Hit(KEY_J) Then
			_input += "j"
			_column += 1
		EndIf
        If Key.Hit(KEY_K) Then
			_input += "k"
			_column += 1
		EndIf
        If Key.Hit(KEY_L) Then
			_input += "l"
			_column += 1
		EndIf
        If Key.Hit(KEY_M) Then
			_input += "m"
			_column += 1
		EndIf
        If Key.Hit(KEY_N) Then
			_input += "n"
			_column += 1
		EndIf
        If Key.Hit(KEY_O) Then
			_input += "o"
			_column += 1
		EndIf
        If Key.Hit(KEY_P) Then
			_input += "p"
			_column += 1
		EndIf
        If Key.Hit(KEY_Q) Then
			_input += "q"
			_column += 1
		EndIf
        If Key.Hit(KEY_R) Then
			_input += "r"
			_column += 1
		EndIf
        If Key.Hit(KEY_S) Then
			_input += "s"
			_column += 1
		EndIf
		If Key.Hit(KEY_T) Then
			_input += "t"
			_column += 1
		EndIf
        If Key.Hit(KEY_U) Then
			_input += "u"
			_column += 1
		EndIf
        If Key.Hit(KEY_V) Then
			_input += "v"
			_column += 1
		EndIf
        If Key.Hit(KEY_W) Then
			_input += "w"
			_column += 1
		EndIf
        If Key.Hit(KEY_X) Then
			_input += "x"
			_column += 1
		EndIf
        If Key.Hit(KEY_Z) Then
			_input += "z"
			_column += 1
		EndIf
        If Key.Hit(KEY_SLASH) Then
			_input += "-"
			_column += 1
		EndIf
        If Key.Hit(KEY_PERIOD) Then
			_input += "."
			_column += 1
		EndIf
        If Key.Hit(KEY_COMMA) Then
			_input += ","
			_column += 1
		EndIf
    EndIf
    
    
Screen.Draw()
Forever
Jos joku saa tämän toimimaan funktiona niin pastee koodin sitten tänne. Olisi meinaan käyttöä tälle.. :)
En halua tyytyä sisäänrakennettuihin systeemeihin, vaan teen omat xP

User avatar
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: ChaosBasic [version 0.0.2.4]

Post by tuhoojabotti » Wed Jan 02, 2008 12:07 pm

inputti koodi ei käänny enkä jaksany kattoo mikä on vikana...
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”

Post Reply