Page 1 of 1

FreeBASIC topic

Posted: Mon Jan 31, 2011 8:31 pm
by MaGetzUb
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. :roll:

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? :)

Code: Select all

#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 ( :x ) 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..?