• User

    espressione incomprensibile

    Sono alle prese con la guida che spiega come creare game tile based, ma arrivato alla funzione (getMyCorners) non riesco a capire il senso di questa espressione:
    ob.upleft = game["t_"+ob.upY+""+ob.leftX].walkable;
    e soprattutto a cosa servono i caratteri "t
    " e "_"
    Spero in un vostro aiuto.

    Riporto la funzione al completo

    function getMyCorners(x, y, ob) {
    // find corner points
    ob.downY = Math.floor((y+ob.height-1)/game.tileH);
    ob.upY = Math.floor((y-ob.height)/game.tileH);
    ob.leftX = Math.floor((x-ob.width)/game.tileW);
    ob.rightX = Math.floor((x+ob.width-1)/game.tileW);
    // check if they are walls
    ob.upleft = game["t_"+ob.upY+""+ob.leftX].walkable;
    ob.downleft = game["t
    "+ob.downY+""+ob.leftX].walkable;
    ob.upright = game["t
    "+ob.upY+""+ob.rightX].walkable;
    ob.downright = game["t
    "+ob.downY+"_"+ob.rightX].walkable;
    }


  • User Attivo

    Premetto che è da poco che uso ActionScript però leggendo il codice mi sembrerebbe una funzione che serve a localizzare la posizione di un oggetto dentro un altro per verificare se questo va o no a toccare contro questo o meno.
    L'espressione da te postata assegna ad una variabile i valori delle coordinate che indicano il lato sinistro dell'oggetto, credo si tratti dello stage del gioco in cui si muove l'azione. Il codice preleva prima la posione dell'oggetto floor e poi il margine contro i quali si può muovere. Per esempio se le coordinate del lato sinistro dell'oggetto coincidono con quelle del lato sinistro dello stage allora significa che i due oggetti si toccano.
    Potei anche sbagliarmi ma a me sembra qualcosa di simile.


  • User

    Ti ringrazio per avermi chiarito i dubbi che avevo su tale funzione.
    Volevo inoltre chiederti se riesci a spiegarmi la sintassi dell'espressione:
    ob.upleft = game["t_"+ob.upY+""+ob.leftX].walkable;
    in particolare a cosa servono i caratteri "t
    " e "_" e il segno + messo davanti e dietro a ob.upY


  • Super User

    Ciao 🙂

    In questa riga:
    ob.upleft = game["t_"+ob.upY+""+ob.leftX].walkable;
    assegna un valore alla proprietà upleft di ob ( che non si capisce cosa sia , se una MovieClip o un Object ) .
    i caratteri t
    e _ servono per concatenare una stringa e recuperare un oggetto tramite nome. Per di più recupera la proprietà walkable di quell' oggetto.

    Tutto il resto è codice obdoleto ( Actionscript 1.0 ) , per cui se proprio stai imparando ti consiglio vivamente di imparare una versione più evoluta di quella e vedrai che avrai anche molte meno difficoltà a capire il codice in quanto le versioni più evolute seguono i canoni di ECMA.


  • User

    Grazie ora mi è più chiaro.
    Per il codice ne terrò conto.... il problema è che nella guida che sto seguendo per fare il mio piccolo game con il metodo delle tile il codice è scritto con AS 1.0. Ma alla fine cambia molto rispetto alle versioni più aggiornate?


  • Super User

    Si, da as1 ad as3 c'è il mondo in mezzo 😄