GUIDE PER ASPIRANTI PROGRAMMATORI
Fase 1: creiamo la base del gioco
Impostazione del Canvas È ora di iniziare a programmare il gioco vero e proprio! Apri index.js e inserisci questo codice: const canvas = document.querySelector('canvas'); const c = canvas.getContext('2d'); canvas.width = 1480; canvas.height = 750; Cosa fa questo codice? Preparare il Canvas: document.querySelector(‘canvas’) dice al browser di prendere il nostro canvas dal file HTML. Questo…
Vuoi avviare una nuova carriera o fare un upgrade?
Trova il corso Digital & Tech più adatto a te nel nostro catalogo!
Impostazione del Canvas
È ora di iniziare a programmare il gioco vero e proprio! Apri index.js e inserisci questo codice:
const canvas = document.querySelector('canvas');
const c = canvas.getContext('2d');
canvas.width = 1480;
canvas.height = 750;
Cosa fa questo codice?
- Preparare il Canvas: document.querySelector(‘canvas’) dice al browser di prendere il nostro canvas dal file HTML. Questo sarà lo spazio di gioco.
- Context 2D: c è ciò che useremo per disegnare le nostre immagini e forme nel gioco.
- Dimensioni del Canvas: impostiamo la larghezza e l’altezza del canvas, in modo che occupi una buona parte dello schermo.
Creazione della Classe Player
Adesso diamo vita al nostro protagonista: la navicella spaziale!
Aggiungi questo codice:
class Player {
constructor() {
this.velocity = {
x: 0,
y: 0
};
this.rotation = 0;
this.opacity = 1;
const image = new Image();
image.src = './img/spaceship.png';
image.onload = () => {
const scale = 0.15;
this.image = image;
this.width = image.width * scale;
this.height = image.height * scale;
this.position = {
x: canvas.width / 2 - this.width / 2,
y: canvas.height - this.height - 20
};
};
}
draw() {
c.save();
c.globalAlpha = this.opacity;
c.translate(
this.position.x + this.width / 2,
this.position.y + this.height / 2
);
c.rotate(this.rotation);
c.translate(
-this.position.x - this.width / 2,
-this.position.y - this.height / 2
);
c.drawImage(this.image, this.position.x, this.position.y, this.width, this.height);
c.restore();
}
update() {
if (this.image) {
this.draw();
this.position.x += this.velocity.x;
}
}
}
const player = new Player();
Cosa fa questo codice?
- Creare il Giocatore (Player): qui stiamo definendo un modello per la nostra navicella. Ogni volta che vogliamo un nuovo giocatore, usiamo questo modello.
- Velocità e Movimento: la velocity ci dice quanto velocemente si muove la navicella. All’inizio è ferma, ma presto cambierà!
- Immagine della Navicella: carichiamo l’immagine della navicella e la ridimensioniamo in modo che si adatti bene allo schermo.
- Disegnare la Navicella (draw): questa funzione si occupa di disegnare la navicella sullo schermo, applicando rotazioni e trasparenze se necessario.
- Aggiornare la Posizione (update): questa funzione sposta la navicella ogni volta che aggiorniamo il gioco, in base alla sua velocità.
Gestione del Movimento del Giocatore
Adesso facciamo in modo che la navicella possa muoversi a sinistra e a destra usando le frecce della tastiera.
Aggiungi questo codice:
const keys = {
arrowLeft: {
pressed: false
},
arrowRight: {
pressed: false
}
};
window.addEventListener('keydown', ({ key }) => {
switch (key) {
case 'ArrowLeft':
keys.arrowLeft.pressed = true;
break;
case 'ArrowRight':
keys.arrowRight.pressed = true;
break;
}
});
window.addEventListener('keyup', ({ key }) => {
switch (key) {
case 'ArrowLeft':
keys.arrowLeft.pressed = false;
break;
case 'ArrowRight':
keys.arrowRight.pressed = false;
break;
}
});
function animate() {
requestAnimationFrame(animate);
c.fillStyle = 'black';
c.fillRect(0, 0, canvas.width, canvas.height);
player.update();
if (keys.arrowLeft.pressed && player.position.x >= 0) {
player.velocity.x = -10;
player.rotation = -0.15;
} else if (keys.arrowRight.pressed && player.position.x + player.width <= canvas.width) {
player.velocity.x = 10;
player.rotation = 0.15;
} else {
player.velocity.x = 0;
player.rotation = 0;
}
}
animate();
Cosa fa questo codice?
- Tasti Premuti (keys): qui creiamo un oggetto che tiene traccia dei tasti premuti. All’inizio, nessun tasto è premuto.
- Rilevare i Tasti (keydown e keyup): quando premi una freccia, diciamo al nostro gioco di muovere la navicella a sinistra o a destra. Quando rilasci il tasto, fermiamo il movimento.
- Animare la Navicella (animate): questa funzione viene chiamata continuamente, e ogni volta aggiorna la posizione della navicella e la ridisegna sullo schermo. Se stai premendo una freccia, la navicella si muove; se rilasci il tasto, si ferma.
CONTENUTI GRATUITI IN EVIDENZA
Guide per aspiranti programmatori 👨🏻🚀
Vuoi muovere i primi passi nel Digital e Tech? Abbiamo preparato alcune guide per aiutarti a orientarti negli ambiti più richiesti oggi.