Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Allunaggiio - Allunaggio 2D
Forum - Allunaggiio - Allunaggio 2D - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 10:03
Lunedì, 26/03/2018
Beh come ti dissi dal principio,
In passato ho programmato in vb.
Sia vb6 che vb.net

Ma quando sono passato al c#.
Ho capito che il vb era solo un giocattolino.

Il c# e c-like.
Programmando in c# saprai automaticamente programmare in tutti i linguaggi c-like. Compreso il java.

Il c# ed il java sono uguali quasi al 95%.

Il c# oggi e molto usato in ambito di game programming.

Anche unreal engine sta pensando di inserire il c# come linguaggio di scripting proprio come unity.

Per android invece riguardo al java puoi usare android studio.

Mentre per ios sei obbligato ad anadre su xcode.

Invece con xamarin puoi compilare sia per ios che per android.

Alla fine, dipende tutto da ciò che vuoi fare.
Se orientarti sul mobile o sul desktop.
Se vuoi fare app o giochi.

In entrambi i casi, con xamarin puoi fare tutto in un colpo solo.



https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1344
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 12:53
Domenica, 08/04/2018
Ho provato il gioco Allunaggio, su pc "performanti" i5 e i7 a 32 e 64bit il risultato è alquanto deludente, il problema deriva dall'audio che interferisce con l'esecuzione fluida del timer.
Sembra incredibile invece con il mio portatile "datato" e win7 32bit, il problema non sussiste e il gioco è scorrevole.
Ho deciso di usare DirectSound che riproduce più suoni contemporaneamente senza interferire con lo svolgimento del programma.
I problemi che ho sono dovuti al framework da usare.
Ho installato: Microsoft DirectX SDK (June 2010)
Aggiunto il riferimento: C:\WINDOWS\Microsoft.NET\DirectX for Managed Code\1.0.2902.0\Microsoft.DirectX.DirectSound.dll
Ho adattato un programma di test (aggiungi tre buttons sul form):
Codice sorgente - presumibilmente VB.NET

  1. Imports Microsoft.DirectX.DirectSound
  2.  
  3. Public Class Form1
  4.     Const BitRate As Integer = 44100
  5.     Const Durata As Integer = 1 ' secondo
  6.  
  7.     Private dsDesc As BufferDescription
  8.     Private wvFormat As WaveFormat
  9.     Private DS As Device
  10.     Dim buff1 As SecondaryBuffer
  11.     Dim buff2 As SecondaryBuffer
  12.  
  13.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  14.         DS = New Microsoft.DirectX.DirectSound.Device
  15.         DS.SetCooperativeLevel(Me, CooperativeLevel.Normal)
  16.         wvFormat.FormatTag = WaveFormatTag.Pcm
  17.         wvFormat.Channels = 1
  18.         wvFormat.SamplesPerSecond = BitRate
  19.         wvFormat.BitsPerSample = 16
  20.         wvFormat.AverageBytesPerSecond = 2 * BitRate
  21.         wvFormat.BlockAlign = 2
  22.         dsDesc = New BufferDescription(wvFormat)
  23.         dsDesc.BufferBytes = 2 * Durata * BitRate
  24.         dsDesc.Flags = 0
  25.  
  26.         buff1 = PlayWave(440)
  27.         buff2 = PlayWave(1000)
  28.  
  29.     End Sub
  30.  
  31.     Function PlayWave(ByVal FREQ As Double) As SecondaryBuffer
  32.         ' create a buffer
  33.         Dim dsBuffer As SecondaryBuffer
  34.         dsBuffer = New SecondaryBuffer(dsDesc, DS)
  35.         Dim sbuf(Durata * BitRate) As Short
  36.  
  37.         ' create tone                
  38.         For i As Integer = 0 To Durata * BitRate
  39.             sbuf(i) = CShort(10000 * Math.Sin(2 * Math.PI * FREQ * i / BitRate))
  40.         Next
  41.  
  42.         ' copy to buffer
  43.         dsBuffer.Write(0, sbuf, LockFlag.EntireBuffer)
  44.         Return dsBuffer
  45.     End Function
  46.  
  47.     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  48.         buff1.Play(0, Microsoft.DirectX.DirectSound.BufferPlayFlags.Default)
  49.     End Sub
  50.  
  51.     Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
  52.         buff2.Play(0, Microsoft.DirectX.DirectSound.BufferPlayFlags.Default)
  53.     End Sub
  54.  
  55.     Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
  56.         buff1.Play(0, Microsoft.DirectX.DirectSound.BufferPlayFlags.Default)
  57.         buff2.Play(0, Microsoft.DirectX.DirectSound.BufferPlayFlags.Default)
  58.     End Sub
  59. End Class



Per testare il codice bisogna compilare, il debug non gestisce la creazione del device (si può ovviare?)

Se compilo con il framework 3.5, funziona nel pc dove ho eseguito la compilazione, ma non funziona in altri PC
Se compilo con il framevork 4 o successivi, non funziona mai.
Le Microsoft DirectX SDK (June 2010) sono troppo datate? dove si trovano quelle aggiornate per Visual Studio 2010 o 2012?

EDIT:

Per far funzionare il codice "legacy" dirctsound con il framework 4 bisogna aggiungere su app.config:
<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0"/>
</startup>
L'eseguibile continua a non funzionare su PC evoluti.

Poi ho provato con un PC win XP sp3, Visual Studio 2008, Framework 3.5, funziona tutto anche in debug, è sufficiente su: debugging exceptions Ctrl+Alt+E disabilitare tutte le Managed Debugging Assistants.

Qualcuno a qualche idea di come migrare ai framework di oggi?

Ultima modifica effettuata da Carlo il 08/04/2018 alle 21:46


in programmazione tutto è permesso
PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 9:38
Lunedì, 09/04/2018
Ti feci un bel elenco dei framework da usare.

Esistono tanti framework proprio per evitare questo problema.

SharpDX o SlimDX è wrapper per le dx native aggiornate.

SharpDX Wrapper Managed delle DirectX 11 / 12

SlimDX Una variante di XNA / Monogame.


Se vuoi qualcosa più sul nativo, SharpDX va bene.
Altrimenti SlimDX o anche Monogame.

http://sharpdx.org/

Ultima modifica effettuata da Thejuster il 09/04/2018 alle 9:44


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1344
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 10:10
Martedì, 10/04/2018
Testo quotato

Postato originariamente da Thejuster:

Ti feci un bel elenco dei framework da usare.

Esistono tanti framework proprio per evitare questo problema.

SharpDX o SlimDX è wrapper per le dx native aggiornate.

SharpDX Wrapper Managed delle DirectX 11 / 12

SlimDX Una variante di XNA / Monogame.


Se vuoi qualcosa più sul nativo, SharpDX va bene.
Altrimenti SlimDX o anche Monogame.

http://sharpdx.org/



Ok li provo di sicuro, sono un testone, la programmazione non mi spaventa, ma muovermi negli ambienti, non è il mio forte!


Ultima modifica effettuata da Carlo il 11/04/2018 alle 22:13


in programmazione tutto è permesso
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1344
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 22:16
Mercoledì, 11/04/2018
Ho usato directsound per la nuova versione di Allunaggio2d.
Framework 4.0, VisualStudio 2012


Carlo ha allegato un file: Allunaggio_VBNET.zip (1353185 bytes)
Clicca qui per scaricare il file

Ultima modifica effettuata da Carlo il 11/04/2018 alle 22:19


in programmazione tutto è permesso
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo