Pagina 6 di 7

Re: Sviluppo multipiattaforma

MessaggioInviato: giovedì 6 giugno 2013, 14:21
da winz
millennium2k ha scritto:
Belli...


Grazie da parte della donna!
Si anche io ero rimasto un po indietro(riguardo image ready)...comunque ti stavo cercando qualche forum di fumettisti per il grafico che ti serviva ma non riesco a trovare un forum serio, se trovo qualcosa ti faccio sapere, è un peccato che rimani "fermo" perchè ti manca un pezzo di team :/

Re: Sviluppo multipiattaforma

MessaggioInviato: giovedì 6 giugno 2013, 16:00
da winz
Perdona le domande una di seguito all'altra Andre, ma oggi ci sto dando dentro.
Prima cosa sto impazzendo da due ore per provare a fare un'intro iniziale, sono riuscito a fare un oggetto che ruota (con delle sprites come mi hai insegnato nell'esempio della tenda) ma vorrei fare un fadein /fadeout e ho visto che esiste la trasparency ma non capisco se è una proprietà che devo reinserire in una variabile...avevo trovato sto esempio ma non funziona bene oppure non lo capisco:

Example:

int trans = object[0].Transparency;
while (trans < 100) {
trans++;
object[0].Transparency = trans;
Wait(1);
}

Usa l'oggetto come se fosse un array, ma ovviamente non essendo un array non funziona. BOH

Poi ho provato un'altra via, quella dei moduli.
Ho trovato sto sito dove c'è un modulo: http://americangirlscouts.org/agsresources/modules.html Non so se posso linkare siti esterni nel caso lo modifico non saprei come altro farti vedere dove ho visto XD
MA il problema è che non trovo guide su come installare i moduli o dove metterli e come richiamarli...nel forum ufficiale parlano di tanti moduli ma danno per scontato che uno sappia come utilizzarli...sob
Idem per i plugin...

Grazie ciao e buona giornata!

Re: Sviluppo multipiattaforma

MessaggioInviato: giovedì 6 giugno 2013, 19:17
da AprilSkies
Ciao winz. Ti sto scravendo al volo dal cellulare. Sono fuori casa per lavoro e rientro domani. Ti risponderò con calma domani pomeriggio . Devi avere un po di pazienza ;-)

Re: Sviluppo multipiattaforma

MessaggioInviato: giovedì 6 giugno 2013, 20:16
da winz
Heila!
Sisi non ho nessuna fretta ci mancherebbe! :)
Anzi grazie che mi hai risp comunque!!
A presto buona serata ;)

Re: Sviluppo multipiattaforma

MessaggioInviato: venerdì 7 giugno 2013, 11:49
da AprilSkies
Eccomi!
Effettivamente sono rimasto un po' indietro con le risposte che ti devo, ma preferivo aspettare che ti chiarissi le idee in merito al porting.

Cmq riprendo dall'ultima domanda e poi rispondo anche alle altre rimaste indietro:

Questione Fade in/Fade out
Premetto che io lascerei perdere moduli e plug-in poichè è quasi tutto fattibile autonomamente tramite script (basta avere un po' di fantasia e pazienza). Se poi proprio non si può fare a meno si ricorre ai moduli e plug-in.
Lo script che hai postato tu è corretto per fa scomparire in trasparenza un oggetto (con velocità di un ciclo ... Wait(1); se vuoi farlo scomparire più lentamente metti Wait(2) .. wait(3), ecc.)
Per farlo funzionare correttamente è importante dove metti lo script (in quale function).
Secondo me va messo nella function richiata dopo il loading della room

facciamo un esempio:
Appena caricata la room, si vede, su sfondo nero, il solo "oggetto" del logo della tua software house, supponiamo che tu abbia creato l'oggetto chiamato oLOGO

//Fai caricare la stanza la stanza
function room_Load()
{
oLOGO.Visible = true;
oLOGO.Transparency = 0;
mouse.Visible = false; //magari elimini il puntatore del mouse dalla schermata
}

//Dopo aver caricato la stanza, fai lo script

function room_AfterFadeIn()
{
Wait(160); //il logo è visibile e lo fai permanere sullo schermo per circa 4 secondi (160 cicli)
int transizione = oLOGO.Transparency;
while (transizione < 100)
{
transizione = transizione + 1; //puoi mettere + 2 per farlo sparire più velocemente
oLOGO.Transparency = transizione;
Wait(1); // puoi mettere wait(2) per farlo sparire più lentamente
}
//ora l'oggetto è scomparso (o meglio ha trasparenza uguale a 100) ... è rimasto lo sfondo nero
Wait(80); //aspetti 2 sceondi circa con lo sfondo nero
SetScreenTransition(eTransitionFade); //imposti la transizione di tipo "fade" per la stanza successiva
cEgo.ChangeRoom(2, 770, 570); //vai alla stanza successiva
//ovviamente nella stanza presente, il personaggio non devi farlo vedere, devi averlo impostato come "non visibile"
}

Questo l'ho fatto molte volte nel mio gioco quindi funziona di sicuro ;)

Ma ci sono anche altri modi per fare il fade.
A volte si può anche creare una GUI tutta nera grande tutto lo schermo e farla apparire (sempre con il While()do) sopra tutti gli oggetti e poi fare il cambio stanza. O altri metodi ancora.
Se mi spieghi esattamente cosa vuoi fare posso essere più preciso

Re: Sviluppo multipiattaforma

MessaggioInviato: venerdì 7 giugno 2013, 11:59
da winz
AAAA ok così è chiaro il ciclo...non capivo perchè il tipo nell'esempio avesse messo object[0]... mi sembrava un array O_O

Per la questione porting sto ancora aspettando risp dal tipo...dovrei mettermi a smanettare un pò ma ammetto che sono in difficoltà...ma in qualche modo farò. Oggi la giornata l'ho dedicata a litigare cn una commerciale del mio operatore telefonico, vivere in Italia inizia a diventare stancante.

Grazie dello script Andre, lo provo !

Re: Sviluppo multipiattaforma

MessaggioInviato: venerdì 7 giugno 2013, 13:52
da winz
Allora...ho provato il codice e funziona alla grande(ho eliminato la var trans e ho usato transizione direttamente), ora però non riesco a fare in modo che l'animazione dell'oggetto parta prima del fade..cioe vorrei che si animasse e poi si iniziasse a vedere (già animato) con il fade. Ho provato a fare cosi ma non funziona (non ridere per winz studios ahahaha) :

function room_AfterFadeIn()
{

oPace.SetView(3, 0, 0);
oPace.Animate(0, 3, eRepeat, eNoBlock );
StartCutscene(eSkipAnyKeyOrMouseClick);

Wait(160); //il logo è visibile e lo fai permanere sullo schermo per circa 4 secondi (160 cicli)
int transizione = oPace.Transparency;
while (transizione <= 99) {
transizione = transizione + 1; //puoi mettere + 2 per farlo sparire più velocemente
oPace.Transparency = transizione;
Wait(1); // puoi mettere wait(2) per farlo sparire più lentamente
}

//ora l'oggetto è scomparso (o meglio ha trasparenza uguale a 100) ... è rimasto lo sfondo nero
Wait(80); //aspetti 2 sceondi circa con lo sfondo nero
SetScreenTransition(eTransitionFade); //imposti la transizione di tipo "fade" per la stanza successiva

ShowTextCentered("Winz studios presenta");
Wait(140);
ShowTextCentered("Un nuovo gioco punta e clicca indie");
Wait(140);

EndCutscene();
player.ChangeRoom(1);
cEgo.LockView(1);
mouse.Visible = true;
}

Re: Sviluppo multipiattaforma

MessaggioInviato: venerdì 7 giugno 2013, 17:50
da AprilSkies
Allora innanzitutto l'oggetto lo vuoi far "comparire" o "scomparire"?
Cioè all'inizio si vede, animato e poi scompare oppure vuoi il contrario, che non si veda e poi appare man mano animato?

EDIT: forse tu intendi il fade in ingresso alla stanza; in tal caso prova a spostare queste riche di codice
oPace.SetView(3, 0, 0);
oPace.Animate(0, 3, eRepeat, eNoBlock );
dentro "RoomLoad" anzichè dentro "RoomAfterFadeIn"

in alternativa, se non va fai semplicemente così:

//dentro RoomLoad fai così:

function room_Load()
{
oPace.Visible = true;
oPace.Transparency = 100;
}

//Poi dentro after fade in fai così:

function room_AfterFadeIn()
{
oPace.SetView(3, 0, 0);
oPace.Animate(0, 3, eRepeat, eNoBlock );

int transizione = oPace.Transparency;
while (transizione > 0)
{
transizione = transizione - 1;
oPace.Transparency = transizione;
Wait(1);
}

Wait(160);

int transizione2 = oPace.Transparency;
while (transizione2 < 100) {
transizione2 = transizione2 + 1;
oPace.Transparency = transizione2;
Wait(1);
}
//.. altro codice qui
}

Re: Sviluppo multipiattaforma

MessaggioInviato: lunedì 17 giugno 2013, 15:04
da winz
Heilà!!
Perdonami l'assenza prolungata Andrea ma sono stato in mutua una settimana causa febbre.
Sono andato però avanti nella parte logica del gioco, e in questi giorni ho provato anche fuga da deponia... certo che viene da deprimersi giocando a quel gioco, quelli della daedelic hanno delle idee davvero fighe!!
Appena mi riprendo mi butto sul codice per ora continuo la parte di logica e della storia!
A presto

Re: Sviluppo multipiattaforma

MessaggioInviato: lunedì 17 giugno 2013, 16:42
da AprilSkies
Ciao Winz!
Spero tutto bene ora.
Appena riprendi, dimmi se l'ultimo script che ti ho postato funziona (se ti fa il fade-in fade-out così vado avanti nel risponderti alle altre domande)

Re: Sviluppo multipiattaforma

MessaggioInviato: mercoledì 19 giugno 2013, 14:20
da winz
Heila!!
Allora ho provato e niente, nonostante io faccia partire l'animazione prima del fade-in nada.
Prima inizia a fare il fade, e poi quando è al 100% di opacità, parte l'animazione.
Nonostante venga fatto prima sembra che il "motore" lo interpreti a modo suo...boooo

oPace.Animate(0, 3, eRepeat, eNoBlock );

int transizione = oPace.Transparency;
while (transizione > 0)
{
transizione = transizione - 1;
oPace.Transparency = transizione;
Wait(1);
}

Wait(160);

int transizione2 = oPace.Transparency;
while (transizione2 < 100) {
transizione2 = transizione2 + 1;
oPace.Transparency = transizione2;
Wait(1);
}


PS: riguardo la portabilità, la tipa che si è occupata della portabilità di Gemini Rue su iOS non mi ha degnato di attenzione e non mi ha risposto :) forse vuole tenere la conoscenza per sè o forse sono troppo newbie per avere risposta :)
Sarebbe utile che qualcuno di loro invece di fare il saccente, faccia sapere a noi comuni mortali delle linee guida generiche sul porting. Invece per ora c'è solo un post su un forum in inglese. E ciao agli altri comuni programmatori...

Re: Sviluppo multipiattaforma

MessaggioInviato: mercoledì 19 giugno 2013, 14:41
da AprilSkies
No attenzione:
Togli il fade dalla transizione dela stanza (general setting --> Default transition ... = Instant)Poi dentro "RoomLoad" scrivi:
{
oPace.Visible = true;
oPace.Transparency = 100;
}
poi copia esattamente questo codice dentro room_AfterFadeIn
oPace.SetView(3, 0, 0);
oPace.Animate(0, 3, eRepeat, eNoBlock );

int transizione = oPace.Transparency;
while (transizione > 0)
{
transizione = transizione - 1;
oPace.Transparency = transizione;
Wait(1);
}

Wait(160);

int transizione2 = oPace.Transparency;
while (transizione2 < 100) {
transizione2 = transizione2 + 1;
oPace.Transparency = transizione2;
Wait(1);
}
//.. altro codice qui
}

Re: Sviluppo multipiattaforma

MessaggioInviato: mercoledì 19 giugno 2013, 14:56
da winz
Era gia settato come FadeOutAndIn... ma non funziona comunque :(
Ho provato anche tutte le altre opzioni ma niente..
Sembra proprio che l'animazione prima la legga dopo...eppure dovrebbe essere sequenziale la compilazione no?

Re: Sviluppo multipiattaforma

MessaggioInviato: mercoledì 19 giugno 2013, 15:56
da winz
Per il porting mi farò conoscere come il rompi pelotas del web... ho scritto un pm direttamente a Janet, quella che si è occupata del porting per Gemini Rue di Wadjet Eye Games XD
Speriamo mi risponda!! Appena ne so qualcosa metterò a disposizione le mie conoscenze (spero di arrivare ad averle).

Re: Sviluppo multipiattaforma

MessaggioInviato: mercoledì 19 giugno 2013, 16:50
da AprilSkies
winz ha scritto:Era gia settato come FadeOutAndIn... ma non funziona comunque :(
Ho provato anche tutte le altre opzioni ma niente..
Sembra proprio che l'animazione prima la legga dopo...eppure dovrebbe essere sequenziale la compilazione no?


Infatti non devi settarlo come fadeinfadeout, ma come INSTANT
Poi assicurati di eseguire gli script esattamente come li postati io (sia la parte che sta dentro RoomLoad sia quella dentro room_AfterFadeIn ... non tralasciare nulla, spratutto il fatto di impostare all'inizio oPace.Transparency = 100), perchè io ho appena provato e funziona perfettamente.

Riprova e fai tutto esattamente in quel modo

Re: Sviluppo multipiattaforma

MessaggioInviato: mercoledì 19 giugno 2013, 17:01
da winz
Mi compare istantaneamente :( sto facendo esattamente come dici tu... ti incollo tutto per sicurezza, entrambe le funzioni:

L'immagine è un png con 9 frame, non so magari ho sbagliato qualcosa nella view

function room_Load()
{
oPace.Visible = true;
oPace.Transparency = 100;
}

function room_AfterFadeIn()
{

oPace.SetView(3, 0, 0);
oPace.Animate(0, 3, eRepeat, eNoBlock );

int transizione = oPace.Transparency;
while (transizione > 0)
{
transizione = transizione - 1;
oPace.Transparency = transizione;
Wait(1);
}

Wait(160);

int transizione2 = oPace.Transparency;
while (transizione2 < 100) {
transizione2 = transizione2 + 1;
oPace.Transparency = transizione2;
Wait(1);
}

}

Re: Sviluppo multipiattaforma

MessaggioInviato: mercoledì 19 giugno 2013, 17:13
da AprilSkies
Una domanda: ti compare istantaneamente (quindi il fade-in non funziona), ma poi ti scompare (ti fa il fade-out)?

Re: Sviluppo multipiattaforma

MessaggioInviato: mercoledì 19 giugno 2013, 17:24
da winz
Yes! Il fade-out funziona!

Re: Sviluppo multipiattaforma

MessaggioInviato: mercoledì 19 giugno 2013, 17:38
da AprilSkies
Potrebbe essere legato al fatto che i tuoi sprites sono in PNG (quindi con canale alpha); nel mio gioco sono gif. Cmq taglia la testa al toro e risolvi così (almeno prova e fammi sapere se va, ma dovrebbe andare di sicuro):

crea una GUI (nell'apposito menù) chiamata gBLACK: falla grande quanto la tua finestra di gioco (non ricordo se era 1024x768) e falla tutta nera (colore background e colore linea nera) .. e falla apparire a coordinate 0,0 ... e poi fai così:

function room_Load()
{
oPace.Visible = true;
gBlack.Visible = true;
}

function room_AfterFadeIn()
{
oPace.SetView(3, 0, 0);
oPace.Animate(0, 3, eRepeat, eNoBlock );
Wait(5);

int transizione = 0;
while (transizione < 100) {
transizione = transizione + 1;
gBLACK.Transparency = transizione;
Wait(1);
}

Wait(160);

int transizione2 = oPace.Transparency;
while (transizione2 < 100) {
transizione2 = transizione2 + 1;
oPace.Transparency = transizione2;
Wait(1);
}

}

In pratica lo sprite animato è coperto da una gui tutta nera che scompare gradualmente.

Prova e fammi sapere

Re: Sviluppo multipiattaforma

MessaggioInviato: mercoledì 19 giugno 2013, 17:49
da winz
Niente non funziona lo stesso, stasera se riesco o domani provo a importarle come gif cosi almeno abbiamo un'altra prova!!
Grazie come sempre del tuo tempo Andre, a domani e buona serata :)