Jump to content

AD-Blocker detected, please disable your ad-blocker when surfing in makerando.com - There is no invasive Ad.

 

  • 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

Share this post


Link to post
Share on other sites

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 >_>

Share this post


Link to post
Share on other sites

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!

Share this post


Link to post
Share on other sites

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é.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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 )

Share this post


Link to post
Share on other sites

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!!

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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* )

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

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

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×