FreeBASIC topic

Muu yhteisön välinen keskustelu.
Post Reply
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

FreeBASIC topic

Post 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. :)
Attachments
all_SDL_DLLs.zip
(616.41 KiB) Downloaded 267 times
Last edited by MaGetzUb on Tue Feb 01, 2011 4:28 pm, edited 1 time in total.
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
Sly_Jack0
Devoted Member
Posts: 612
Joined: Mon Dec 10, 2007 8:25 am

Re: FreeBASIC topic

Post 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.
Aavesoturi
Active Member
Posts: 163
Joined: Fri Aug 31, 2007 7:07 pm
Location: Helsinki
Contact:

Re: FreeBASIC topic

Post 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).
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: FreeBASIC topic

Post 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..?
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
Post Reply