[Promotion] Ny funktionalitet till Tellstory: Graf med input och dynamisk connection

stenhöna

tellstory
Joined
5 Oct 2002
Messages
964
Location
Hamburg
Grafer är coola, men är de interaktiva? Ja! Med hjälp av input.

Som exempel har jag en enkel graf med tre noder. Nod ett frågar om "path". Nod två skriver "Du valda två" och pekar tillbaks till ett. Nod tre skriver "Du valde tre" och pekar också tillbaks till ett. Grafen är inuti en loop som upprepas tio gånger.

Först ett exempel på körning:
Choose your path (1, 2 or 3): 1

Choose your path (1, 2 or 3): 2

You chose two
Choose your path (1, 2 or 3): 3

You chose three
Choose your path (1, 2 or 3): 2

You chose two
Choose your path (1, 2 or 3): 4

{@conn_test}
{@conn_test}
Som ni ser ovan valde jag "1" som första input, vilket bara pekar tillbaks till första nod (som fråga om input). Programmet buggar ut när jag väljer "4" eftersom ingen nod finns med detta id.

Här är programmet i XML-format:

HTML:
<story>                                                                                                                                                                                                              
  <!-- Example with inline expression from input in graph node connections attribute -->                                                                                                                            
  <variable name="path"><alt>1</alt></variable>                                                                                                                                                                      

  <graph name="conn_test" start="1">                                                                                                                                                                                
    <node id="1" connections="{path}">                                                                                                                                                                              
      <input name="path" label="Choose your path (1, 2 or 3): "/>                                                                                                                                                    
    </node>                                                                                                                                                                                                          
    <node id="2" connections="1">You chose two</node>                                                                                                                                                                
    <node id="3" connections="1">You chose three</node>                                                                                                                                                              
  </graph>                                                                                                                                                                                                          

  <loop times="10">                                                                                                                                                                                                  
    <sentence>{@conn_test}</sentence>                                                                                                                                                                                
    <br/>                                                                                                                                                                                                            
  </loop>                                                                                                                                                                                                            
</story>
Programmet använder en variabel med namn "path". I nod ett finns ett <input> element som sparar resultat i variabel "path". Både nod 2 och 3 har connections "1", som alltså är inputnoden.

Grafen heter "conn_test". Den evalueras inuti <sentence>-elementet med uttrycket "{@conn_test}".

Ett coolt nästa steg vore såklart om man kunde spela flera stycken samtidigt! Kanske med <lobby>- och <player>-taggar. Men redan nu tror jag det är möjligt att göra interaktiva sagor och grottkräl. Ska försöka få till ett exempel.

Edit: Kanske kan jag goera Monopol som ett exempel.
 
Top