Newsgroup: it.comp.giochi.avventure.testuali
Titolo: [ANN] MDIF: Mouse-Driven Interactive Fiction

Ciao a tutti.
Ricordate quella discussione su come il parser poteva essere migliorato? Mi
sono messo al lavoro e ho prodotto un sistema interamente basato sull'uso
del mouse. Ho scritto una piccolissima avventura dimostrativa: se qualcuno
la vuole posso mandargliela per email o magari posso pubblicarla (dove?).
Mancano ancora il salvataggio, lo scrolling ed i dialoghi, ma potete gią
farvi un'idea di come funziona e magari cominciare gią a progettare qualche
gioco...
Ignazio

Neclepsio ha scritto:

Spediscimela che la metto su IFITALIA
Giovanni
-- 
Giovanni Riccardi
personal: 
http://www.composizioni.net
   weblog: 
http://www.composizioni.net/addv
     work: 
http://www.anxur.it

Molto interessante.
Mandamela pure a roberto chiocciola robertograssi punto net
Dopo JIF potrebbe essere un altro contributo notevole 
dell'Italia alla IF :)
Italia RULEZ! 8)
Rob
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 gioco...
Si, sono interessato... Puoi spedirla e/o metterla in un luogo 
pubblicamente accessibile?
bye
-- 
Paolo Lucchesi
email: plucchesiNOSPAM(at)NOSPAMtin(dot)NOSPAMit
homepage: 
http://www.paololucchesi.it
"Non viviamo in un mondo perfetto (per fortuna)"

This message was cancelled from within Mozilla.

 gioco...
Si, sono interessato... Puoi spedirla e/o metterla in un luogo
pubblicamente accessibile?
E puoi anche fornire dettagli su questo MDIF?


 dell'Italia alla IF :)
Non esageriamo adesso...
Ignazio

 E puoi anche fornire dettagli su questo MDIF?
È una infrastruttura scritta in C# che contiene l'interfaccia ed una
libreria di classi per gli oggetti del gioco. In particolare, ciascun
oggetto del gioco eredita una particolare classe della libreria. La libreria
è scritta in modo da minimizzare la quantità di codice pur mantenendo una
grandissima flessibilità.
Le classi sono estensibili grazie all'uso di attributi e all'overload delle
funzioni di libreria.
Ad esempio, questo è il codice della chiave che inizialmente è
nell'inventario del gioco di prova, la stanza iniziale e la porta chiusa a
chiave.
 [InitialValues(
   Description = "Una normalissima chiave.",
   Parent = "player")]
 public class chiave : GameObject {}
 [InitialValues(
   Description =
   "<:G000000><:FFFFFFF><:B>Stanza iniziale<:b>\n\n" +
   "Sei in una stanza con pochissima luce. L'unica cosa che vedi " +
   "è una <stanza1_porta>, dritta davanti a te.")]
 public class stanzaIniziale : GameLocation {}
 [InitialValues(
   Text = "porta blindata",
   Parent = "stanzaIniziale",
   GoToPlaceName = "stanzaMacchina",
   Key = "chiave")]
 public class stanza1_porta : GameDoor {}
Come vedete, non ho scritto praticamente codice.
La descrizione della stanza contiene alcuni "tag" per la formattazione del
testo.
Grazie alla libreria si possono inserire immagini, cambiare colori,
caratteri, inserire suoni e video.
È possibile estendere la libreria usando le funzioni del C#.
Un ultimo esempio, con l'overload usato per avere una stanza con descrizione
dinamica e che fermi la riproduzione di un suono (avviato precedentemente) e
avvii quella di un video quando si entra nella stanza in particolari
condizioni:
 [InitialValues(
   Text = "stanza della macchina",
   Description =
   "<:B>Stanza della macchina<:b>\n\n" +
   "In questa stanza c'è una macchina da cui escono spaventosi fulmini. Ci
sono uscite a <stanzaSinistra_PH> e " +
   "a <stanzaDestra_PH>, oltre ad una finestra da cui si vede un cielo
scuro.")]
 public class stanzaMacchina : GameLocation {
  private bool macchinaSpenta = false;
  public override string Description {
   get {
    string d = base.Description;
    if (!Visited) {
     d = "Apri la porta blindata, che si chiude dietro di te non appena
entri. Provi a riaprirla, ma non c'è nulla da fare.\n\n" + d;
     ((Audio)Game.OtherObjects["fulmine"]).Play();
    }
    if (this.Children.Contains("foglio"))
     d += "\n\nC'è anche un <foglio> per terra.";
    if (macchinaSpenta)
     d = "<:B>Stanza della macchina<:b>\n\nComplimenti! Hai spento la
macchina!!!";
    return d;
   }
   set {
    base.Description = value;
   }
  }
  public override void OnEnter() {
   if (((Audio)Game.OtherObjects["fulmine"]).Volume <= -4800) {
    ((Audio)Game.OtherObjects["fulmine"]).Stop();
    Video v =  new Video("schiarta.avi", Game);
    v.DisposeOnEnding = true;
    v.Play();
    macchinaSpenta = true;
   } else {
    if (((Audio)Game.OtherObjects["fulmine"]).Volume != 0)
     ((Audio)Game.OtherObjects["fulmine"]).Volume += 600;
    ((Audio)Game.OtherObjects["fulmine"]).Balance = 0;
   }
   base.OnEnter ();
  }
 }
Ignazio

Neclepsio ha scritto:

L'avventura dimostrativa di Ignazio č disponibile da ora su IF-ITALIA.


 Non esageriamo adesso...
Eheheheh :))
Esageriamo esageriamo, tanto chi ci controlla? 8)
