CBEnchanted on hyvä vaihtoehto tässä odotellessa.Pon wrote:ei tää koskaa valmistu prkl...
CoolBasic Classic: Kehitysuutisten kommentit
- Zero
- Lead Developer
- Posts: 727
- Joined: Sun Aug 26, 2007 2:30 pm
- Location: Helsinki, Finland
- Contact:
Re: CoolBasic Classic: Kehitysuutisten kommentit
CoolBasic henkilökuntaa
Johtava Suunnittelija
CoolBasic V3, CoolBasic Classic
http://www.coolbasic.com/blog
Johtava Suunnittelija
CoolBasic V3, CoolBasic Classic
http://www.coolbasic.com/blog
Re: CoolBasic Classic: Kehitysuutisten kommentit
Onko kenelläkään tietoa siitä, että tuleeko mikään uusi versio coolbasicista koskaan valmistumaan?
Re: CoolBasic Classic: Kehitysuutisten kommentit
Asiasta sen enempää tietämättä täytyy myöntää että aika heikoltahan tämä näyttää.Timblex wrote:Onko kenelläkään tietoa siitä, että tuleeko mikään uusi versio coolbasicista koskaan valmistumaan?
Tässä muutamia vaihtoehtoja CoolBasicille:
- LÖVE: Lua-skriptattava 2D-pelimoottori. Cross-platform ja yhteisö vaikuttaa eläväiseltä. Kirjastojen nimet ovat joskus ällöjä.
- Flixel on varsin suosittu Flash-pelikirjasto. Pelit ohjelmoidaan ActionScript 3 kielellä, joka on vähän kuin Java.
- Processing on erinomainen valinta nopeaan grafiikkaohjelmointiin. Mukana tulee yksinkertainen IDE ja virtaviivainen grafiikkakirjasto.
- GNU Octave on oivallinen mikäli mielessä ovat jonkinlaiset simulaatiot tai pikaiset automaattiset laskutoimitukset.
Re: CoolBasic Classic: Kehitysuutisten kommentit
Mitä tämä on? Blogiin on alkanut ilmestymään postauksia! Ilmeisesti siis kulissien takana oikeasti tapahtuu jotain, vaikka useimmat lienee jo menettäneet uskonsa CB:n paluuseen (allekirjoittanut mukaan lukien). Mukava lukea kehityksestä. Tsemppiä kehitystiimille!
- Zero
- Lead Developer
- Posts: 727
- Joined: Sun Aug 26, 2007 2:30 pm
- Location: Helsinki, Finland
- Contact:
Re: CoolBasic Classic: Kehitysuutisten kommentit
axu wrote:Mitä tämä on? Blogiin on alkanut ilmestymään postauksia! Ilmeisesti siis kulissien takana oikeasti tapahtuu jotain, vaikka useimmat lienee jo menettäneet uskonsa CB:n paluuseen (allekirjoittanut mukaan lukien). Mukava lukea kehityksestä. Tsemppiä kehitystiimille!
CoolBasic henkilökuntaa
Johtava Suunnittelija
CoolBasic V3, CoolBasic Classic
http://www.coolbasic.com/blog
Johtava Suunnittelija
CoolBasic V3, CoolBasic Classic
http://www.coolbasic.com/blog
Re: CoolBasic Classic: Kehitysuutisten kommentit
Ymmärtäähän sen, että julkaisussa kestää, kun ensin täytyy kehittää aikakone, jotta vielä ehtisi vuoden 2012 aikana sen julkaisemaan.
- Zero
- Lead Developer
- Posts: 727
- Joined: Sun Aug 26, 2007 2:30 pm
- Location: Helsinki, Finland
- Contact:
Re: CoolBasic Classic: Kehitysuutisten kommentit
Se hirveä weppisivu pitää korvata jossain vaiheessa.
Mutta laitetaan sitten kertarysäyksellä uusiksi...
Mutta laitetaan sitten kertarysäyksellä uusiksi...
CoolBasic henkilökuntaa
Johtava Suunnittelija
CoolBasic V3, CoolBasic Classic
http://www.coolbasic.com/blog
Johtava Suunnittelija
CoolBasic V3, CoolBasic Classic
http://www.coolbasic.com/blog
Re: CoolBasic Classic: Kehitysuutisten kommentit
Eli vaihdetaan koko vuosiluku?Zero wrote:Se hirveä weppisivu pitää korvata jossain vaiheessa.
Mutta laitetaan sitten kertarysäyksellä uusiksi...
Re: CoolBasic Classic: Kehitysuutisten kommentit
Mites on kehityksen laita, kokonaisuutta ajatellen? Kuinka suuri osa työstä on tehty? Haluttaisi päästä tekemään jotain pientä peliä, mutta nykyinen cb alkaa olla jo niin vanhentunut ettei windows 8 pyöritä. Tästä kyllä tulee kaikkein paras ohjelmointikieli helppous/ominaisuus -suhteeltaan!Zero wrote:axu wrote:Mitä tämä on? Blogiin on alkanut ilmestymään postauksia! Ilmeisesti siis kulissien takana oikeasti tapahtuu jotain, vaikka useimmat lienee jo menettäneet uskonsa CB:n paluuseen (allekirjoittanut mukaan lukien). Mukava lukea kehityksestä. Tsemppiä kehitystiimille!
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
Re: CoolBasic Classic: Kehitysuutisten kommentit
Miitin perusteella valmiina on editorin valikot, eli n. 72,69% kääntäjästä.skinkken wrote:Mites on kehityksen laita, kokonaisuutta ajatellen? Kuinka suuri osa työstä on tehty? Haluttaisi päästä tekemään jotain pientä peliä, mutta nykyinen cb alkaa olla jo niin vanhentunut ettei windows 8 pyöritä. Tästä kyllä tulee kaikkein paras ohjelmointikieli helppous/ominaisuus -suhteeltaan!Zero wrote:axu wrote:Mitä tämä on? Blogiin on alkanut ilmestymään postauksia! Ilmeisesti siis kulissien takana oikeasti tapahtuu jotain, vaikka useimmat lienee jo menettäneet uskonsa CB:n paluuseen (allekirjoittanut mukaan lukien). Mukava lukea kehityksestä. Tsemppiä kehitystiimille!
Re: CoolBasic Classic: Kehitysuutisten kommentit
Höpö höpö juttuja, kaikki tietää että coolbasic on jo kuollut.Pettis wrote: Miitin perusteella valmiina on editorin valikot, eli n. 72,69% kääntäjästä.
exe tiedosto swf muotoon: Lopetettu
Tervetuloa lukemaan foorumin noloimman käyttäjän viestejä!
Tervetuloa lukemaan foorumin noloimman käyttäjän viestejä!
Re: CoolBasic Classic: Kehitysuutisten kommentit
Mie en tiennyt.Mikki0000 wrote:Höpö höpö juttuja, kaikki tietää että coolbasic on jo kuollut.Pettis wrote: Miitin perusteella valmiina on editorin valikot, eli n. 72,69% kääntäjästä.
Re: CoolBasic Classic: Kehitysuutisten kommentit
Pitäis tietää...Awaclus wrote:Mie en tiennyt.Mikki0000 wrote:Höpö höpö juttuja, kaikki tietää että coolbasic on jo kuollut.Pettis wrote: Miitin perusteella valmiina on editorin valikot, eli n. 72,69% kääntäjästä.
Kannattaa vaihtaa coolbasic vaikka c++ tai c#
exe tiedosto swf muotoon: Lopetettu
Tervetuloa lukemaan foorumin noloimman käyttäjän viestejä!
Tervetuloa lukemaan foorumin noloimman käyttäjän viestejä!
Re: CoolBasic Classic: Kehitysuutisten kommentit
Tosikoodarihan on jo tässä ajassa siirtyny C-johdannaisista Lispin, Prologin ja Haskellin kautta Malbolgeen.
CoolBasic henkilökuntaa
Kehittäjä
CoolBasic Classic
Kehittäjä
CoolBasic Classic
-
- Moderator
- Posts: 227
- Joined: Wed Aug 29, 2007 3:55 pm
Re: CoolBasic Classic: Kehitysuutisten kommentit
Olettekos tätä nähneet? https://github.com/Latexi95/CBCompiler/tree/develop
Siinä olisi toinen lupaava projekti odotellessa. Siitä on jossain muutama vanhentunut paketti jossain, mutta kannattaa ladata ja kääntää itse jos pystyy niin voi osallistua kehitykseen vaikka ajankohtaisilla raporteilla tai itse koodaamalla
.
Se osaa aika jänniä juttuja ja kääntää natiiviksi. Funktiopointterit ja rinnakkaisuus ja taitaa nyt olla viimesimpänä tekeillä peruskomentojen lisäksi. Ja jotain opengl-testiäkin taisi olla.
tests-kansiossa on esimerkkejä, joista suurin osa toimii.
Päivitin mökillä raytraceriani hyödyntämään tuon nopeutta ja tein samalla pienen vektorikirjaston. Magetzub jatkoi sitä juuri matriisikirjastolla.
Vanha coolbasic-koodi ei toimi CBCompilerilla yleensä suoraan toisin kuin CBE:llä, sillä siihen on lisätty vahva tyypitys ja muutettu syntaksia ja semantiikkoja hiukan ja lisäilty muita juttuja, jotta siitä saisi vahvemman ja mukavamman kielen vaativammillekin koodaajille.
Kieli on perusosiltaan valmis ja nyt siihen on tekeillä "ylimääräisiä" herkkuja, Eniten kesken taitaa olla runtime, joka ei ole vielä yhtä kattava kuin CoolBasicissa, vaikka siinäkin kivoja lisiä.
Nopeudesta en tainnut muistaa mainita... Kauan sitten efektitopicissa julkaisemani muutaman pallon raytraceri, joka tuotti yhden kuvan noin kymmenessä sekunnissa, toimii CBCompilerilla reaaliaikaisesti varjojen ja muiden lisäysten kanssakin.
Tässä on esimerkkikuva:
Teoriassa nopeudessa olisi vielä parannettavaa reilustikin. Tietysti nopeampi tietokonekin auttaisi, mutta myös rinnakkaisuus ja pikkusäätö piirrossa ehkä.
Siinä olisi toinen lupaava projekti odotellessa. Siitä on jossain muutama vanhentunut paketti jossain, mutta kannattaa ladata ja kääntää itse jos pystyy niin voi osallistua kehitykseen vaikka ajankohtaisilla raporteilla tai itse koodaamalla
.
Se osaa aika jänniä juttuja ja kääntää natiiviksi. Funktiopointterit ja rinnakkaisuus ja taitaa nyt olla viimesimpänä tekeillä peruskomentojen lisäksi. Ja jotain opengl-testiäkin taisi olla.
tests-kansiossa on esimerkkejä, joista suurin osa toimii.
Päivitin mökillä raytraceriani hyödyntämään tuon nopeutta ja tein samalla pienen vektorikirjaston. Magetzub jatkoi sitä juuri matriisikirjastolla.
Vanha coolbasic-koodi ei toimi CBCompilerilla yleensä suoraan toisin kuin CBE:llä, sillä siihen on lisätty vahva tyypitys ja muutettu syntaksia ja semantiikkoja hiukan ja lisäilty muita juttuja, jotta siitä saisi vahvemman ja mukavamman kielen vaativammillekin koodaajille.
Kieli on perusosiltaan valmis ja nyt siihen on tekeillä "ylimääräisiä" herkkuja, Eniten kesken taitaa olla runtime, joka ei ole vielä yhtä kattava kuin CoolBasicissa, vaikka siinäkin kivoja lisiä.
Nopeudesta en tainnut muistaa mainita... Kauan sitten efektitopicissa julkaisemani muutaman pallon raytraceri, joka tuotti yhden kuvan noin kymmenessä sekunnissa, toimii CBCompilerilla reaaliaikaisesti varjojen ja muiden lisäysten kanssakin.
Tässä on esimerkkikuva:
Teoriassa nopeudessa olisi vielä parannettavaa reilustikin. Tietysti nopeampi tietokonekin auttaisi, mutta myös rinnakkaisuus ja pikkusäätö piirrossa ehkä.
Re: CoolBasic Classic: Kehitysuutisten kommentit
Kuten Atomimalli, tuossa ylemmässä viestissä kirjoittikin. CoolBasic ei ainakaan meidän puolestamme ole kuollut. Tästä voitte kokeilla koodaamaani pallojen fysiikkasimulaatiota uudemmalle "CB" kääntäjälle.
Tässä myös ohjelman koodi, jos joku haluaa tutkia koodia, ja nähdä miten se toimii tällä meidän "CB":lä.
Tässä myös ohjelman koodi, jos joku haluaa tutkia koodia, ja nähdä miten se toimii tällä meidän "CB":lä.
Code: Select all
Rem Ball physics
By. MaGetzub
License: Do what ever you like with it. :)
EndRem
Include "AdvancedMaths.cb"
//You can modify these Constants how ever you like.
//A gravity
Const Gravity As Float = 9.81
//How many pixels on a screen is a meter, this is somehow misleading..
Const MeterPerPixel As Float = 100.0
//How much there's friction on a surface?
Const SurfaceFriction As Float = 1.25
//Screen size..
Const SW As Integer = 1280
Const SH As Integer = 720
//Collection of data for balls
Type Balls
Field mPos As Vector2 //Ball's position vector
Field mVel As Vector2 //Ball's velocity vector
Field mRad As Float //Balls radius
Field mMass As Float //Ball's mass
EndType
//Collection of data for collision handling between balls
Type CollisionPair
Field Ball1 As Balls //Ball1 handle
Field Ball2 As Balls //Ball2 handle
EndType
//Collection of data for walls
Type Walls
Field mStart As Vector2 //Starting coordinate vector
Field mEnd As Vector2 //Ending coordinate vector
EndType
//And let's put up a screen
SCREEN SW, SH
//Let's add some walls for the scene, so the balls cannot fall into void.
InitSegment Vec2(20, 20), Vec2(SW-20, 20)
InitSegment Vec2(20, SH-20), Vec2(SW-20, SH-20)
InitSegment Vec2(20, 20), Vec2(20, SH-20)
InitSegment Vec2(SW - 20, 20), Vec2(SW - 20, SH-20)
//We're not creating a new wall.
beginNewSeg As Byte = False
Repeat
//Show the fps in the window's title bar.
SetWindow "FPS: "+FPS()
//Let's set a drawing color
Color 0, 196, 255
//Let's draw some text for info purposes (in Finnish)
Text 0, 0, "Lisää seinä hiiren vasemmalla napilla."
Text 0, 10, "Lisää pallo hiiren oikealla napilla."
Text 0, 20, "Aseta pallojen suuntavektorit hiirtäkohti painamalla hiiren rullaa."
Text 0, 30, "Välilyönnistä puhdistaa liike-energiat."
newSeg As Vector2
//If mouse's second button is clicked and we are not creating a new wall
//let's add a ball with a random mass.
If MouseHit(2) And beginNewSeg = False Then
mass As Float = Rnd(10.0, 16.0)
AddBall mousex(), mousey(), mass, mass*3.0
EndIf
//If moue button is clickked let's start to adding a new wall.
If MouseHit(1) Then
beginNewSeg = True
newSeg.x = MouseX()
newSeg.y = MouseY()
EndIf
//Mouse button is down, let's draw a line between wall starting point and mouse position
If MouseDown(1) And beginNewSeg = True Then
Line newSeg.X, newSeg.Y, MouseX(), MouseY()
EndIf
//Mouse button is up, let's add a wall between wall starting point and mouse position, if the distance
//is more than 10px.
If MouseUp(1) And beginNewSeg = True Then
beginNewSeg = False
If Distance(newSeg.X, newSeg.Y, MouseX(), MouseY()) > 10.0 Then
InitSegment Vec2(newSeg.X, newSeg.Y), Vec2(MouseX(), mouseY())
EndIf
EndIf
Color 0, 196, 255
if KeyHit(46) Then
For b as Balls = Each Balls
b.mVel = Vec2(0, 0)
Next b
EndIF
//Let's update ball phyiscs
UpdatePhysics
//Let's draw balls
DrawBalls
//Let's draw walls
DrawWalls
//Limits fps between 60 - 70
Wait 15
DrawScreen
Forever
Rem
InitSegment adds a new wall into scene.
EndRem
Function AddBall(x As Float, y As Float, mass As Float, rad As Float)
//Let's initialize a rookie ball. :)
b as Balls = New(Balls)
//Let's set it's data.
b.mPos = Vec2(MouseX(), MouseY())
b.mMass = mass
b.mRad = rad
//Let's add a new collision pair between all balls, but not with the rookie one
For b2 As Balls = Each Balls
if b <> b2 Then AddCollisionPair b, b2
Next b2
EndFunction
Rem
InitSegment adds a new wall into scene.
EndRem
Function InitSegment(vstart As Vector2, vend As Vector2)
s As Walls = New (Walls)
s.mStart = vStart
s.mEnd = vEnd
EndFunction
Rem
AddPair adds a collision pair with given parameters.
EndRem
Function AddCollisionPair(ball1 As Balls, ball2 As Balls)
if FindCollisionPair(ball1, ball2) <> NULL Then return
pair As CollisionPair = New (CollisionPair)
pair.Ball1 = ball1
pair.Ball2 = ball2
EndFunction
Rem
FindPair deletes a pair with given parameters. Doesn't notice the handle order.
EndRem
Function DeleteCollisionPair(ball1 As Balls, ball2 As Balls)
pair As CollisionPair = FindCollisionPair(ball1, ball2)
If pair <> NULL Then Delete pair
EndFunction
Rem
FindPair finds a pair with given parameters. Doesn't notice the handle order.
EndRem
Function FindCollisionPair(ball1 As Balls, ball2 As Balls) As CollisionPair
//Let's search the pair list through
For pair As CollisionPair = Each CollisionPair
//We found a pair with same handles. Doesnt' matter in which order ball1 and ball2 are there
//If they are in reverse order we still recognize it.
if pair.Ball1 = ball1 And pair.Ball2 = ball1 or pair.Ball1 = ball2 and pair.ball2 = ball1 Then
//Pair found let's return it
return pair
Endif
Next pair
return null
EndFunction
Rem
HandleCollisionPairs handles every balls' collision
EndRem
Function HandleCollisionPairs()
For pair As CollisionPair = Each CollisionPair
//Let's calculate a collision vector between pair's ball2 and ball1
collision As Vector2 = Sub(pair.ball1.mPos, pair.ball2.mPos)
//Let's calclulate the collision vector's length
collisiondist As Float = Length(collision)
//Let's calculate which is the smallest distance between two balls
space As Float = (pair.ball1.mRad + pair.ball2.mRad)
//If distance is zero between balls' centers we do some hacks for
//preventing to divide by zero.
if collisiondist = 0.0 then
collision = Vec2(1.0, 0) //Let's set collision vector pointing to right
collisiondist = 1.0
endif
//Collision dist is less than the smallest distance between ball.
//Ladies and gentlemen, collision just happened!
If collisiondist < space Then
//Let's normalize the collision direction vector
collision = Normalize(collision)
//Let's save the old velocity
u1 As Float = Length(pair.ball1.mVel)
u2 As Float = Length(pair.ball2.mVel)
//Let's calculate the new velocity
//For ball1
v1 As Float = u1 * (pair.ball1.mMass - pair.ball2.mMass) + 2*pair.ball2.mMass*u2
v1 = v1 / (pair.ball1.mMass + pair.ball2.mMass)
//And for ball2
v2 As Float = u2 * (pair.ball2.mMass - pair.ball1.mMass) + 2*pair.ball1.mMass*u1
v2 = v2 / (pair.ball1.mMass + pair.ball2.mMass)
//Let's apply them by multiplying the normalized collision vector.
pair.ball1.mVel = Mul(collision, v1)
pair.ball2.mVel = Mul(Negate(collision), v2)
//Done!
EndIf
Next pair
EndFunction
Rem
DrawWalls function, draws every wall there is.
EndRem
Function DrawWalls()
For s As Walls = Each Walls
Color 0, 196, 0
Line s.mStart, s.mEnd
Next s
EndFunction
Rem
Balls function, draws a ball with given parameters.
EndRem
Function Ball(vector As Vector2, rad As Float)
Circle vector.x - rad, vector.y - rad, rad*2, false
End Function
Rem
DrawBalls function, draws every ball there is.
EndRem
Function DrawBalls()
Color 0, 128, 255
For b As Balls = Each Balls
Ball b.mPos, b.mRad
Next b
EndFunction
Rem
Overloaded linefunction to draw lines between coordinate vectors
EndRem
Function Line(v1 As Vector2, v2 As Vector2)
Line v1.x, v1.y, v2.x, v2.y
EndFunction
Rem
UpdatePhysics function, update physics of every ball. :)
EndRem
Function UpdatePhysics()
Color 255, 255, 255
//Let's handle ball to ball collisions.
HandleCollisionPairs
For b As Balls = Each Balls
//If user press the roll button on mouse, let's create some chaos by setting
//balls velocities towards the mouse.
If MouseDown(3) Then
b.mVel = Add(b.mVel, Mul(Sub(Vec2(MouseX(), MouseY()), b.mPos), 0.5))
EndIf
//Apply velocities to ball's position vector
b.mPos = Add(b.mPos, Div(b.mVel, MeterPerPixel))
//Apply gravity
b.mVel.y = b.mVel.y + Gravity
For s As Walls = Each Walls
//Wall's vector, the wall vector from start coordinate vector to end coordinate vector
lineVector As Vector2 = Sub(s.mEnd, s.mStart)
//Wall vector's direction
lineVectorDir As Vector2 = Normalize(lineVector)
//Wall's start to balls position vector
lineToPoint As Vector2 = Sub(b.mPos, s.mStart)
//Scale value where the ball is on the line
lineScale As Float = Dot(lineVectorDir, lineToPoint) / Length(lineVector)
//Helps the balls acting rightly in the corner cases
lineScale = Min(1.0, Max(0.0, lineScale))
//Let's multiply wall's vector with linescale, so we can get the position we can sum
//to the wall's start position.
ballReletiveToLine As Vector2 = Mul(lineVector, lineScale)
//Let's project balls position on the wall.
pointOnLine As Vector2 = Add(s.mStart, ballReletiveToLine)
//Now we can form a vector from the balls position and the balls projected position on wall,
//for correct the ball's position if ball is colliding with the wall line.
ballOnLineToBallCenter As Vector2 = Sub(b.mPos, pointOnLine)
//So the distance between ball and wall line is less tha ball radius, a collission has just been happened.
If Length(ballOnLineToBallCenter) < b.mRad Then
b.mPos = Add(pointOnline, Mul(Normalize(ballOnLineToBallCenter), b.mRad))
b.mVel = Mul(Reflect(b.mVel, ballOnLineToBallCenter), 1.0 / SurfaceFriction)
EndIf
Next s
Next b
EndFunction
Last edited by MaGetzUb on Wed Dec 03, 2014 5:01 am, edited 3 times in total.
Solar Eclipse
We're in a simulation, and God is trying to debug us.
Re: CoolBasic Classic: Kehitysuutisten kommentit
Itseasiassa viestini oli harhaanjohtava ja käytin tuota "CBC" (Tulee sanoista CBCompiler) juttua ihan turhaan. Tämä Latexin repossa oleva CB versio ei liity varsinaisesti viralliseen CoolBasiciin mitenkään. Ja parempaa nimeäkään tälle ei olla viralliesti keksitty. Oma ehdotukseni on edelleen FrostBasic. Mutta kyllä, Latexi:n repossa oleva koodi on avointa, ja kuka vaan voi tulla mukaan kehitykseen.siis wrote:Coolbasic Classic on open source???????
Solar Eclipse
We're in a simulation, and God is trying to debug us.