29 de noviembre de 2009

Actionscript 3.0: Añadir máscaras a un movieClip


Las máscaras son un elemento muy útil, tanto en Photoshop como en Flash.

Añadirlas en Flash utilizando los menús del programa es muy sencillo, pero en ocasiones necesitamos aplicar estas máscaras durante la ejecución de nuestra película o bien modificar las características de las mismas. Gracias a Actionscript esto es posible.

En Actionscript 3.0 tenemos la propiedad mask para añadir una máscara a un movieClip. Funciona de la siguiente manera:

instFoto.mask = instMascara;

En este ejemplo instFoto sería la instancia de la película a la que queremos aplicar la máscara y instMascara sería la instancia de la movieClip que vamos a utilizar como máscara.

Una vez hemos aplicado la máscara podemos modificar sus propiedades de manera muy sencilla, basándome en el ejemplo anterior tendríamos que hacer lo siguiente:

instFoto.mask.x = 100; // Movemos la máscara a la posición x=100

Cómo veis la aplicación de máscaras es algo muy sencillo gracias a Actionscript 3.0.

16 de noviembre de 2009

XBOX 360: Batman, Arkham Assylum

En agosto probé la demo para PS3 de este juego y ya me pareció increíblemente bueno. Ahora han pasado los meses y me he terminado el juego completo en XBOX 360 y bueno, voy a contaros mi opinión sobre él.

Batman: Arkham Assylum (BAA), es una aventura con grandes toques de arcade. En ella deberemos pelear contra el Joker  y otra serie de supervillanos que se han hecho con el poder en la isla/psiquiátrico de Arkham.

La isla está infestada de todo tipo de enemigos, conforme avance el desarrollo del juego estos irán variando de manera acorde al avance de la historia. Para enfrentarnos a ellos dispondremos de un montón de batartilugios que iremos ampliando y mejorando conforme avanza la historia.

BAA tiene un modo de combate cuerpo a cuerpo espectacular que capta al 100% la esencia de Batman  y sus peleas contra montones de matones en las que su superioridad numérica es su peor enemigo. También hay zonas que deberemos resolver en plan modo "depredador" en las que iremos cazando a los enemigos uno, poniéndoles cada vez más histéricos. La estrategia a la hora de afrontar los diferentes escenarios será también muy importante.

Hay también un gran componente de investigación, sobre todo para encontrar los acertijos de Enigma , tendremos que observar todo con cautela y mucha paciencia.

Podremos recorrer la isla de Arkham de cabo a rabo, conforme avance la historia se irán desbloqueando nuevos escenarios, pero la isla es un todo, en plan Gran Theft Auto.

A nivel gráfico el juego utiliza el Unreal Engine  muy, muy, bien utilizado y aplicado, gracias también a unos diseños espectaculares, a unas animaciones soberbias y a unas expresiones faciales grandiosas.

A nivel sonoro el doblaje es muy bueno, casi tanto como las increíbles voces originales. A nivel musical también se sale.

En conclusión, uno de los 3 mejores juegos del año en mi opinión, sencillamente imprescindible.

Valoración: 9.5/10

12 de noviembre de 2009

¿Volverá algún día Dark Stalkers?


Darkstalkers es una de mis sagas de lucha favoritas, me gustaría ver como la rescatan y le aplican el engine de Street Fighter IV.

10 de noviembre de 2009

Miyamoto dibujando a Mario

Mario Bross dibujado por su creador :)



Fuente:Artsymedia

8 de noviembre de 2009

PHP: Un ejemplo sencillo de clase para PHP5


Hace poco publiqué aquí un ejemplo muy sencillito de una clase para PHP4.

Bueno, pues ahora os he preparado otro ejemplo de clase, pero esta vez para PHP5. ¿Hay diferencias con respecto a PHP4? Pues las hay, y bastantes, PHP5 da un soporte mucho más amplio a la POO que su antecesor.

Os pongo aquí el ejemplo:
<?php

class cliente{
    var $nombre;
    var $numero;
    var $peliculas_alquiladas;

    function __construct($nombre,$numero){
       $this->nombre=$nombre;
       $this->numero=$numero;
       $this->peliculas_alquiladas=array();
      
       echo "Nuevo cliente: ".$nombre."
";
    }

    function dame_numero(){
       return $this->numero;
    }
   
    function dame_nombre(){
       return $this->nombre;
    }
}

//instanciamos un par de objetos cliente
$cliente1 = new cliente("Pepe", 1);
$cliente2 = new cliente("Roberto", 564);
$cliente3 = new cliente("Gabriel", 146);
$cliente4 = new cliente("Sergio", 225);

//mostramos el numero de cada cliente creado
echo "El identificador del cliente ".$cliente1->dame_nombre()." es: " . $cliente1->dame_numero() ."
";
echo "El identificador del cliente ".$cliente2->dame_nombre()." es: " . $cliente2->dame_numero() ."
";
echo "El identificador del cliente ".$cliente3->dame_nombre()." es: " . $cliente3->dame_numero() ."
";
echo "El identificador del cliente ".$cliente4->dame_nombre()." es: " . $cliente4->dame_numero() ."
";

?>


Cómo veis en esta clase de ejemplo disponemos de un constructor, cosa que no había de manera nativa en PHP4, podíamos emularlo, pero no es lo mismo.

El constructor de la clase es un método que se ejecuta cuando se instancia esta en un objeto (en el ejemplo cuando damos valor a $cliente1 por ejemplo). Naturalmente si hay un constructor también hay un destructor. Afortunadamente -o no- en PHP los objetos se destruyen cuando termina la ejecución así que no nos toca destruirlos manualmente para liberar memoria, aunque es una buena práctica hacerlo para optimizar el gasto de la máquina.

6 de noviembre de 2009

Trailer de la peli de Prince of Persia



¡Pero qué buena pinta que tiene! :)

Videojuegos: ¿Cuales son las sagas más vendidas de Capcom?

Capcom es una de las grandes, lleva decenios publicando videojuegos y un puñado de ellos son verdaderas joyas. La gran pregunta es, ¿Qué saga ha vendido más? Pues en su página oficial tienen la respuesta

Os pongo aquí el listado:

5 de noviembre de 2009

Wordpress: Obtener los datos de un post fuera del loop


Muchas veces necesitamos obtener los datos de un post determinado diferente del post con el que estamos trabajando en el famoso loop de Wordpress.

Conforme dominas el desarrollo de Wordpress descubres muchas maneras de acceder a esos posts ajenos al loop. Os voy a mostrar uno de los métodos más sencillos para conseguirlo, la función get_post([identificador del post]).

¿Cómo funciona? Pues muy fácil, cargamos en una variable el resultado de la función get_post dándole como valor la id del post al que queremos acceder.

Aquí va un ejemplo en el que obtenemos los datos del post nº12:
$post_id_12 get_post(12);

Los datos obtenidos tiene formato de array, así, por ejemplo, para acceder al título del post en este ejemplo habría que hacer lo siguiente:
$titulo $post_id_12->post_title; 
echo("Título:".$post_id_12->post_title);

Estas son las propiedades más útiles de este array:
  • ID
  • post_date
  • post_content
  • post_title
  • post_excerpt
Hay bastantes, la lista completa la podéis ver en esta página de Wordpress.

¿Pegas de este sistema? Pues una muy grande, no permite obtener las categorías, si utilizamos el campo $post_category siempre devuelve 0 :(




2 de noviembre de 2009

ZX Spectrum: Firelord

En 1986 Hewson Consultants Ltd. lanzó esta colorista aventura para ZX Spectrum .

Firelord  consiste en manejar a un aventurero que debe recorrer todo el mapa buscando 4 hechizos mágicos. A lo largo del mismo nos encontraremos con todo tipo de enemigos que nos quitarán energía con su sólo contacto. Podremos eliminarnos si tenemos energía mágica suficiente y el hechizo adecuado.

De vez en cuando nos toparemos con fuegos que o bien están fijos o bien aparecen y desaparecen. Su sólo contacto nos quitará una vida.

A lo largo del juego hay numerosas tiendas en las que podemos entrar para comprar información, vidas, hechizos, etc... Podremos o bien pagar con objetos que hemos recogido o bien podremos intentar robar sin que nos pillen (cosa que a mí siempre me sale mal).



Gráficamente el juego recuerda mucho a Sabre Wulf , tiene el mismo estilo colorista y simpático, cumple muy bien. A nivel sonoro el juego tiene una bonita melodía de presentación y unos efectos simples pero eficaces.

Criticarle sólo que es un juego en el que te terminas sintiendo un poco "perdido" yendo de allá para acá sin saber muy bien lo que tienes que hacer (por lo menos en las primeras partidas).

Valoración: 6.5/10