La propiedad textAling
Font
Si ponemos px y no tipo de fuente no funciona. Aquí otros valores que le podemos dar.
Introducción
Programemos un juego con JavaScript
Canvas
¿Qué es canvas en JavaScript?
Tamaño del canvas y sus elementos
Canvas responsive
Mapa del juego
¿Qué es un array bidimensional?
Arreglos multidimensionales en JavaScript
Refactor del mapa de juego
Movimientos del jugador
Eventos y botones
Objeto playerPosition
Limpieza de movimientos
No te salgas del mapa
Colisiones
Detectando colisiones fijas
Detectando colisiones con arrays
Victoria: subiendo de nivel
Derrota: perdiendo vidas
Bonus: adictividad
Sistema de vidas y corazones
Sistema de tiempo y puntajes
¿Qué es localStorage?
Guardando records del jugador
Deploy
Depurando errores del juego
Desplegando el juego a GitHub Pages
Próximos pasos
Reto: reinicio del juego
Reto: timeouts de victoria o derrota
¿Quieres un simulador laboral?
Juan David Castro Gallego
Aportes 33
Preguntas 3
Si ponemos px y no tipo de fuente no funciona. Aquí otros valores que le podemos dar.
fillRect() no recibe 4 coordenadas, recibe 2 coordenadas, que son apartir de donde inicia a dibujar, y luego el ancho y el alto.
fillRect( xinicial, yinicial, width, height)
Para los que no les sale el auto completado de los métodos del canvas, les puedo compartir un consejo para no cometer errores de tipados con frecuencia.
/**
* @type {HTMLCanvasElement}
*/
const canvas = document.querySelector("#game");
En realidad lo que hace es decir que nuestra constante “canvas” es de tipo HTMLCanvasElement, lo que nos mostrara los métodos en VSCode.
Canvas - Coordenadas de inicio.
Obtenido de: Developer Mozilla
Aqui algunos metodos de HTML5 Canvas:
function startGame(){
game.fillRect(100,25,100,100);
game.clearRect(125,50,50,50);
game.fillText('PLATZI', 133,78);
}
Qué buena energía tiene el profesor! Vamos bien.
Recordatorio de eje x (horizontal) y eje y (vertical)
Lo primero que necesitamos es el elemento de HTML donde vamos a renderizar el canvas, canvas nos sirve para renderizar gráficos 2D.
Como condición también tenemos que crear un contexto que es donde le decimos a canvas que queremos renderizar gráficos en 2d lo hacemos así
const game = canvas.getContext('2d');
Ahora la variable game ya tiene las propiedades para que usemos canvas, es recomendable usar canvas una vez el HTML se ha renderizado, por eso podemos usar un escuchador de eventos en el HTML para saber cuando se cargo y poder desde ese punto usar canvas.
Con este definimos el lugar donde va a iniciar nuestro trazo o figura geométrica, recibe 4 parámetros
game.fillRect(0,0,0,0);
Este nos sirve especialmente para borrar, esta función también recibe 4 parámetros y son los mismos antes mencionados, en este caso tenemos un borrado de la posición en Y y en X que le demos y los últimos 2 parámetros el grosor del borrado.
game.clearRect(0,0,50,50);
Me parece interesante las funciones que existen en canvas
, espero poder aprender mas de ellas
Existen mas métodos o funciones para “dibujar” en canvas, una de ellas es:
strokeReact(x, y, width, height);
La cual nos permite dibujar un contorno.
Acá puedes ver algunas funciones más: https://developer.mozilla.org/es/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes
Para este caso me gusta más utilizar document.readyState
document.onreadystatechange = () => {
const { readyState = "" } = document;
if (readyState === "complete") {
// Me gusta utilizar el $ siempre que hago referencia a un elemento del DOM lo considero como una buena práctica ya que facilita la lectura del código
const $CANVAS = document.querySelector("#game");
const CONTEXT = $CANVAS.getContext("2d");
CONTEXT.fillRect(0, 0, 100, 100);
// en esta parte se cargaría la función a utilizar
}
};
Lo de textAlign ta interesante el como ajusta el texto
Método fillRect( )
Aprende sobre este método de la interface Canvas Rendering Context 2D:
Resumen de WEB APIs
Ahi vamos 😃
function startGame () {
game.fillStyle = 'brown';
game.fillRect(100,25,100,100);
game.clearRect(125,50,50,50);
game.font = '16px Verdana';
game.fillStyle = "blue";
game.fillText('HOLI!', 128, 78);
}
algunos métodos de Canvas que puedes usar para crear y manipular elementos en el canvas:
getContext()
: Este método se utiliza para obtener el contexto de dibujo del canvas. El contexto de dibujo es un objeto que proporciona métodos y propiedades para dibujar en el canvas. El contexto se puede obtener en dos modos, 2D y 3D, y se puede llamar al método getContext()
con el parámetro “2d” o “webgl” para obtener el contexto de dibujo correspondiente.fillRect()
: Este método se utiliza para dibujar un rectángulo relleno en el canvas. El método toma cuatro argumentos: la posición x del rectángulo, la posición y del rectángulo, el ancho del rectángulo y la altura del rectángulo.strokeRect()
: Este método se utiliza para dibujar un rectángulo con borde en el canvas. El método toma cuatro argumentos: la posición x del rectángulo, la posición y del rectángulo, el ancho del rectángulo y la altura del rectángulo.clearRect()
: Este método se utiliza para borrar un área rectangular del canvas. El método toma cuatro argumentos: la posición x del área rectangular, la posición y del área rectangular, el ancho del área rectangular y la altura del área rectangular.beginPath()
: Este método se utiliza para comenzar una nueva ruta de dibujo en el canvas. Los métodos moveTo()
y lineTo()
se utilizan a menudo después de este método para definir la ruta de dibujo.beginPath()
: Este método se utiliza para comenzar una nueva ruta de dibujo en el canvas. Los métodos moveTo()
y lineTo()
se utilizan a menudo después de este método para definir la ruta de dibujo.moveTo()
: Este método se utiliza para mover el cursor a una posición especificada en el canvas sin dibujar.lineTo()
: Este método se utiliza para dibujar una línea desde la posición actual del cursor hasta una posición especificada en el canvas.stroke()
: Este método se utiliza para dibujar la ruta de dibujo en el canvas con un borde.fill()
: Este método se utiliza para dibujar la ruta de dibujo en el canvas rellenando la forma.arc()
: Este método se utiliza para dibujar un arco en el canvas. El método toma seis argumentos: la posición x del centro del arco, la posición y del centro del arco, el radio del arco, el ángulo inicial del arco, el ángulo final del arco y la dirección del arco (opcional).Si a alguien le sirven mis apuntes:
/* === Métodos del canvas === */
game.fillRect(0,0,100,100); /* Lugar donde inicia el trazo. */
game.clearRect(0,0,50,50); /* Sirve como borrador para alguna parte del canvas. */
game.font = "25px Verdana"; /* Tamaño que tendrá el texto del fillText y tipo de fuente.*/
game.fillStyle = "Purple"; /* Nos permite añadir estilos CSS al fillText.*/
game.textAlign = "end"; /* Posición del texto, donde comienza o donde termina respecto a la posición X y Y. */
game.fillText("Uriel", 70, 70); /* Nos permite insertar texto dentro del canvas.*/
Les comparto mis apuntes. 😄
Con fillRect() podemos crear un cuadrado que parte desde un punto $X_i$ e $Y_i$, además, le podemos agregarle un ancho y un alto.
CanvasRenderingContext2D.fillRect(Xi, Yi, WIDTH, HEIGHT);
Contienen los mismos parámetros de fillRect(), solo que clearRect() se encarga de borrar lo que hayamos dibujado con fillRect().
CanvasRenderingContext2D.clearRect(Xi, Yi, WIDTH, HEIGHT);
Con fillText() nos permite insertar un texto y para esto tenemos que darles las coordenadas de donde queremos insertar dicho texto.
CanvasRenderingContext2D.fillText('Text', X, Y, maxWidth?);
Con fillStyle, lo tratamos como un valor, nos permite agregarle estilis a nuestro texto.
One of the following:
CanvasRenderingContext2D.fillStyle = value;
Con font, lo tratamos como un valor, nos permite definir la funte de nuestro texto.
CanvasRenderingContext2D.font **= '**font-size family-font font-variant font-weight**';**
Más sobre CanvasRenderingContext2D.font.
Nos permite alinear el texto, teniendo como referencia a los ejes X e Y.
Possible values:
"left"
The text is left-aligned.
"right"
The text is right-aligned.
"center"
The text is centered.
"start"
The text is aligned at the normal start of the line (left-aligned for left-to-right locales, right-aligned for right-to-left locales).
"end"
The text is aligned at the normal end of the line (right-aligned for left-to-right locales, left-aligned for right-to-left locales).
The default value is "start"
.
Imagen de @Guadalupe Monge Barale en Platzi.
[CanvasRenderingContext2D.textAlign](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/textAlign) = value;
Esto me recuerda que dejé abandonado el proyecto de la pizarra del curso básico de programación XD. Luego de aprender más sobre canvas en este curso seguro tendré mejores ideas para agregarle a ese otro proyecto.
Ojito que antes de dibujar cualquier cosa en el canvas, se tienen que agregar los estilos correspondientes…sino no va a reconocer la figura los estilos.
NO estoy seguro, pero al parecer también importa el orden de los estilos, según el orden en que estén:
function startGame() {
game.fillStyle = 'purple';
game.fillRect(0,0,100,100);
game.font = '30px Verdana'
game.fillStyle = "green"
game.textAlign = 'start';
game.fillText('Platzi', 100, 30);
}
function startGame() {
game.fillStyle = "green"
game.fillRect(0,0,100,100);
game.font = '30px Verdana'
game.fillStyle = 'purple';
game.textAlign = 'start';
game.fillText('Platzi', 100, 30);
}
Tambien se sobreescriben
function startGame() {
game.fillRect(0,0,100,100);
// vuelve al negro por default
game.font = '30px Verdana'
game.fillStyle = 'purple';
game.fillStyle = "green"
game.textAlign = 'start';
game.fillText('Platzi', 100, 30);
}
Resumen de la clase:
Lección 2: ¿Qué es canvas en Javascript?
1 ) en el archivo game.js:
const canvas = document.querySelector(’#gmae’);
const game = canvas.getContext(‘2d’);
function startGame() {
//game.&*()
}
window.addEvenListener(‘load’, startGame);
Por si quieren agregar una imagen
const canvas = document.querySelector('#game');
const game = canvas.getContext('2d');
const pjIcon = new Image(); //Declaro la imagen
pjIcon.src = 'icons/isaac.png' //Url Imagen
window.addEventListener('load', startGame);
function startGame(){
game.drawImage(pjIcon, 10,10,100,100) //"Dibujo" imagen en canva
}
Método clearRect( )
Aprende sobre este método de la interface Canvas Rendering Context 2D:
Resumen de WEB APIs
Método fillText( )
Hola, hice un pequeño resumen acerca de Canvas, espero que les sea útil:
https://www.notion.so/Canvas-78616c26a864480d8bf3385076dad547
Por si no les aparece el autocompletado. Yo uso el “type cast” :
const canvas = /** @type {HTMLCanvasElement} */ (document.querySelector('#game'));>
and then enjoy basic Intellisense:
Lección 2: ¿Qué es canvas en Javascript? 1 ) en el archivo game.js: const canvas = document.querySelector('#game'); const game = canvas.getContext('2d'); 2) en game.js creamos una función después de las líneas relativas al canvas: function startGame() { //game.&*() } 3) Metemos la función anterior dentro de un addEventListener: window.addEvenListener('load', startGame); 4) Seguimos escribiendo dentro nuestra función startGame: function startGame (){ //game.fillRect(0,50,100,100); //game.clearRect(50,50,50,50
function startGame() {
game.fillRect(0,0,100,100);
game.clearRect(0,0,50,50);
game.clearRect(50,0,50,50);
game.clearRect(0,50,50,50);
game.clearRect(50,50,50,50);
}
CODIGO
function startGame () {
game.fillRect(50,25,200,100);
game.clearRect(100,50,100,50);
game.font = '16px Verdana';
//game.fillStyle = 'purple';
game.textAlign = 'center';
game.fillText('Anderson', 150,80);```
Buena clase
tienes que repoducir el video en 0.85x
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?