Eli siis FreeBASIC on ilmainen avoimeenlähdekoodiin perustuva basic pohjainen ohjelmointikieli. FreeBASIC:n komentorivi kääntäjän voit ladata täältä: http://www.freebasic.net/index.php/download, FreeBASIC:le suunnitellun IDE:n voi myös ladata samaiselta sivulta alhaalta, sielä lukee että "Third-party tools", kannattaa valita sieltä FBEdit:n se on yksinkertainen, helppo ja monipuolinen. FreeBASIC:n mukana tulee mukavasti eri kirjastoja, mukaanlukien tulee myös SDL multimedia kirjasto, joka sisältää kaikki tarvittavat komennot pelien tekemiseen. Mutta ei kannata hoppuilla vielä teidän, jotka ovat vasta oppineet koodaamisen perusteet cb:lä. FreeBASIC paljon vaativempaa.
Täälä myös siis puhutaan yleisesti FreeBASIC:sta ja jaetaan ongelmia toisten ihmeteltäviksi.
Tässä olisi aikaansaannokseni, joka kuitenkin tilttaa siihen paikkaan, oisiko kellään tarkkaa silmää ja huomaisi, missä kohti tuo kusee?
#Include "SDL/SDL.bi"
#Include "SDL/SDL_gfx_primitives.bi"
#Include "SDL/SDL_mixer.bi"
#Include "SDL/SDL_ttf.bi"
#Include "SDL/SDL_gfx_rotozoom.bi"
Const SW = 640, SH = 480, SD = 32
Dim result As Unsigned Integer
Dim SDL_Screen As SDL_Surface Ptr
Dim event As SDL_Event
Dim kuva As SDL_Surface Ptr
Dim nappi As Uint8 Ptr
Dim Looping As Integer
Declare Sub DrawImage( img As SDL_Surface ptr, buffer As SDL_Surface Ptr, x As Single, y As Single)
Declare Sub ClsC(ByVal buffer As SDL_Surface Ptr, ByVal r As Byte,ByVal g As Byte,Byval b As Byte)
If (SDL_Init(SDL_INIT_EVERYTHING) < 0) Then
Print "Unable to initialize SDL!"; SDL_GetError()
End 1
EndIf
SDL_Screen = SDL_SetVideoMode(SW, SH, SD, SDL_HWSURFACE or SDL_DOUBLEBUF)
SDL_WM_SetCaption("Lol", "OLO")
If (SDL_Screen = NULL) Then
Print "Unavaible to set the graphics mode!"
SDL_Quit
EndIf
Do While (Looping = 0)
ClsC SDL_Screen, 255, 0, 255
nappi = SDL_GetKeyState(NULL)
Looping = (nappi[SDLK_ESCAPE])
SDL_Flip(SDL_Screen)
Loop
SDL_FreeSurface(kuva)
SDL_Quit
Sub ClsC(ByVal buffer As SDL_Surface Ptr, ByVal r As Byte,ByVal g As Byte,Byval b As Byte)
If Buffer = NULL Then Exit Sub
Dim dst As SDL_Rect
dst.w = buffer->w
dst.h = buffer->h
SDL_FillRect(buffer, @dst, SDL_MapRGB(buffer->format, r, g, b))
End Sub
Sub DrawImage( img As SDL_Surface ptr, buffer As SDL_Surface Ptr, x As Single, y As Single)
If img = NULL Or buffer = NULL Then Exit Sub
Dim dest As SDL_Rect
dest.x = x
dest.y = y
SDL_BlitSurface(img, 0, buffer, @dest)
End Sub
Jos jollekulle tulee ongelmaksi se ettei FreeBASIC löydä SDL:n .DLL tiedostoja niin katsoo tämän viestin loppuun.
Re: FreeBASIC topic
Posted: Mon Jan 31, 2011 9:04 pm
by Sly_Jack0
Kohdattuani omituisia kaatumisbugeja CB:n puolella ( ) uuden strategiapeliprojektini parissa päätin nyt sitten tätäkin kokeilla. PureBasiciä olen jonkin verran koodaillut, mutta ilmaisuus ja kirjastojen määrä houkuttavat FreeBasicissa.
Re: FreeBASIC topic
Posted: Wed Feb 02, 2011 10:52 am
by Aavesoturi
FreeBASIC on kyllä basiccien parhaimmistoa: tehokas, monipuolinen, ilmainen ja avoin. Itse olen sillä paljonkin koodaillut, mutta nyttemmin on C++ vienyt mennessään. FreeBASICin huonoin puoli on ehkäpä perinnän ja "rajapintojen" puute, joka rajoittaa hard-core olio-ohjelmointia jonkin verran (mutta esim. operaattorien overloadaus on mukana, joten sangen pitkälle pääsee).
Re: FreeBASIC topic
Posted: Thu Feb 10, 2011 7:11 pm
by MaGetzUb
Eikö muka FreeBASIC:sa Funktion parametreille voi asettaa oletusarvoja? Sen pitäisi olla mahdollista(debugger ainakin viittaa siihen suuntaan), mutta miten se toteutetaan..?