Vai al contenuto

Rilevato Ad-Blocker. Per favore disabilita il tuo adblocker quando navighi su makerando.com - Non c'è nessun annuncio invasivo.

  • Chatbox

    You don't have permission to chat.
    Load More
Thejuster

MIRE Engine

Recommended Posts

Metto anche io la mia parte xD

 

Uno stand dedicato a Makerando xDD

 

Faccio le copie per Live Or Die, basta che quelli di Casapound per fare pubblicità alla Coca-cola non la lanciano sulle copie di Growen City o Akuma No Gakko xDDDD

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

L'ho scritto anche su makingitalia.

ultimamente non sto postando news perché ho diversi problemi con i nodi.

e se non riesco a risolverli credo sarà un bel problema.

 

Non voglio abbandonare questo sistema, devo cercare il modo di farlo funzionare a dovere.

ci ho lavorato tantissimo sopra >_>

 

pensate che sono partito da qui:

 

pre_1461673166__1.png

 

 

poi cosi:

 

pre_1460295124__cattura.jpg

 

 

 

E ora così:

 

pre_1460733688__1.png

 

Sarebbe un vero guaio cancellare tutto >_>

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Justino ma che vuoi cancellare, un sistema lo si trova (stiamo qui di supporto proprio per questo!), daje duro che ce la fai!

 

Comunque, mi era venuta in mente una domanda che ti porgo subito:

Sarà possibile fare dei "filmati"? Per esempio, se io volessi tipo fare delle sequenze come in un anime e/o come quei videogame simil 3d (tipo Catherine per capirci), sarà fattibile come cosa? O:

Mi piacerebbe tantissimo inserire scene così, già immagino tutto.... OMG *OOOOOO*

 

Ti prego, pllllssss, dimmi che lo sarà... Così MIRE diventerà il programma ufficiale con cui creerò i miei due videogiochi!

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

due problemi molto significativi.

 

Il ché riguardano il salvataggio ed il recupero.

 

il salvataggio viene effettuato.

ma quando recupero il file, i nodi sono posizionati in modo sbagliato compreso le connessioni.

ho controllato e ricontrollato tramite debbuger centinaia di volte, e sembra corretto

ma non trovo il problema.

 

altro problema, il codice generato non viene processato quando carico il file salvato dei nodi.

non ne ho idea del perché.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Il file e serializzato,

Quindi e impossibile leggerlo dal blocco notes.

 

Ma il problema non e a livello di coordinate, ma di posizione.

 

Nel senso che se salvo, carico il file, verifico ed e ok.

Tutti irdinati da 1 a 5 esempio in sequenza.

 

Dopo quando vengono aggiunti al grafico,

Appare tipo 1,2,4,3,5,6,8,7,9

 

Così come le connessioni che si sballano ovviamente

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Il file e serializzato,

Quindi e impossibile leggerlo dal blocco notes.

 

Ma il problema non e a livello di coordinate, ma di posizione.

 

Nel senso che se salvo, carico il file, verifico ed e ok.

Tutti irdinati da 1 a 5 esempio in sequenza.

 

Dopo quando vengono aggiunti al grafico,

Appare tipo 1,2,4,3,5,6,8,7,9

 

Così come le connessioni che si sballano ovviamente

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

yeah! XD

 

felice di annunciarvi che dopo una settimana buona di tentativi.

ecco il metodo corretto.


//Corretto qui

public sealed class AccettaElementiLocaliEventArgs : CancelEventArgs
	{
		public AccettaElementiLocaliEventArgs (IElement elemento, Point posizione) { Elemento = elemento; Posizione = posizione; }
		public AccettaElementiLocaliEventArgs (IElement elemento, Point posizione, bool cancel) : base(cancel) { Elemento = elemento; Posizione = Posizione; }
		public IElement Elemento		{ get; private set; }
		public Point	Posizione	{ get; private set; }
	}

[StructLayout(LayoutKind.Sequential)]
struct EnumeraBinario : uint
{
 Avvio = 0x01f,
 Dialog = 0x12f,
 Scelta = 0x33f,
  Fine = 0x47f,
}

//Wrapper Nativo GDI++
//Performance aumentata

[StructLayout(LayoutKind.Sequential)]
public struct Point 
{
   public int x;
   public int y;
}   

[StructLayout(LayoutKind.Explicit)]
public struct Rect 
{
   [FieldOffset(0)] public int left;
   [FieldOffset(4)] public int top;
   [FieldOffset(8)] public int right;
   [FieldOffset(12)] public int bottom;
}

//....


int conesso_da = NODI[i].ConnectedFromID;
                int connette = NODI[i].ConnectedToID;
                int id = NODI[i].ID;


 Nodo Attiva = new Nodo ("");
                Nodo Attivato_da = new Nodo ("");

for (int j = 0; j < eventi.nodoGrafico.Count; j++)
                {

                    if (eventi.nodoGrafico[j].ID == NODI[i].ID)
                    {
     
                        //trovo il modulo da cui è attivato quello attuale
                        for (int y = 0; y < eventi.nodoGrafico.Count; y++)
                        {
                            if (eventi.nodoGrafico[y].ID == connette)
                            {
                                Attiva = eventi.nodoGrafico[y];
                            }
                        }

                        //trovo il modulo a cui quello attuale và ad attivare
                        for (int y = 0; y < eventi.nodoGrafico.Count; y++)
                        {
                            if (eventi.nodoGrafico[y].ID == conesso_da)
                            {
                                Attivato_da = eventi.nodoGrafico[y];
                            }
                        }
                    }
                }

                //Connetto

                NodoItem a = null;
                NodoItem c = null;


 Nodo nodo = null;

                for (int j = 0; j < eventi.nodoGrafico.Count; j++)
                {
                    if (eventi.nodoGrafico[j].ID == NODI[i].ID)
                    {
                        nodo = eventi.nodoGrafico[j];
                    }
                }

                a = nodo.Items.ToList<NodoItem >()[nodo.Items.ToList<NodoItem >().Count - 1];
                c = Attiva.Items.ToList<NodoItem >()[0];

               
                eventi.Connetti(a, c);

137vw6.jpg

 

ora tocca solo alla parte del codice generato dall'evento.

ma credo sia la più facile.... ( Credo O__O )

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

yeah! XD

 

felice di annunciarvi che dopo una settimana buona di tentativi.

ecco il metodo corretto.

//Corretto qui

public sealed class AccettaElementiLocaliEventArgs : CancelEventArgs
	{
		public AccettaElementiLocaliEventArgs (IElement elemento, Point posizione) { Elemento = elemento; Posizione = posizione; }
		public AccettaElementiLocaliEventArgs (IElement elemento, Point posizione, bool cancel) : base(cancel) { Elemento = elemento; Posizione = Posizione; }
		public IElement Elemento		{ get; private set; }
		public Point	Posizione	{ get; private set; }
	}

[StructLayout(LayoutKind.Sequential)]
struct EnumeraBinario : uint
{
 Avvio = 0x01f,
 Dialog = 0x12f,
 Scelta = 0x33f,
  Fine = 0x47f,
}

//Wrapper Nativo GDI++
//Performance aumentata

[StructLayout(LayoutKind.Sequential)]
public struct Point 
{
   public int x;
   public int y;
}   

[StructLayout(LayoutKind.Explicit)]
public struct Rect 
{
   [FieldOffset(0)] public int left;
   [FieldOffset(4)] public int top;
   [FieldOffset(8)] public int right;
   [FieldOffset(12)] public int bottom;
}

//....


int conesso_da = NODI[i].ConnectedFromID;
                int connette = NODI[i].ConnectedToID;
                int id = NODI[i].ID;


 Nodo Attiva = new Nodo ("");
                Nodo Attivato_da = new Nodo ("");

for (int j = 0; j < eventi.nodoGrafico.Count; j++)
                {

                    if (eventi.nodoGrafico[j].ID == NODI[i].ID)
                    {
     
                        //trovo il modulo da cui è attivato quello attuale
                        for (int y = 0; y < eventi.nodoGrafico.Count; y++)
                        {
                            if (eventi.nodoGrafico[y].ID == connette)
                            {
                                Attiva = eventi.nodoGrafico[y];
                            }
                        }

                        //trovo il modulo a cui quello attuale và ad attivare
                        for (int y = 0; y < eventi.nodoGrafico.Count; y++)
                        {
                            if (eventi.nodoGrafico[y].ID == conesso_da)
                            {
                                Attivato_da = eventi.nodoGrafico[y];
                            }
                        }
                    }
                }

                //Connetto

                NodoItem a = null;
                NodoItem c = null;


 Nodo nodo = null;

                for (int j = 0; j < eventi.nodoGrafico.Count; j++)
                {
                    if (eventi.nodoGrafico[j].ID == NODI[i].ID)
                    {
                        nodo = eventi.nodoGrafico[j];
                    }
                }

                a = nodo.Items.ToList<NodoItem >()[nodo.Items.ToList<NodoItem >().Count - 1];
                c = Attiva.Items.ToList<NodoItem >()[0];

               
                eventi.Connetti(a, c);

 

woah, una copia originale del corano!!

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Grazie miha XD

Scusa mi ero dimenticato di rispondere.

 

Bhe in realtà quello è 3D non 2D.

 

L'effetto è chiamato Toon Shader

 

per farti capire meglio:

 

unity_result.png

 

 

Alcuni sembrano proprio cartoni o addirittura 2D perché è opera dello shader.

Più e bravo il programmatore ad implementare un Toon Shader maggiore sarà l'effetto ottenuto della somiglia

ad un vero e proprio cartone o 2D.

 

 

La screen sopra, è fatta con uno shader Standard ( Toon Shader ) disponibile sulla rete e reperibile

da qualsiasi programmatore.

 

Qui invece parliamo di un Toon Shader fatto coi fiocchi.

Prodotto da persone esperte e non certo amatoriali.

 

Wrath+of+the+white+witch.jpg

 

L'effetto ottenuto è pazzesco. sembra un vero cartone.

Ma quelli sono maestri è diverso.

 

NxGqz.jpg

 

eIaqL.jpg

 

Non ricordo più come si chiamava questo gioco ma era fantastico!

ha una tecnica inimitabile.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

No Justino, non ti chiedevo una lezione al proposito, so cosa è e come funziona xD

 

Ti chiedevo se sarà possibile inserire scene tipo "cutscene" in quello stile, o almeno molto simile... Tutto qui! O: ( Ni No Kuni è tipo asdfghjkl *w* )

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

No Justino, non ti chiedevo una lezione al proposito, so cosa è e come funziona xD

 

Ti chiedevo se sarà possibile inserire scene tipo "cutscene" in quello stile, o almeno molto simile... Tutto qui! O: ( Ni No Kuni è tipo asdfghjkl *w* )

 

Un qualcosa tipo fimato?

 

Generalmente Mire supporta AVI e WMV.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Nuovità dall'editor

 

Implementato una sorta di Tileset - Obstacle Parser.

 

E' una condizione migliorata degli ostacoli sui tileset.

Vi spigo la funzione.

 

Normalmente noi siamo abituati a vedere un qualcosa del genere con rpgmaker

 

 

pre_1462013467__1.png

 

 

 

Quando andiamo a disegnare la mappa, a noi non ci è concesso di sapere dove sono gli ostacoli.

ma dobbiamo ricordarceli noi quali tile sono passabili e quali no.

 

La nuova implementazione permette di fare ciò.

 

Se mentre disegniamo vediamo così:

 

 

pre_1462013611__1.png

 

 

Premendo sul pulsante della X in alto,

possiamo vedere e modificare alcuni passaggi per la mappa attuale senza andare a modificare quelli nel database.

come in questo esempio:

 

pre_1462013699__1.png

 

 

Il risultato è:

 

Possiamo modificare direttamente nella mappa gli ostacoli che normalmente sono configurati nel database.

Modificandoli direttamente dalla mappa, abbiamo in vantaggio di scegliere SOLO per quella mappa dove camminare o non

eliminando qualche ostacolo di troppo.

Le modifiche effettuate sui passaggi, saranno solo relativi a quella mappa e non a tutte le mappe globalmente.

 

Ci è capitato diverse volte di dover duplicare un tileset per cambiare solamente qualche passaggio per fare una determinata cosa.

 

mentre qui, possiamo modificare il passaggio direttamente sulla mappa senza influire le modifiche sulle altre.

E la configurazione attuale salvata nel database rimarrà invariata.

 

Spero vi piaccia la news :D

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

You need to be a member in order to leave a comment

Crea un account

Iscriviti per un nuovo account nella nostra comunità. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora

×