Benvenuto Visitatore(Log In|Registrati)

> PRIMI PASSI, L'angolo del principiante
LargoLagrande
messaggio23 Feb 2014, 00:33
Messaggio #1



Gruppo icone

Gruppo: SMod
Messaggi: 2.671
Iscritto il: 21 January 11
Da: Bari
Utente Nr.: 18.333
BGE The Secret of Monkey Island
Playing Papers, Please!
SO WinVista




Qui potete postare tutte le domande generiche e più frequenti relative all'utilizzo di AGS. Riservato a chi muove i primi passi.

Qualche utente più esperto vi risponderà. in bocca al lupo!


--------------------
Old Games Italia presenta INDIEtro Tutta - La rubrica settimanale dedicata al mondo videoludico indipendente. Seguici su Twitter e Facebook

"Ambition is a poor excuse for not having sense enough to be lazy" (E. Bergen)
 
 
Start new topic
Risposte
AprilSkies
messaggio21 Nov 2014, 11:08
Messaggio #2



Gruppo icone

Gruppo: Oldgame Editor
Messaggi: 516
Iscritto il: 16 May 12
Utente Nr.: 19.376
BGE The secret of Monkey Island
Playing The secret of Monkey Island
SO WinVista




Beh, per quello che vuoi fare tu, non c'è una funzione "build-in". Andrebbe "scriptata".
Io ho creato uno script di questo tipo nel mio gioco in produzione "Tales" in ui le descrizioni degli oggetti seguono il cursore.

Ora visto che stai iniziando adesso te ne fornisco uno, spero tu riesca a farlo funzionare. Magari ne approfitti per cercare di capire come funziona e quindi per cercare di capire come usare AGS.

Allora prima cosa: individua (o crea) la GUI che contiene il testo che varia a seconda di quello che fai (quindi il tuo famoso testo "vai verso".. usa questo" ecc.)
Se mi chiedi come posizionarla sul mouse, evidentemente l'hai già bella e pronta e nel gioco default.
Ora, non so come tu l'hai chiamata, ma supponiamo si chiami: gSQUALL_OVER_HOTSPOT

Bene, Operazioni preliminari:
1) Tale gui, che conterrà una "label" il cui testo varia a seconda di cosa c'è sotto il mouse, andrebbe ridimensionata, di dimensioni tali da non essere troppo grande, soprattutto in altezza. Io per sempio credoche l'ho fatta grande tipo 150 x 50. Cmq fai un po' di prove.
2) Imposto lo sfondo e il bordo della gui "TRASPARENTE" (colore 0).
3) POSIZIONA la label TUTTA A SINISTRA rispetto alla gui. Inoltre imposta il testo della label TUTTO A SINISTRA (TopLeft, nel menù di impostazone del centraggio scritta)
4) Fai la label bella larga, anche come la GUI, in modo che il testo, anche se lungo, non vada a capo.

Fatto?

OK. Ora creiamo gli script:

Nel menù a destra, cerca "Scripts". Clicca col destro su "Scripts" e crea un nuovo script.
Chiamalo and esempio MOUSE_FOLLOWER
si creeranno due files:
MOUSE_FOLLOWER.asc e MOUSE_FOLLOWER.ash

Apri MOUSE_FOLLOWER.asc

Lo troverai vuoto (a parte un commento in alto)
NOTA: i commenti sono cose che sono precedute da "//" e non vengono lette dal "compilatore" quindi puoi scriverci ciò che vuoi.
NOTA2: i tuoi codici cerca di commentarli MOLTO, così quando poi li riapri sai cosa fa una parte di codice.

Bene, ora dentro il file MOUSE_FOLLOWER.asc, sotto il commento di intestazione incolla, esattamente, quanto segue:
(copia integralmente)

// COPIA DA QUI ==================================================================
function repeatedly_execute()
{
// di seguito metteremo un operatore logico IF-THEN-ELSE per capire se il mouse si trova o no sopra un oggetto/hotspot/personaggio/item di inventario

if (Hotspot.GetAtScreenXY(mouse.x, mouse.y) == hotspot[0] && Object.GetAtScreenXY(mouse.x, mouse.y) == null && Character.GetAtScreenXY(mouse.x, mouse.y) == null && InventoryItem.GetAtScreenXY(mouse.x, mouse.y) == null)
{
// in questa parte del codice puoi mettere qualcosa che avviene se il mouse NON è sopra nessun oggetto, personaggio oppure hotspot.
// ad esempio puoi fare sì che la GUI scompaia
gSQUALL_OVER_HOTSPOT.Visible = false;
}
else
{
//in questa parte del codice scrivi ciò che avviene se il mouse E' sopra nessun oggetto, personaggio oppure hotspot
// innanzitutto la GUI è visibile
gSQUALL_OVER_HOTSPOT.Visible = true;
//===============
// ricava la larghezza del testo contenuto nella label della GUI
// non so come l'hai chiamata, ma supponiamo tu l'abba chiamata "LABEL_SQUALL_OVER_HOTSPOT"
String TESTO_TEMP; // dichiaro una variabile di tipo stringa
TESTO_TEMP = LABEL_SQUALL_OVER_HOTSPOT.Text; // assegno alla stringa il contenuto della label della gui che vogliamo far seguire il mouse
int TESTO_Width = GetTextWidth(TESTO_TEMP, eFontNormal); //dichiaro una variabile integer e contestualmente ricavo la larghezza del testo. Qui suppongo che abbia usato il font "Normal". se hai usato un altro font, metti il font che hai usato.
int label_position = TESTO_Width / 2; //dichiaro una variabile integer e contestualmente gli assegno il valore pari a metà della larghezza testo
// la "label_position" in pratica mi identifica il punto centrale del testo. Mi servirà per posizionarlo sopra il mouse.
//===============
// Ora devo stare attento che, se il mouse va vicino ai bordi, la scritta non esca fuori dallo schermo.
int label_offset; //dichiaro una variabile di offset
if (mouse.x - label_position < 0) label_offset = 5; //bordo sinistro 5 pixel
else if (mouse.x + label_position > 315) label_offset = 315 - TESTO_Width; //qui suppongo tu abbia la risoluzione larga 320 pixel
else label_offset = mouse.x - label_position;
//===============
//ora posso posizionare la gui, che ricordiamo si chiama gSQUALL_OVER_HOTSPOT
// nel farlo, attenzione, devo far sì che se sposto il mouse troppo in alto, la scritta vada sotto. negli altri casi sta sopra:
//a tal fine individuo una fascia di 50 pixel in alto
if (mouse.y > 50)
{
// sritta sopra, perché il mouse va in basso. ricorda che la Y cresce se vai verso il,basso.
gSQUALL_OVER_HOTSPOT.SetPosition(label_offset, mouse.y - 20); //gli do 20 pixel in alto. poi vedi tu. varia il "20" e vedi come si vede.
}
else
{
//scritta sotto perché il mouse si trova nella parte alta, nella fascia di 50 pixel in alto
gSQUALL_OVER_HOTSPOT.SetPosition(label_offset, mouse.y + 30); //gli do 30 pixel in basso. poi vedi tu. varia il "30" e vedi come si vede.
}
}
}
// COPIA FINO QUI ==========================================

Dovrebbe funzionare, se non ho commesso refusi e se imposti BENE i nomi delle GUI e delle LABEL.
SE CAMBI I LORO NOMI RISPETTO A QUELLO CHE HO SCRITTO IO, MODIFICA IL MIO SCRIPT DI CONSEGUENZA, ALTRIMENTI DARA' ERRORE.


 

Inserisci in questo messaggio
- LargoLagrande   PRIMI PASSI   23 Feb 2014, 00:33
- - Squall_Leonheart   Ragazzi ho un problema, nonostante come da screen ...   14 Nov 2014, 16:44
- - AprilSkies   Intendi dire che se clicchi al di fuori dell'a...   14 Nov 2014, 17:12
- - Squall_Leonheart   No non ci sono hotspot in quel punto. Praticamente...   14 Nov 2014, 20:13
- - AprilSkies   E' un comportamento abbastanza strano, per com...   15 Nov 2014, 10:35
- - Squall_Leonheart   Dimmi i file che ti servono e te li mando in mp C...   17 Nov 2014, 15:58
- - AprilSkies   A-Ah! Allora c'era qualcosa in basso...   17 Nov 2014, 19:00
- - Squall_Leonheart   Perdonami ho appena risolto nel gDialogsGui avevo ...   17 Nov 2014, 20:56
- - AprilSkies   Per attivare una GUI con la barra spaziatrice, nul...   18 Nov 2014, 18:07
- - Squall_Leonheart   Aggiustato tutto, ma una curiosità : Se voglio uti...   18 Nov 2014, 22:31
|- - AprilSkies   CITAZIONE (Squall_Leonheart @ 18 Nov 2014, 22...   19 Nov 2014, 09:48
|- - AprilSkies   Edit: avevo erroneamente inviato due risposte iden...   19 Nov 2014, 09:49
- - Squall_Leonheart   Ok, ti ringrazio di tutto. Lo so che rompo, ma ora...   19 Nov 2014, 21:50
- - AprilSkies   Si vede così perché hai impostato un "walkbeh...   20 Nov 2014, 08:59
- - Squall_Leonheart   Ho provato a mettere true e baseline 2, dove non h...   20 Nov 2014, 11:00
- - AprilSkies   Metti baseline 300 e vedrai che non si sovrappone ...   20 Nov 2014, 11:42
- - Squall_Leonheart   Ho optato per la baseline 300 xD Scusami ma c...   20 Nov 2014, 18:36
- - AprilSkies   Beh, per quello che vuoi fare tu, non c'è una ...   21 Nov 2014, 11:08
- - Squall_Leonheart   Mi da un errore qui, ma credo sia io in errore. Ti...   21 Nov 2014, 15:29
- - AprilSkies   Attenzione, i nomi che ho usato io sono nomi che h...   21 Nov 2014, 17:14
- - Squall_Leonheart   Il font era FontFont0, ho risolto anche i nomi. Pe...   21 Nov 2014, 19:14
- - AprilSkies   Scusa ma nella "label" che utilizzi, cos...   21 Nov 2014, 19:26
- - Squall_Leonheart   Tenevo scritto Text, ti mostro uno screen: Poi ...   21 Nov 2014, 19:39
- - AprilSkies   Che proprietà hai messo alla GUI gAction? gli hai ...   21 Nov 2014, 19:59
- - Squall_Leonheart   Ora si muove col cursore, però non mi legge gli og...   21 Nov 2014, 20:42
- - AprilSkies   in che senso non ti legge? spiegati meglio. Cosa a...   21 Nov 2014, 20:53
- - Squall_Leonheart   Questo sulla coppa blu e sull'armadio invece p...   21 Nov 2014, 21:05
- - AprilSkies   fai questa prova: Crea un'altra gui e un'a...   21 Nov 2014, 21:18
- - Squall_Leonheart   Ma ora che ci penso, non faccio prima a mettere ne...   21 Nov 2014, 21:28
- - AprilSkies   No. Cmq ora ho visto l'immagine, prima non la ...   21 Nov 2014, 21:36
- - Squall_Leonheart   Va bene, aspetto una tua risposta, intanto testo e...   21 Nov 2014, 21:38
- - AprilSkies   Ho appena provato lo script che ti avevo dato la p...   22 Nov 2014, 10:59
- - Squall_Leonheart   Il risultato purtroppo è questo, avevo dimenticato...   22 Nov 2014, 13:01
- - AprilSkies   Metti l label all'interno della GUI in alto, i...   22 Nov 2014, 13:13
- - Squall_Leonheart   Bene adesso va con tranquillità Grazie mille, se ...   22 Nov 2014, 16:06
- - Squall_Leonheart   Eccomi di nuovo, non mi è chiara una cosa. Cercavo...   24 Nov 2014, 15:57
- - AprilSkies   Allora bisogna distinguere due casi: - Animazione...   24 Nov 2014, 18:58
- - Squall_Leonheart   Grazie Ora purtroppo ho un altro problema, avevo ...   25 Nov 2014, 12:19
- - AprilSkies   Prova: function hLuce_AnyClick() { if(UsedAction...   25 Nov 2014, 16:48
- - Squall_Leonheart   Ma come si disattiva l'animazione della stanza...   25 Nov 2014, 19:52
- - AprilSkies   devi bloccarla all'inizio, in RoomLoad scriven...   25 Nov 2014, 21:31
- - Squall_Leonheart   Riuscito !   25 Nov 2014, 23:33
- - Squall_Leonheart   Aspetta dimenticavo di dirti che accendevo e spegn...   26 Nov 2014, 16:25
- - AprilSkies   Occhio che così non le accendi spegni correttament...   26 Nov 2014, 17:45
- - Squall_Leonheart   Una curiosità, associando una Region e quindi uno ...   26 Nov 2014, 18:18
- - AprilSkies   Ciao SQ Scusa il ritardo. Detto così faccio un po...   27 Nov 2014, 18:17
- - Squall_Leonheart   Ti spiego subito , ho due problemi. Il primo è che...   27 Nov 2014, 19:45
- - AprilSkies   Quella della variabile è un'ottima idea, però ...   27 Nov 2014, 20:26
- - Squall_Leonheart   Ho fatto così ma mi da un errore di sintassi :/ f...   27 Nov 2014, 20:58
|- - AprilSkies   Quando ti da errore di sintassi, però devi annotar...   27 Nov 2014, 22:07
- - Squall_Leonheart   Dunque la funzione move player comunque mi va O.o ...   27 Nov 2014, 22:53
- - AprilSkies   MovePlayer non esiste più.. o meglio probabilmente...   28 Nov 2014, 10:49
- - Squall_Leonheart   Allora, ti copio tutto il mio script della stanza ...   28 Nov 2014, 11:56
- - AprilSkies   Quale pleyer ti da errore? Mi puoi evidenziare la ...   28 Nov 2014, 13:03
- - Squall_Leonheart   Perdonami avevo copiato erroneamente il tuo script...   28 Nov 2014, 14:07
- - AprilSkies   player lettera piccola forse è stato un refuso d...   28 Nov 2014, 14:37
- - Squall_Leonheart   La region 3 rimane attiva indifferentemente dalla ...   28 Nov 2014, 16:51
- - AprilSkies   Disattivala la prima volta che entri nella stanza....   28 Nov 2014, 17:14
- - Squall_Leonheart   Niente, continua a non disattivarsi al primo avvio...   28 Nov 2014, 18:49
- - AprilSkies   sei sicuro che ti stai riferendo alla region giust...   28 Nov 2014, 19:16
- - Squall_Leonheart   No sono sicuro che la region sia giusta. Ti spiego...   28 Nov 2014, 19:24
- - AprilSkies   hPorta è enabled appena carica? verificalo mettend...   28 Nov 2014, 19:43
- - Squall_Leonheart   Ah finalmente ci sono riuscito! Potresti dirmi...   28 Nov 2014, 20:42
- - AprilSkies   devi cambiare la start room del personaggio princi...   28 Nov 2014, 21:10
- - Squall_Leonheart   Ora sto avendo un problema col 9-Verb. Cambio la g...   29 Nov 2014, 16:44
- - AprilSkies   Dovrebbe trovarsi nel GUIScript. in uno script che...   29 Nov 2014, 20:10
- - Squall_Leonheart   Non la trovo, ti copio lo script: function toggl...   29 Nov 2014, 22:39
- - AprilSkies   Il codice relativo alla pressione del pulsante des...   30 Nov 2014, 10:19
- - Squall_Leonheart   Si quello l'avevo trovato, il problema è che n...   30 Nov 2014, 14:39
- - AprilSkies   eh? Non ho capito. Se cancelli tutto va bene o no...   30 Nov 2014, 14:59
- - Squall_Leonheart   Praticamente, cancellando queste stringhe CODICE...   30 Nov 2014, 17:00
- - AprilSkies   Scusa, ma una domanda... se semplicemente quello c...   30 Nov 2014, 17:58
- - Squall_Leonheart   Ma il problema è proprio che cambiando tutti gli s...   30 Nov 2014, 19:48
- - Squall_Leonheart   Ma il problema è proprio che cambiando tutti gli s...   30 Nov 2014, 19:48
- - AprilSkies   In ogni cursore imposta, nel menù a destra, IMAGE ...   30 Nov 2014, 21:07
- - Squall_Leonheart   Sono riuscito a risolvere tutto grazie Ma una cos...   1 Dec 2014, 14:02
- - AprilSkies   La condizione "NON E' NELLA STANZA 301...   1 Dec 2014, 14:34
- - Squall_Leonheart   Ok, rieccomi XD Stavo cercando di far illuminare d...   4 Dec 2014, 21:09
- - AprilSkies   Allora, scritte che cambiano colore al passaggio d...   5 Dec 2014, 12:11
- - Squall_Leonheart   Scusami ma del bottone volevo cambiare l'immag...   5 Dec 2014, 13:05
- - AprilSkies   Per far cambiare l'immagine quando passi sopra...   5 Dec 2014, 15:24
- - Squall_Leonheart   Ma perché a me non c'è questa opzione? Ed...   5 Dec 2014, 19:44
|- - AprilSkies   CITAZIONE (Squall_Leonheart @ 5 Dec 2014, 19...   6 Dec 2014, 08:49
- - Squall_Leonheart   Eccomi di nuovo! Dunque modificando la Gui è i...   8 Dec 2014, 15:29
- - Squall_Leonheart   Ho visto che lo sfondo della GUI è il button 12.. ...   9 Dec 2014, 22:33
- - AprilSkies   Ciao SQ! Scusa il ritardo!!! Ero a...   10 Dec 2014, 20:32
- - Squall_Leonheart   Figurati, ti invidio XD Comunque ho provato, ma no...   10 Dec 2014, 23:32
- - Squall_Leonheart   L'errore che mi da è quello che transparency n...   11 Dec 2014, 14:38
- - AprilSkies   Ahah, scusami SQ ^^ errore mio. La Transparency i...   11 Dec 2014, 19:30
- - Squall_Leonheart   Avevo cercato di evitare il problema accavaLLANDO ...   11 Dec 2014, 20:49
- - AprilSkies   Per decidere chi sta sopra e chi sta sotto devi us...   11 Dec 2014, 20:55
- - Squall_Leonheart   Eccomi di nuovo Volevo usare nel title un immagin...   14 Dec 2014, 17:46
- - AprilSkies   Ti conviene creare un oggetto.   15 Dec 2014, 12:44
- - Squall_Leonheart   Ma per animarlo poi mi conviene fare wait e cambio...   15 Dec 2014, 16:08
- - AprilSkies   Per animare un oggetto: crea una VIEW animata. Co...   15 Dec 2014, 16:52
- - Squall_Leonheart   Mi da l'errore ad oSipario, non capisco perché...   15 Dec 2014, 18:56
- - AprilSkies   Bravo! Il manuale fornisce sempre una spiegazi...   16 Dec 2014, 08:48
- - Squall_Leonheart   Però creando un oggetto, passandoci sopra esce vai...   16 Dec 2014, 20:47
- - AprilSkies   Il modo più veloce è metterci sopra una bella GUI ...   16 Dec 2014, 21:31
- - Squall_Leonheart   Ho risolto togliendo il vai a proprio dalla Gui pr...   16 Dec 2014, 23:29
2 Pagine V   1 2 >


Reply to this topicStart new topic
1 utenti stanno leggendo questa discussione (1 visitatori e 0 utenti anonimi)
0 utenti:

 

Modalità di visualizzazione: Passa a: Normale · Passa a: Lineare · Outline


Versione Lo-Fi Oggi è il: 28th October 2026 - 02:24