Un esempio di Canvas, Multi Touch e SVG su Internet Explorer 10
Come creare un semplice gioco che combina grafica SVG, interazione multi-touch, e manipolazione di immagini tramite Canvas? Vediamolo insieme in questo articolo
di Antonio Barba pubblicato il 16 Agosto 2013 nel canale WebCanvas, SVG e Multi-Touch su Internet Explorer 10
Abbiamo visto in un precedente articolo come sfruttare il supporto SVG per disegnare grafica vettoriale complessa, con annessi filtri grafici accelerati in hardware. Inoltre, abbiamo anche trattato la gestione dei punti di tocco multipli tramite l’API MSPointer ( il riferimento è a questo articolo), compito in realtà abbastanza semplice, che non si discosta molto dalla gestione dei classici eventi del mouse, con l’importante differenza che vengono generati tanti eventi quante sono le dita rilevate dal sensore.
Una volta padroneggiati questi prerequisiti, possiamo mettere insieme le due cose e creare un semplice gioco che combina grafica SVG, interazione multi-touch, e manipolazione di immagini tramite Canvas. Microsoft mette a disposizione degli sviluppatori, tra i meandri della sua sconfinata documentazione MSDN, un progetto d’esempio che ben sintetizza queste tecniche in un classico puzzle game in cui bisogna mettere nell’ordine corretto i vari tasselli in cui è stata scomposta un’immagine.

Fig. 1 Puzzle game d’esempio
Per suddividere l’immagine in piastrelle viene usato il metodo drawImage dell’oggetto Canvas ( si veda anche qui). Questo metodo consente di disegnare una porzione di un’immagine sorgente all’interno un canvas o un’immagine di destinazione. Accetta come parametri l’immagine sorgente, le coordinate e la dimensione del rettangolo da copiare, le coordinate e la dimensione del rettangolo di destinazione. Con un solo metodo, giocando opportunamente con le coordinate e le dimensioni, è possibile disegnare parti di un’immagine traslati e scalati in molti modi.
Questo frammento di codice si occupa di tagliare l’immagine in blocchi e salva i vari pezzi in una tabella temporanea:
//Genera le piastrelle for (var row = 0; row < NUM_ROWS; row++) { for (var col = 0; col < NUM_COLS; col++) { ctx.drawImage(image, dx * col, dy * row, dx, dy, 0, 0, dx, dy); ctx.strokeRect(0, 0, dx, dy); // Disegna il bordo. slicedImageTable.push( _canvas.toDataURL() ); } } // Disegnale, sotto forma di tag <img> for (var r = 0; r < NUM_ROWS; r++) { for (var c = 0; c < NUM_COLS; c++) { var img = new Image(); img.src = slicedImageTable.shift(); // restitusce il primo element e lo rimuove dall’array. Funziona come il “dequeue” di una coda, oppure il “pop” di uno stack document.getElementsByTagName('body')[0].appendChild(img); } document.getElementsByTagName('body')[0].appendChild(document.createElement('br')); } |
Per il codice completo, fate riferimento alla pagina di esempio, ricordando di usare l’opzione per mostrare il sorgente della pagina.







SONY BRAVIA 8 II e BRAVIA Theatre System 6: il cinema a casa in formato compatto
KTC H27E6 a 300Hz e 1ms: come i rivali ma a metà prezzo
Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare
Chi l'ha detto che Windows 10 è morto? Microsoft rilascia il primo aggiornamento ESU: cosa cambia
DREAME H14 Pro è la scopa elettrica lavapavimenti del futuro: pulisce, si sterilizza da sola e si controlla da app, ora a 299€
Lego e Nintendo uniscono le forze per un set dedicato a The Legend of Zelda: Ocarina of Time
Sfida tra giganti: realme GT7 vs Xiaomi 15T, quale smartphone domina sotto i 500€?
Linux non è così sicuro come pensavi, e secondo Kaspersky serve un antivirus
Numeri da tripla A per ARC Raiders: superati i 4 milioni di copie vendute
Samsung Galaxy S26 Ultra: la ricarica sarà più veloce, anche in modalità wireless
Aira lancia la gamma Power: inverter e batteria che si integrano con pompa di calore e fotovoltaico
Super sconti su rasoi elettrici e regolabarba Braun su Amazon: Serie 3, 5 e 7 fino al 40% in meno
Cooler Master QUBE 540: compatto sì, ma una scheda E-ATX entra anche qui
I nuovi Mac Mini e Mac Studio con M5 stanno arrivando: svelato il periodo di lancio
Scossa in casa Meta: una figura chiave per lo sviluppo AI è pronto a fondare la propria azienda
Narwal Freo X10 Pro: tanta sostanza a un costo accessibile








