Benvenuto Visitatore(Log In|Registrati)
23 Feb 2014, 00:33
Messaggio
#1
|
|
|
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! -------------------- |
|
|
|
![]() |
21 Nov 2014, 11:08
Messaggio
#2
|
|
|
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. |
|
|
|
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
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![]() ![]() |
| Versione Lo-Fi | Oggi è il: 28th October 2026 - 02:24 |