Benvenuto Visitatore(Log In|Registrati)

 
Reply to this topicStart new topic
> [Problema AGS GUI Broken Sword] [L'ispettore Alex]
Sennar
messaggio27 Jun 2018, 09:33
Messaggio #1





Gruppo: Gamer
Messaggi: 13
Iscritto il: 27 June 18
Utente Nr.: 21.920
SO Windows7




Buongiorno a tutti mi presento sono nuovo del forum e sto creando un gioco con AGS dopo aver seguito tutte le lezioni online di ProcioneSX. Non ho grosse difficoltÓ a creare il gioco fortunatamente ma c'Ŕ una cosa che non riesco a fare.

Io vorrei fare in modo che una volta che il mouse , contrassegnato su walk di default, passa sopra un hotspot automaticamente , come succede a broken sword, diventi una lente ed io cliccandoci possa leggere una frase in cui il personaggio descrive l'oggetto che sta guardando.

Ora io ho creato un hotspot che ho chiamato ho lasciato col nome di default e gli ho applicato 2 eventi:

function hHotspot1_Look()
{
player.Say("non capisco cosa sia");
}

function hHotspot1_MouseMove()
{
mouse.UseModeGraphic(eModeLookat);

}

In questo modo la freccia diventa lente ma Ŕ come se non entrasse realmente in modalitÓ lookat infatti se clicco sull'hotspot col tasto sinistro non dice la frase.

Dove sbaglio?

In alternativa ora sto usando il template sierra nel quale devi scegliere tu con lo scroll del mouse la lente e in quel caso la frase la dice per˛ a me non piace questo continuo dover cercare l'icona giusta.

Attendo un vostro riscontro e vi ringrazio.
 
frank_one
messaggio27 Jun 2018, 13:11
Messaggio #2





Gruppo: Gamer
Messaggi: 198
Iscritto il: 20 June 18
Utente Nr.: 21.911
BGE Monkey Island 1
Playing Quake (DOS, software rendered)
SO Win95




Premessa: non me ne intendo.
Guardando il tuo codice mi vengono in mente due cose:
- mouse.UseModeGraphic: il nome di questa funzione si riferisce alla grafica, l'icona del puntatore, credo. Quando la usi il puntatore cambia, ma la modalitÓ rimane quella di prima. O almeno questo Ŕ quello che mi aspetterei dal suo nome. Sicuro tu non debba usare anche un'altra funzione per cambiare effettivamente la modalitÓ e non solo l'icona del puntatore?
- Tu vuoi assegnare un azione di default ad un hotspot. Questa azione per˛ deve attivarsi SOLO se attualmente non ce n'Ŕ una giÓ selezionata, ovvero solo se ti trovi nella modalitÓ Cammina. Altrimenti non ti sarÓ pi¨ possibili Usare, Aprire, Spostare... l'oggetto.
Quindi all'interno della funzione che viene chiamata quando sposti il cursore sul tuo hotspot dovresti creare un controllo tipo:
se(sono in modalitÓ Cammina)
{
attiva_modalitÓ(Osserva);
}

Chiedo scusa se ho detto delle banalitÓ blush.gif
 
Sennar
messaggio27 Jun 2018, 13:19
Messaggio #3





Gruppo: Gamer
Messaggi: 13
Iscritto il: 27 June 18
Utente Nr.: 21.920
SO Windows7




CITAZIONE (frank_one @ 27 Jun 2018, 14:11) *
Premessa: non me ne intendo.
Guardando il tuo codice mi vengono in mente due cose:
- mouse.UseModeGraphic: il nome di questa funzione si riferisce alla grafica, l'icona del puntatore, credo. Quando la usi il puntatore cambia, ma la modalitÓ rimane quella di prima. O almeno questo Ŕ quello che mi aspetterei dal suo nome. Sicuro tu non debba usare anche un'altra funzione per cambiare effettivamente la modalitÓ e non solo l'icona del puntatore?
- Tu vuoi assegnare un azione di default ad un hotspot. Questa azione per˛ deve attivarsi SOLO se attualmente non ce n'Ŕ una giÓ selezionata, ovvero solo se ti trovi nella modalitÓ Cammina. Altrimenti non ti sarÓ pi¨ possibili Usare, Aprire, Spostare... l'oggetto.
Quindi all'interno della funzione che viene chiamata quando sposti il cursore sul tuo hotspot dovresti creare un controllo tipo:
se(sono in modalitÓ Cammina)
{
attiva_modalitÓ(Osserva);
}

Chiedo scusa se ho detto delle banalitÓ blush.gif

Ciao frank,

Grazie per la risposta. Si infatti sul discorso graphic ero quasi sicuro che si riferisse solo alla grafica. Ho provato altri comandi come ismodeenabled ma non lo fa. Giuro sto impazzendo .

Prover˛ a ragionare su quanto da te detto. Nel frattempo spero che arrivi qualcuno che abbia la risposta perchŔ sono 4 giorni che ci sbatto la testa e non so pi¨ cosa provare.




Sono riuscito per cosi dire a risolvere. Io tentavo di entrare per forza in modalita look at per fargli poi dire la frase al click. Ho risolto con interact. Praticamente cambio la grafica del cursore facendo apparire la lente e poi clicco col SX del mouse tramite interact e lui dice la frase. Di seguito il codice


function hHotspot4_Interact()
{
player.Say("Ciao");
}

function hHotspot4_MouseMove()
{
mouse.UseModeGraphic(eModeInteract);
}


Mi ritengo soddisfatto per quanto riguarda hotspot. Poi per i personaggi vedremo come fare.

Messaggio modificato da Sennar il 27 Jun 2018, 16:26
 

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

 

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


Versione Lo-Fi Oggi è il: 20th July 2019 - 12:28