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
C# / VB.NET - Realizzazione di uno script
Forum - C# / VB.NET - Realizzazione di uno script - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 19:54
Mercoledì, 25/05/2016
Codice sorgente - presumibilmente C# / VB.NET

  1. /// <summary>
  2.         /// Mostra un messaggio di gioco
  3.         /// </summary>
  4.         /// <param name="text">testo del messaggio</param>
  5.         ///
  6.  
  7. //Test
  8.         public void Dialog(string text)
  9.         {
  10.                 //Se il dialogo è normale
  11.                 if (MsgType == _msgtype.Normal)
  12.                 {
  13.                     switch (MsgPosition)
  14.                     {
  15.                         case _msgposition.Down:
  16.                             system_window(0, graphics.PreferredBackBufferHeight - 150, graphics.PreferredBackBufferWidth, 150);
  17.                             break;
  18.                         case _msgposition.Middle:
  19.                             system_window(0, graphics.PreferredBackBufferHeight / 3, graphics.PreferredBackBufferWidth, 150);
  20.                             break;
  21.                         default: // _msgposition.Up
  22.                             system_window(0, 0, graphics.PreferredBackBufferWidth, 150);
  23.                             break;
  24.                     }
  25.                 }
  26.  
  27.                 switch (MsgPosition) {
  28.                     case _msgposition.Down:
  29.                         draw_text(10, graphics.PreferredBackBufferHeight - 140, text);
  30.                         break;
  31.                     case _msgposition.Middle:
  32.                         draw_text(10, graphics.PreferredBackBufferHeight / 3 + 10, text);
  33.                         break
  34.                     default: //_msgposition.Up
  35.                         draw_text(10, 10, text);
  36.                         break
  37.                 }
  38.          
  39.          while (!Input.Keyboard.IsKeyDown(Keys.Enter))
  40.                                                        Thread.Sleep(10);
  41. }



Questo codice rimane fermo nel while o nel Thread.Sleep ?

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 22:42
Mercoledì, 25/05/2016
rimane bloccato nel while

cmq per la rete ieri ho trovato questo.

http://www.codeproject.com/Articles/18793/EezeeScript-A-si ...

E quello che mi serve esattamente.

Su ogni linea, esegue un azione.
ovviamente mi serve il lua non quello.

e' solo per mostrarvi cosa realmente mi serve.

Ultima modifica effettuata da Thejuster il 26/05/2016 alle 8:52


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 12:13
Lunedì, 30/05/2016
Ragazzi ho trovato forse una soluzione.
Ma non ho capito come implementarla bene.

creare una coroutine in C# sembra essere una buona soluzione.
cosa ne pensate al riguardo?

Però ho paura che posso avere in egual modo lo stesso congelamento.

Tempo fà diedi un consiglio sul forum ad un utente proprio sull'utilizzo di un enumeratore.
e mi è venuta l'idea di applicare quel metodo.


Codice sorgente - presumibilmente C++

  1. Azioni az = new Azioni();
  2.         enum Azioni
  3.         {
  4.             Dialogo,
  5.             Gioco,
  6.             Menu
  7.         }
  8.  
  9.  
  10.  
  11.   public IEnumerator<object> Azione(int act)
  12.         {
  13.             switch(act)
  14.             {
  15.                 case 1: //Dialogo
  16.                     while (Letto()) { yield return Azioni.Gioco; }
  17.                 break;
  18.             }
  19.            
  20.         }
  21.  
  22.  
  23.  
  24.  bool Letto()
  25.         {
  26.             if (tasto == "enter")
  27.                 return true;
  28.             else
  29.                 return false;
  30.          
  31.         }



Mi è venuto in mente di fare un qualcosa del genere.

Da debug non sembra congelarsi.

Edit:

testando però ho un problema qui.

Codice sorgente - presumibilmente C# / VB.NET

  1. //Converto Oggetto in Enumeratore
  2.  public T Converti<T>(object o)
  3.         {
  4.             T enumVal = (T)Enum.Parse(typeof(T), o.ToString());
  5.             return enumVal;
  6.         }




Requested value 'prove.Form1+<Azione>d__0' was not found.  :noway:

Ultima modifica effettuata da Thejuster il 30/05/2016 alle 14:25


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


Messaggi: 449
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 1:22
Mercoledì, 01/06/2016
Non penso che si possa risolvere con una coroutine, il programma da quanto dici tu nel debugging si blocca sull'input da tastiera.
Ci sono altri thread in esecuzione? Se sì conviene guardare con il debugger dove sono fermi quelli.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 8:50
Mercoledì, 01/06/2016
Probabilmente ci vuole una

Application.DoEvents();

prima della sleep


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo