Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[FreeBASIC] EliteTanks projekat

[es] :: Ostali programski jezici :: [FreeBASIC] EliteTanks projekat
(TOP topic, by Gojko Vujovic)
Strane: < .. 1 2 3 4 5 6 7 8 ... Dalje > >>

[ Pregleda: 50167 | Odgovora: 267 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.yu.

Sajt: www.vasictech.net


Profil

icon Re: [FreeBASIC] EliteTanks projekat15.03.2008. u 00:23 - pre 3333 dana i 20h
naravno,prvo sam odradio u vb,a sad cu da prevodim u freebasic

p.s. u fb-u ima header bass.bi ;)
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.114.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat15.03.2008. u 00:33 - pre 3333 dana i 20h
@Aleksandar Vasic
Evo ti Subrutina za Volume
Code:

Private Sub Slider1_Change()
SetVolume CLng(Slider1.value)
End Sub

Samo podesi slider na moguci minimum i maximum
A mozes i ovako
Code:

SetVolume CLng(Slider1.value) * NeskiBroj

Da nebi bili mali podeoci na slideru
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.114.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat15.03.2008. u 00:34 - pre 3333 dana i 20h
Aha imaju bass.bi :)
Ljudi su se bas naradili oko tog FreeBasica ...
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


Profil

icon Re: [FreeBASIC] EliteTanks projekat15.03.2008. u 08:17 - pre 3333 dana i 12h
sto se tice Sound (Music) modula, mislim da nam je ipak dovoljno samo left/right balance, tj da ne komplikujemo sa front/rear, jer nije bas jednostavno (malo sam procesljao BASS dokumentaciju) znaci Y nece uticati na front/rear nego na volume i to u zavisnosti od blizine dogadjaja igracu (u sourceu koji dajem vidi se o cemu pricam), i ono sto nam je potrebno to je pustanje fajla koji se nalazi u memoriji (jer ce se svi zvuci/muzika nalaziti zapakovani u PCKD fajlove, danas cu raditi na Packeru i PCKD formatu, pa kad zavrsim i istestiram okacicu source), znaci evo sta nam treba:
Code:

' ovo je samo za testiranje, bice deklarisano u glavnom modulu
#define SCREEN_WIDTH 800
#define SCREEN_HEIGHT 600
#define CENTER_X SCREEN_WIDTH / 2
#define CENTER_Y SCREEN_HEIGHT / 2
Dim Shared SFXVolumeLevel As Integer = 75 ' u intervalu 0 - 100
Dim Shared PlayerY As Single = CENTER_Y ' ovo ce biti definisano u glavnom modulu, a predstavlja tenutnu Y poziciju igraca na ekranu

Enum SFXType ' i ovo ce biti deklarisano u glavnom modulu...
   sfxExplosion = 0
   sfxBullet = 1
   sfxWallHit = 2 ' ovo navodim samo kao primere...
End Enum

#include "bass.bi"

Namespace Music

   Sub Initialize
        BASS_Init -1, 44100, 0, 0, 0
   End Sub

   Sub Shutdown
         BASS_Free
   End Sub

   Sub PlaySFX(sfx As SFXType, X As Single = CENTER_X, Y As Single = CENTER_Y)

       Dim memloc As Byte Pointer
       Dim length As Integer

       ' za ovo pogledajte dole (bice definisano u nekom od drugih modula)
       GetSoundData sfx, memloc, length

       Dim stream As Integer

       stream = BASS_STreamCreateFile(1, memloc, 0, length, BASS_STREAM_AUTOFREE) ' ovde je potrebno autofree
       
       Dim As Integer vol, pan

       ' balance:
       pan = (X / SCREEN_WIDTH) * 200 - 100  ' u intervalu od -100 (levi zvucnik) do +100 (desni zvucnik)

       ' volume: (ovo me mrzelo da malo bolje uradim, ali uglavnom sto je dogadjaj udaljeniji od igraca slabije se cuje)
       vol = SFXVolumeLevel - Max(Min((Abs(Y - PlayerY) / SCREEN_HEIGHT, 0.8), 0.5) * SFXVolumeLevel

       BASS_ChannelSEtAttributes stream, -1, vol, pan

       BASS_ChannelPlay stream, 0

    End Sub

End Namespace

ovo sam sve pisao iz glave (gledajuci u BASS manual), pa treba ovo i istestirati, Aleksandrew tebi prepustam ovaj deo :)
e da, i "for testing purposes" ovakva f-ja moze da se koristi da se fajl (wav/mp3/ogg...) ucita u memoriju (byte niz):
Code:

Type MemoryFile
   Data As Byte Pointer
   Size As UInteger
   Declare DEstructor
End Type

Destructor MemoryFile
  If This.size > 0 Then Delete[] This.Data
End DEstructor

Function LoadFileToMemory(Filename as String) As MemoryFile Pointer
   Dim fn As Integer = FreeFile
   Dim size as UInteger
   dim mf As MemoryFile POinter = New MemoryFile
   Open Filename For Binary As fn
      mf->Size = LOF(fn)
      mf->Data = New Byte[mf->size]
      GEt #fn, , *(mf->Data), mf->Size
   Close fn
   Return mf
ENd FUnction

' ovako se fja koristi:
Dim Shared mf1 As MemoryFile Pointer
Dim Shared mf2 As MemoryFile Pointer

mf1 = LoadFileToMemory("C:\bla.wav")
mf2 = LoadFileToMemory("C:\blabla.wav")

' funkcija za "prevodjenje" SFXType vrednosti u memorijsku lokaciju i velicinu
Sub GetSoundData(sfx As Integer, byRef memloc As Byte Pointer, byref length As UInteger)
      Select Case sfx
          Case 0
                 memloc = mf1->data
                 length = mf1->size
          Case 1
                 memloc = mf2->data
                 length = mf2->size
      End Select
End Sub

' "pustanje" zvuka

#include "music.bas"

Music.Initialize

Music.PlaySFX fxExplosion
Sleep 2000 ' nisam bas siguran dal ce ovo da zaustavi zvuk (nadam se da nece)
Music.PlaySFX fxBullet
sleep 3000

' ovo je vazno:
Music.Shutdown
Delete mf1
Delete mf2

moguce je da sav ovaj kod sto sam dao ne radi "iz prve", tj mozda bude i compie-time gresaka, ali nisam u mogucnosti sada da isprobam ovo posto nisam kuci i nemam fbc ovde...

uostalom trebalo bi da se iz koda vidi ideja, pa nek Aleksandar to iskoristi u izradi Music modula
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12136



Profil

icon Re: [FreeBASIC] EliteTanks projekat15.03.2008. u 08:36 - pre 3333 dana i 12h
Citat:
Aleksandar Ružičić: jer ce se svi zvuci/muzika nalaziti zapakovani u PCKD fajlove, danas cu raditi na Packeru i PCKD formatu

Koji je razlog za to? Sta fali izvornom formatu ako vec nema kompresije? :)
 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.yu.

Sajt: www.vasictech.net


Profil

icon Re: [FreeBASIC] EliteTanks projekat15.03.2008. u 13:13 - pre 3333 dana i 7h
@eurora - to je definitivno bolje reshenje ;)

@ruzicic - ovo ce biti ovde ovo onde i na kraju neke stvari fale da bi se kompajliralo kako treba :D

Code:
Dim Shared SFXVolumeLevel As Integer = 75
#Include "bass.bi"
Namespace Music
    Sub Initialize
        BASS_Init -1, 44100, 0, 0, 0
    End Sub
    Sub Shutdown
        BASS_Free
    End Sub
    Sub PlaySFX(sfx As SFXType,X As Single = CENTER_X,Y As Single = CENTER_Y)
       Dim memloc As Byte Pointer
       Dim length As Integer

       GetSoundData sfx, memloc, length
       Dim stream As Integer
       stream = BASS_StreamCreateFile(1, memloc, 0, length, BASS_STREAM_AUTOFREE)
       Dim As Integer vol, pan
       pan = (X / SCREEN_WIDTH) * 200 - 100
       vol = SFXVolumeLevel - Max(Min((Abs(Y - PlayerY) / SCREEN_HEIGHT, 0.8), 0.5) * SFXVolumeLevel)
       BASS_ChannelSetAttributes stream, -1, vol, pan
       BASS_ChannelPlay stream, 0
    End Sub
    Sub PlayBGND(vol As Integer,Repeat As Integer,Rand As Integer)
        If Rand = 1 Then Randomize song 'gde je song enum gde su definisani background pesme(verovatno u glavnom modulu)
                If Rand = 0 Then song = 0
        Dim bstream As Integer
        If Repeat = 0 Then bstream = BASS_StreamCreateFile(1,song,0,0,BASS_STREAM_AUTOFREE)
        If Repeat = 1 Then bstream = BASS_StreamCreateFile(1,song,0,0,BASS_SAMPLE_LOOP)
        BASS_ChannelSetAttributes bstream, -1, vol, -101
        BASS_ChannelPlay stream, 0
    End Sub
End Namespace


Da li si pod Autoplay mislio da se jedna ista pesma vrti,ili da na listi nastavlja dalje...I da li ce za nasumicno biranje pesama, kôd biti u music modulu ili u nekom drugom??

[Ovu poruku je menjao Aleksandar Vasic dana 15.03.2008. u 14:43 GMT+1]

[Ovu poruku je menjao Aleksandar Vasic dana 15.03.2008. u 14:48 GMT+1]
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.114.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat15.03.2008. u 13:58 - pre 3333 dana i 6h
Citat:
Shadowed: Koji je razlog za to? Sta fali izvornom formatu ako vec nema kompresije? :)

wav formatu mnogo fali ako nije kompresovan a downloaduje se sa inerneta npr. Normalno ako nema kompresije onda je svejedno :)
Cisto ideja u vezi performansi ... ako ce muzicki fajlovi da budu veliki (kad su dekompresovani i ucitani u RAM) mislim da nije dobra ideja da se drze u buffrerima (byte ptr) celo vreme. Sve ove Stefanove graficke aplikacije angazuju mnogo CPU vremena (kod mene 50% ... imam dual core procesor) pa jos ako se doda mnogo ram-a mislim da ce to znacajno da uspori igru na prosecnom komijuteru.
Pokusao sam da nadjem uzrok tolike iskoriscenosti CPU-a ali nisam nista mogao da otkrijem. Vidim da FreeBasic ima 2 fn za OGL ScreenRes i Screen (i cini mi se da se linkuju sa drugim bibliotekama ... ) U svakom testu sam dobio isto (50%) cak i u najjednostavnijem kodu sa jednom linijom koja kreira window i prostom Msg Loop za izlaz.

 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.114.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat15.03.2008. u 14:49 - pre 3333 dana i 5h
Inace OpenGL je biblioteka sa visokim performansama koja moze da prikazuje 2D/3D scene sa minimalnim iskoriscavanjem memorije i CPU (daleko manje nego ovde a sa mnogo vecim 3D modelima)
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12136



Profil

icon Re: [FreeBASIC] EliteTanks projekat15.03.2008. u 14:56 - pre 3333 dana i 5h
Krcko rece da nece biti kompresije. Sto wav? Sto ne mp3?
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.115.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat15.03.2008. u 16:56 - pre 3333 dana i 3h
Verovatno je hteo da koristi sve formate (ustvari 3 koja su nabrojena) a ne samo jedan
@Aleksandar Ružičić
Zar ovde ne ide AddressOf (@) umesto direferenciranja (*)
Code:

GEt #fn, , *(mf->Data), mf->Size ' @(mf->Data)

Nisam probao da kompajlujem ... samo pitam
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


Profil

icon Re: [FreeBASIC] EliteTanks projekat15.03.2008. u 18:01 - pre 3333 dana i 2h
@Shadowed: nece biti kompresije zbog brzine ucitavanja, mada moze i to lako da se doda, a razlog zasto pakovati sve u jedan fajl je cisto zbog toga da napravimo nesto "fensi", ovaj projekat je ionako cisto vezbanje programiranja u fb-u, a i jos jedan razlog je sto cemo tako smanjiti broj fajlova i na neku nacin obezbediti "kradju" grafike/zvuka, naravno ovo nama uopste nije bitno jer cemo ionako koristiti free sprajtove i free muziku/zvuke, ali od kada sam u Neighbours Of Hell video da za grafiku imaju gfxdata fajl a za zvuk snddata (znaci ukupno dva fajla) znaci dva fajla sa resursima ukupno, oduvek sam hteo da kad budem pravio neku igru uradim to isto :)

@Eurora: ne, mf->Data je pointer, a Get/Put ne smes da p[rosledis pointer, jer nece menjati vrednost na koju pokazuje pointer, nego ce promeniti sam pointer (tretira ga kao Integer tip)....
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.115.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat16.03.2008. u 00:22 - pre 3332 dana i 20h
@Aleksandar Vasic
Napravio sam test kod za Bass i FreeBasic. Nisam vest u FreeBasicu zato kod vise lici na C++ (pogotovo win api funkcije)
Ubacio sam osnovni modul za bass (i ispobao sam sve).
Moze da ucita fajl sa diska i ima play, pause i stop dugmad (imas i komentare u kodu)
Imas i skroler za ton.
Nisam dodavao ove Aleksandrove funkcije za pustanje iz memorije (prepisao sam samo dve definicije za Enum i jedan Type ali nisu koriscene)
Ostalo dopuni
Pozdrav
navikao sam da pisem na Engleskom menije , dugmad ... bar su komentari na Srpskom
Prikačeni fajlovi
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


Profil

icon Re: [FreeBASIC] EliteTanks projekat16.03.2008. u 05:14 - pre 3332 dana i 15h
malo sam preleteo pogledom preko ovog koda i imam jednu zamerku - Pause/Stop ne rade a razlog je ovo (u SoundModule.bi):
Code:

   Dim hStream As Long = 0
   Dim lpFile As ZString*260

da bi u freebasic-u promenljiva bila vidiljiva u svim procedurama mora biti deklarisana kao Shared, znaci:
Code:

   Dim Shared hStream As Long = 0
   Dim Shared lpFile As ZString*260

 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.114.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat16.03.2008. u 10:50 - pre 3332 dana i 9h
Uploadovao sam opet.
Juce sam kad sam zavrsio uploadovao (radilo je) pa sam razmisljao sta ako neko otvori novi fajl dok jedan svira i prepravio kod i uploadovao ponovo al ta druga verzija je imala gresku...
Ovo je jedina razlika (sad radi) ... ovo sto je zaklonjeno
Code:

Case IDC_PLAY
'Ovde
   If Not lpCurrentFile = ""  Then 
    'If Not Music.PlayFile() Then 
    'Music.LoadFile(Music.lpFile)
    Music.PlayFile() 
    'EndIf
    Else

I ovaj zip fajl od juce je zamenjen (na oba mesta je ista vezija) ....

[@Aleksandar Ružičić Hvala sto si mi javio da ne radi]

[Ovu poruku je menjao Eurora3D Team dana 16.03.2008. u 16:10 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.yu.

Sajt: www.vasictech.net


Profil

icon Re: [FreeBASIC] EliteTanks projekat16.03.2008. u 17:44 - pre 3332 dana i 2h
tnx bi ce mi od velike pomoci ;)
 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.kalik.info.

Sajt: www.vasictech.net


Profil

icon Re: [FreeBASIC] EliteTanks projekat17.03.2008. u 00:21 - pre 3331 dana i 20h
eo uz pomoc krcka napravih ja to nekako ;)

pa...testirajte :P

p.s. nemojte komentarisati zvukove :PP
Prikačeni fajlovi
 
Odgovor na temu

markozelenovic

Član broj: 152567
Poruke: 231
*.teol.net.



Profil

icon Re: [FreeBASIC] EliteTanks projekat22.03.2008. u 22:06 - pre 3325 dana i 22h
Dobro ide ,Doobro.


 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.113.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat27.03.2008. u 20:36 - pre 3321 dana
Malo je van teme :) ali jel nekom poznat neki nacin (softver) za prevodjenje VB6 koda u FreeBasic ?
Dali tako nesto postoji ?
 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.yu.

Sajt: www.vasictech.net


Profil

icon Re: [FreeBASIC] EliteTanks projekat27.03.2008. u 20:41 - pre 3320 dana i 23h
lol nema brate :D
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.114.*



Profil

icon Re: [FreeBASIC] EliteTanks projekat27.03.2008. u 21:53 - pre 3320 dana i 22h
Kako napreduje ovaj projekat ? Jel radite ?
 
Odgovor na temu

[es] :: Ostali programski jezici :: [FreeBASIC] EliteTanks projekat
(TOP topic, by Gojko Vujovic)
Strane: < .. 1 2 3 4 5 6 7 8 ... Dalje > >>

[ Pregleda: 50167 | Odgovora: 267 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.