function Jugador(O) { //I = I || {}; var I = {} /************ Atributos *******************/ // valores x defecto I.name = I.name; I.active = true; I.color = "#00A"; I.x = 350; I.y = 270; I.pos_x_ant = 0; I.pos_y_ant = 0; I.width = 32; I.height = 32; I.disparo = false; //si ya disparo I.playerBullets = []; I.velocidad = VELOCIDAD_JUGADOR; //mezclo los valores x defecto y los que vienen I = $.extend({}, I, O); /************ Metodos *******************/ I.disparar = function(sentido) { //console.log("pium") if(!this.disparo){ var bulletPosition = this.midpoint(); if(sentido == 'abajo') velocidad = -5 else velocidad = 5 //agrego nuevos disparos this.playerBullets.push(Bullet({ speed: velocidad, x: bulletPosition.x, y: bulletPosition.y })) this.disparo = true; }else{ //this.disparo = false; } } } ////////////////////////////////////////////////////////////////// function Bullet(I) { I.active = true; I.xVelocity = 0; I.yVelocity = -I.speed; I.width = 3; I.height = 10; I.color = "red"; I.inBounds = function() { //true si sigue dentro de la pantalla return I.x >= 0 && I.x <= PANTALLA_ANCHO && I.y >= 0 && I.y <= PANTALLA_ALTO; }; I.draw = function() { canvas.fillStyle = this.color; canvas.fillRect(this.x, this.y, this.width, this.height); }; I.update = function() { I.x += I.xVelocity; I.y += I.yVelocity; I.active = I.active && I.inBounds(); }; return I; } ////////////////////////////////////////////////////////////////// // Ejecucion del Programa //////////////////////////////////////// ////////////////////////////////////////////////////////////////// var player = Jugador({ name: 'ric', //playerName color: 'red', x: 65, y: 35 }); player.disparar('arriba') player.disparar('arriba') player.disparar('arriba') //limpiar el array de balas (sacar las viejas o fuera del escenario) player.playerBullets = player.playerBullets.filter(function(b){ return b.active == true })
martes, 10 de marzo de 2015
javascript: Objetos y Colecciones en JavaScript - Otra Manera
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario