Tengo un error en la linea 100 pero no entiendo el problema. Les comparto el codigo de estudio… <code>&lt;code&gt; &lt;html&gt; &lt;head...

Roberto Perez

Roberto Perez

Pregunta
studenthace 6 años

Tengo un error en la linea 100 pero no entiendo el problema. Les comparto el codigo de estudio…

<code> <html> <head> <meta charset="utf-8"> <title>Dibujando con las flechas con Mouse</title> </head> <body> <canvas width="500" height="500" id="villaplatzi"></canvas> <script> //eventos.js //Probando la funcion aletoria y la formula var z; // solita la variable var min; var max; /* apagamos la formula matematica variable for(var i = 0; i < 10; i++) { //va sin coma al final z = aleatorio(10, 20);// se declara adentro para que vuelva a llamar la interaccion document.write(z + ", "); // se suma interracion de estring para separar los numeros } document.write(z); */ // Crea el canvas y el mapa // cargando imagenes con js var vp = document.getElementById("villaplatzi"); var papel = vp.getContext("2d"); //var mapa = "Villaplatzi/villa.png"; // llamando la imagen de la villa /* // creando un objeto en js //Instancia de la clase Nueva definicion de objeto Esto es la Clase Image var fondo = new Image(); //definicion de objeto // Se carga la imagen con un evento loading //Cargando la fuente de la imagen atravez de un objeto y llamando la imagen con src fondo.src = mapa; // escuchar el evento de carga de la imagen fondo.addEventListener("load", dibujarFondo); //Aca es donde se los elementos de la imagen Escribir los elementos de la villa var vaca = new Image(); vaca.src = "Villaplatzi/vaca.png"; // llamandon la imagen de la vaca // dibujando la vaca vaca.addEventListener("load", dibujarVacas); var cerdo = new Image(); cerdo.src = "Villaplatzi/cerdo.png"; // dibujando la Cerdo cerdo.addEventListener("load", dibujarCerdos); // dibujando la Pollo var pollo = new Image(); //objeto del pollo pollo.src = "Villaplatzi/pollo.png"; pollo.addEventListener("load", dibujarPollos); Una manera de llamar los dibujos con problemas de cargar el fondo y los otros elementos No hay orden logico*/ var fondo = { //Objeto literal con sintaxis de Json url: "Villaplatzi/fondo.png", cargaOK: false }; var vaca = { //Objeto literal con sintaxis de Json url: "Villaplatzi/vaca.png", cargaOK: false }; var cerdo = { //Objeto literal con sintaxis de Json url: "Villaplatzi/cerdo.png", cargaOK: false }; var pollo = { //Objeto literal con sintaxis de Json url: "Villaplatzi/pollo.png", cargaOK: false }; //Creando otra funcion que identifica que se carge primero la villa //var fondo.imagen = new Image(); //definicion de objeto "new Image". genera error porque ya no es una variable sino un atributo fondo.imagen = new Image(); //fondo.imagen.src = mapa; //llamando el fondo con variable fondo.imagen.crcr = fondo.url; fondo.imagen.addEventListener("load", cargarFondo); vaca.objeto = new Image(); vaca.objeto.src = vaca.url; // llamandon la imagen de la vaca // dibujando la vaca vaca.addEventListener("load", cargarVacas); var cerdo = new Image(); cerdo.src = cerdo.url; // dibujando la Cerdo cerdo.addEventListener("load", cargarCerdos); // dibujando la Pollo var pollo = new Image(); //objeto del pollo pollo.src = pollo.url; pollo.addEventListener("load", cargarPollos); /* Aca es donde se dibuja pero no respeta el orden de aca para dibujar los elementos, oara dibujar el canvas function dibujarFondo(){ //dibujamos el fondo papel.drawImage(fondo, 0,0); //dibujar una imagen completa de 500px } function dibujarVacas(){ //dibujamos el vaca papel.drawImage(vaca, 10,10); //dibujar una imagen completa de 500px } function dibujarCerdos(){ //dibujamos el cerdo papel.drawImage(cerdo, 10,300); //dibujar una imagen completa de 500px } function dibujarPollos(){ //dibujamos el Pollo papel.drawImage(pollo, 300,150); //dibujar una imagen completa de 500px } */ // Otra manera de llamar en function los dibujos function cargarFondo(){ fondo.cargaOK = true; // para que siga disparando el codigo y no se pare //invocando la funcion dibujar dibujar(); //aca es cuando se dibuja } function cargarVacas(){ vaca.cargaOK = true; // para que siga disparando el codigo y no se pare dibujar(); //aca es cuando se dibuja } function cargarCerdos(){ cerdo.cargaOK = true; // para que siga disparando el codigo y no se pare dibujar(); //aca es cuando se dibuja } function cargarPollos(){ pollo.cargaOK = true; // para que siga disparando el codigo y no se pare dibujar(); //aca es cuando se dibuja } function dibujar(){ if(fondo.cargaOK == true){ // si fondo carga ok es verdadero papel.drawImage(fondo.imagen, 0,0); //dibujar una imagen completa de 500px en el canvas //cuidado con los objetos literales }if(vaca.cargaOK == true){ // si fondo carga ok es verdadero papel.drawImage(vaca.imagen, 100,100); //dibujar una imagen completa de 500px en el canvas //cuidado con los objetos literales } } function aleatorio(min, max){ // problema pequeño de numeros aleatorios var resultado; resultado = Math.floor(Math.random()*(max - min + 1)) + min; return resultado; // de vuelve el valor que la funcion matematica brinda } </script> </body> </html>
1 respuestas
para escribir tu comentario
    Daniel Alejandro Valero Salazar

    Daniel Alejandro Valero Salazar

    studenthace 6 años

    Hola Tiene el siguiente error:

    //Deben ir con espacio, en todas están igual function cargarFondo(){} functioncargarFondo(){} ... //vaca debe llevar objeto vaca.objeto.addEventListener("load", cargarVacas); ... //Recuerde q' el nombre de la imagen de fondo es tile.png //Acá esta como "objeto" , pero cuando va a la función dibujar debe estar como objeto y esta como imagen vaca.objeto = new Image(); vaca.objeto.src = vaca.url; // llamandon la imagen de la vaca // dibujando la vaca vaca.objeto.addEventListener("load", cargarVacas); if(vaca.cargaOK == true){ // si fondo carga ok es verdadero papel.drawImage(vaca.objeto, 100,100); //dibujar una imagen completa de 500px en el canvas //cuidado con los objetos literales } ... //la ruta es src no crct fondo.imagen.crcr = fondo.url;

    Con esto ya funciona!, igual le dejo el código corregido donde ya se muestra el fondo y la imagen, recuerda q' debe cambiar Villa Platzi por la ruta de las imagenes; adicional le sugiero utilizar dos archivos diferentes .html y .js

    <html> <head> <metacharset="utf-8"> <title>Dibujando con las flechas con Mouse</title> </head> <body> <canvas width="500"height="500" id="villaplatzi"></canvas> <script>//eventos.js //Probando la funcion aletoria y la formula var z; // solita la variable var min; var max; /* apagamos la formula matematica variable for(var i = 0; i < 10; i++) { //va sin coma al final z = aleatorio(10, 20);// se declara adentro para que vuelva a llamar la interaccion document.write(z + ", "); // se suma interracion de estring para separar los numeros } document.write(z); */ // Crea el canvas y el mapa // cargando imagenes con js var vp = document.getElementById("villaplatzi"); var papel = vp.getContext("2d"); var mapa = "tile.png"; // llamando la imagen de la villa /* // creando un objeto en js //Instancia de la clase Nueva definicion de objeto Esto es la Clase Image var fondo = new Image(); //definicion de objeto // Se carga la imagen con un evento loading //Cargando la fuente de la imagen atravez de un objeto y llamando la imagen con src fondo.src = mapa; // escuchar el evento de carga de la imagen fondo.addEventListener("load", dibujarFondo); //Aca es donde se los elementos de la imagen Escribir los elementos de la villa var vaca = new Image(); vaca.src = "Villaplatzi/vaca.png"; // llamandon la imagen de la vaca // dibujando la vaca vaca.addEventListener("load", dibujarVacas); var cerdo = new Image(); cerdo.src = "Villaplatzi/cerdo.png"; // dibujando la Cerdo cerdo.addEventListener("load", dibujarCerdos); // dibujando la Pollo var pollo = new Image(); //objeto del pollo pollo.src = "Villaplatzi/pollo.png"; pollo.addEventListener("load", dibujarPollos); Una manera de llamar los dibujos con problemas de cargar el fondo y los otros elementos No hay orden logico*/ var fondo = { //Objeto literal con sintaxis de Json url: "Villa Platzi/tile.png", cargaOK: false }; var vaca = { //Objeto literal con sintaxis de Json url: "Villa Platzi/vaca.png", cargaOK: false }; var cerdo = { //Objeto literal con sintaxis de Json url: "Villa Platzi/cerdo.png", cargaOK: false }; var pollo = { //Objeto literal con sintaxis de Json url: "Villa Platzi/pollo.png", cargaOK: false }; //Creando otra funcion que identifica que se carge primero la villa //var fondo.imagen = new Image(); //definicion de objeto "new Image". genera error porque ya no es una variable sino un atributo fondo.imagen = new Image(); //fondo.imagen.src = mapa; //llamando el fondo con variable fondo.imagen.src = fondo.url; fondo.imagen.addEventListener("load", cargarFondo); vaca.objeto = new Image(); vaca.objeto.src = vaca.url; // llamandon la imagen de la vaca // dibujando la vaca vaca.objeto.addEventListener("load", cargarVacas); var cerdo = new Image(); cerdo.src = cerdo.url; // dibujando la Cerdo cerdo.addEventListener("load", cargarCerdos); // dibujando la Pollo var pollo = new Image(); //objeto del pollo pollo.src = pollo.url; pollo.addEventListener("load", cargarPollos); /* Aca es donde se dibuja pero no respeta el orden de aca para dibujar los elementos, oara dibujar el canvas function dibujarFondo(){ //dibujamos el fondo papel.drawImage(fondo, 0,0); //dibujar una imagen completa de 500px } function dibujarVacas(){ //dibujamos el vaca papel.drawImage(vaca, 10,10); //dibujar una imagen completa de 500px } function dibujarCerdos(){ //dibujamos el cerdo papel.drawImage(cerdo, 10,300); //dibujar una imagen completa de 500px } function dibujarPollos(){ //dibujamos el Pollo papel.drawImage(pollo, 300,150); //dibujar una imagen completa de 500px } */ // Otra manera de llamar en function los dibujos function cargarFondo(){ fondo.cargaOK = true; // para que siga disparando el codigo y no se pare //invocando la funcion dibujar dibujar(); //aca es cuando se dibuja } function cargarVacas(){ vaca.cargaOK = true; // para que siga disparando el codigo y no se pare dibujar(); //aca es cuando se dibuja } function cargarCerdos(){ cerdo.cargaOK = true; // para que siga disparando el codigo y no se pare dibujar(); //aca es cuando se dibuja } function cargarPollos(){ pollo.cargaOK = true; // para que siga disparando el codigo y no se pare dibujar(); //aca es cuando se dibuja } function dibujar(){ if(fondo.cargaOK == true){ // si fondo carga ok es verdadero papel.drawImage(fondo.imagen, 0,0); //dibujar una imagen completa de 500px en el canvas //cuidado con los objetos literales }if(vaca.cargaOK == true){ // si fondo carga ok es verdadero papel.drawImage(vaca.objeto, 100,100); //dibujar una imagen completa de 500px en el canvas //cuidado con los objetos literales } } function aleatorio(min, max){ // problema pequeño de numeros aleatorios var resultado; resultado = Math.floor(Math.random()*(max - min + 1)) + min; return resultado; // de vuelve el valor que la funcion matematica brinda } </script> </body> </html>

    Slds,

Curso Gratis de Programación Básica

Curso Gratis de Programación Básica

Programa desde cero, domina Javascript, entiende HTML y aprende de algoritmos. <strong>Sí, desde cero</strong>. Entenderás la lógica del código, cómo piensan los programadores y cómo programar juegos, proyectos y hasta robots y electrónica. Aprender a programar no es fácil, pero Platzi lo hace efectivo.

Curso Gratis de Programación Básica
Curso Gratis de Programación Básica

Curso Gratis de Programación Básica

Programa desde cero, domina Javascript, entiende HTML y aprende de algoritmos. <strong>Sí, desde cero</strong>. Entenderás la lógica del código, cómo piensan los programadores y cómo programar juegos, proyectos y hasta robots y electrónica. Aprender a programar no es fácil, pero Platzi lo hace efectivo.