Clases

Crear un Metodo en Python

Posted on mayo 8, 2007. Filed under: Clases, Metodos, Python |

En un archivo colocamos

class Clase1:
    def hola(self):
        print “hola mundo”

en otro que este en la misma carpeta colocamos

from Classe1 import Clase1
caja = Clase1()
caja.hola()

y ya tenemos nuestro metodo

Anuncios
Leer entrada completa | Make a Comment ( 3 so far )

Función constructora de una clase

Posted on mayo 8, 2007. Filed under: Clases, Metodos, Python |

Si queremos que cuando uno cree una instancia de una clase, se ejecute una función, tendremos que utilizar __init__. Si esta funcion no tiene parametros, debemos colocarle como parametro self. Ejemplo

class Clase1:
    def __init__(self):
        print “hola mundo”

Cuando creamos una instancia de Clase1 por ejemplo

from Classe1 import Clase1
caja = Clase1()

Dará como resultado “hola mundo”

Leer entrada completa | Make a Comment ( 1 so far )

Creando una Clase en Python 1

Posted on mayo 8, 2007. Filed under: Clases, Python |

Estaba mirando como hacer una clase en Python, y me dio mucho gusto aprender como. Aca va.

class Clase1:
Ancho = 20
Alto = 40  

Aca estamos creando una clase llamada Clase1 y le damos como atributos Ancho y Alto. Este código de por si no hace absolutamente nada. Solo crea un tipo de objeto llamado Clase1, pero hasta que no se cree una instancia de este objeto no pasa nada.

Para crearla una instancia de Clase1, lo tenemos que hacer por medio de una variable. Ejemplo

caja = Clase1()

Aca ya tenemos nuestra primera instancia. Ahora vamos a comprobar si funciona bien.

print caja.Alto

El resultado es 40. Genial. Todo esto se ha hecho en el mismo archivo. Pero que pasa si queremos separar las clases como en Flash?. Creamos un nuevo archivo, que este en la misma carpeta que en el que estábamos trabajando, que lo vamos a llamar Classe1.

from Classe1 import Clase1
caja = Clase1()
print caja.Alto

Lo anterior nos va dar el mismo resultado que antes. 40 Exelente.

Leer entrada completa | Make a Comment ( 9 so far )

Asociar, vincular o heredar una clase a un MovieClip

Posted on enero 16, 2007. Filed under: Clases, Flash, Guias, Movie Clips |

La manera tradicional de asociar, vincular o hacer que un movieClip herede las propiedades de una clase que hemos hecho, es a través de la vinculación en el panel biblioteca. En el campo Clase de AS 2.0: deberíamos colocar el nombre de la clase.

Pero hay una manera mas practica y mas limpia que permite muchas mas posibilidades. Es con el siguiente código.

Object.registerClass(“miClip”, miClase);

Y ya esta. Tenemos vinculada un MovieClip a una clase. En esta clase hay que extender la clase a la clase MovieClip, de esta manera

class miClase extends MovieClip

Leer entrada completa | Make a Comment ( 6 so far )

Colisiones entre infinitos MovieClip para Juego de Disparos – Juegos Flash ActionScript

Posted on enero 12, 2007. Filed under: Array, Clases, Colisiones, Condicionales, Ejemplos Mios, Eventos, Flash, Funciones, Guias, Loop, Movie Clips, Movimiento, Objetos |

Bueno, ya conseguí hace mi primer juego de disparos aca esta el link

Aca el los archivos fuente. Aunque hay que actualizarlos con este codigo

El problema de hacer un juegos con infinitos disparos y enemigos, es como asignar los nombres para efectuar las colaciones. No sabia como hacerlo al comienzo, pero pregunte en cristalab me ayudaron y lo termine. Aca el post

El código es este
Película principal

Código Película principal :
////////// Inicio Muros
// Crea la Array que va a guardar los nombres de todas las rocas que caen
var MiArray:Array = new Array();
// Variable que nos sirve de contador para que cada nuevo clip tenga nombre nuevo
var contaMuros:Number = 0;
// Funcion que hace que apareca un nuevo Muro en la pelicula
function crearMuros() {
   // Cada vez que se ejecuta la funcion crearMuros se aumenta en 1 el contador
   contaMuros++;
   // Agrega en la ultima posicion de la array un attachMovie y queda como valor el nombre de el mouro.
   // El movieClip id_muro sirve de padre de todas las rocas. Hereda las propiedades de la Clase Muro.as
   _root.MiArray.push(_root.attachMovie("id_muro", "muro"+contaMuros, getNextHighestDepth()));
}
// Intervalo que hace que se ejecute la funcion crearMuros
var miInterval:Number = setInterval(crearMuros, 500);
////////// Fin Muros

////////// Inicio Laser
// Variable que nos sirve de contador para que cada nuevo clip tenga nombre nuevo
var contaLaser:Number = 0;
this.boton.onPress = function() {
   // Cada vez que se pulsa el boton se aumenta en 1 contaLaser
   contaLaser++;
   // Agrega un laser en la pelicula. Este larser hereda todas las propiedades de la Clase Laser.as
   _root.attachMovie("id_laser", "laser"+contaLaser, getNextHighestDepth());
};
////////// Fin Laser

////////// Inicio Explosion y Puntaje
// Funcion que hace que aparesca la explosion. Se activa cuando hay una colisión.
// Cada vez que explota  cambia el puntaje
_global.contaExplosion = 0;
function Explosion() {
   // Variable que nos sirve de contador para que cada nuevo clip tenga nombre nuevo
   contaExplosion++;
   _root.attachMovie("id_explosion", "explosion"+contaExplosion, getNextHighestDepth(), {_y:115, _x:350});
   // Hay un texto dinamico con variable llamada Puntaje.
   Puntaje = "Puntos: "+(contaExplosion*20);
}
////////// Fin Explosion y Puntaje

////////// Inicio Cronometro
// Esto hace que el juego dure 15 segundos.
var Cronometro:Number = 15;
// Funcion que se repetira cada 1000 milisegundos osea 1 segundo
function cuentaAtras() {
//   Cada vez que se ejectua esta funcion se le resta 1 a el Cronometro
   Cronometro--;
   // cuando la variable cronometro llega a 0 para los muros y va al frame 3
   if (Cronometro<0) {
      _root.gotoAndStop(3);
      clearInterval(miInterval);
   }
   // Esto hace que aparesca el tiempo en un texto dinamico
   tiempo = "Tiempo: "+Cronometro;
}
var Reloj:Number = setInterval(cuentaAtras, 1000);
////////// Fin Cronometro

Código Clase laser Laser.as  :

// Importa la clase Tween que nos va a servir para darle movimiento  a la bala
import mx.transitions.Tween;
// La Clase Laser hereda las propiedades del objeto MovieClip, para que pueda hacer todas las cosas que
// hace un MovieClip y no de error. Esta Clase la hereda el MovieClip id_laser en la película principal desde la biblioteca
class Laser extends MovieClip {
    // Funcion Constructora. Se ejecuta cuando el MovieClip que hereda esta clase se crea con un attachMovie
   function Laser() {
      // Posicion vertical
      this._y = 115;
      // Este codigo hace que el disparo se mueva.
      var miDisparo:Tween = new Tween(this, "_x", mx.transitions.easing.None.easeNone, 70, 500, 15, false);
      // variable que ayuda a que no se pierda la referencia de this en las siguientes funciones.
       var scope = this;
      // un evento de la clase Tween que ejecuta un codigo cuando el movimiento termina el recorrido.
      // Parecido a enterFrame
      miDisparo.onMotionFinished = function():Void  {
         // Cuando termina el recorrido el Movieclip, este es eliminado
         scope.removeMovieClip();
      };
      // un evento de la clase Tween que ejecuta un codigo cuando el movimiento se esta produciendo. Parecido a enterFrame
      miDisparo.onMotionChanged = function():Void  {
         // Este pedazo es la razon de este post y la parte mas dificil. Asi que veneradlo. Si lees el post entenderas este pedazo
         // Cada vez que nace un muro, este deja el registro de su nombre en la array MiArray.
         // Y cada vez que un muro es eliminado o termina su recorrido, su nombre tambien es eliminado de la array.
         // Cada vez que nace un laser, este revisa todos los muros que hay en la pelicula,
         // revisando todos los datos que hay en la array MiArray.
         for (var i:Number = 0; i<_root.MiArray.length; i++) {
            if (scope.hitTest(_root.MiArray[i])) {
               // Si choca contra algun movieClip que tenga el nombre archivado en la Array MiArray
               // de la pelicula principal, el movieClip que herede esta clase se elimina
               scope.removeMovieClip();
               // elimina tambien la roca con la que choco
               _root.MiArray[i].removeMovieClip();
               // ejecuta la funcion Explosion de la pelicula principal. Esta funcion hace que salga la explosion
               _root.Explosion();
            }
         }
      };
   }
}

Código Clase Muro Muro.as:

// Lo mismo que la Clase Laser :)
import mx.transitions.Tween;
class Muro extends MovieClip {
   public function Muro() {
      this._x = 342;
      var miDisparo:Tween = new Tween(this, "_y", mx.transitions.easing.None.easeNone, -35, 200, 25, false);
      var scope = this;
      miDisparo.onMotionFinished = function() {
         scope.removeMovieClip();
// Cuando una roca termina su recorrido, elimina el primer elemento de la array, Osea, el nombre del MovieClip que heredo esta clase
         _root.MiArray.shift();
      };
   }
}

Leer entrada completa | Make a Comment ( 17 so far )

Animación o Movimiento con código o Action Script con la clase Tween – Sabroso

Posted on diciembre 29, 2006. Filed under: Clases, Ejemplos Mios, Guias, Movie Clips, Movimiento |

Estoy aprendiendo a manejar la clase Tween que conocí y estoy aprendiendo como funciona de Tutoriales-Flash y también de la ayuda de flash. La verdad es que esta genial. Facilita mucho el trabajo para hacer una animación, y claro esta, para hacer proyectiles en un juego.

Para que sirve?
Sirve para mover gráficos solo con código

Cual es su estructura?

import mx.transitions.Tween;
var myTween:Tween = new Tween(misil1, “_x”, mx.transitions.easing.Back.easeOut, 0, 300, 4, true);

La primera linea, sirve para invocar la clase y hacer que funcione la animación. La segunda crea una instancia de la clase Tween “var myTween:Tween = new Tween”
Hay que decir que en myTween podemos colocar el nombre que queramos y que :Tween sirve para decir que tipo de dato es var myTween pero no es indispensable, pero si hace que se ejecute mas rapido.

Lo sabroso
Lo realmente que es importante es lo que esta dentro de el paréntesis, y que paso a explicar.

(misil1, “_x”, mx.transitions.easing.Back.easeOut, 0, 300, 4, true);
(1, “2”, 3-1.3-2.3-3, 4, 5, 6, 7);

1. Nombre del Clip a Animar
2. La caracteristica del clip a animar. Puede ser Posicion, Transparencia, Escala, dimensiones, Ver acá las caracterizas mas importantes
3-1. Declaración de tramite que no entiendo muy bien
3-2. Tipo de aceleración que se le va a aplicar
3-3. Como inicia la aceleración
4. Donde inicia la animación. Valor de la caracteristica (ver punto dos) que va tener al inicio. Aca la pocicion inicial de _x va ser 0
5. Donde Termina la animación
6. La duración de segundos o fotogramas
7. Si se coloca true el punto 6  va ser segundos, si se coloca false va ser fotogramas

Los valores mas importantes son Tipo de aceleración 3-2 y como inicia la aceleración 3-3 ya que con estas se le da el aspecto que tendrá la animación
Los valores que puede tener 3-2 son

  • Back
  • Bounce
  • Elastic
  • Regular
  • Strong
  • None

Los valores que puede tener 3-3 son

  • easeIn
  • easeOut
  • easeInOut
  • easeNone

Para entender mejor todo ver esta película que hice. En la pelicula esta el codigo

Código para Copiar y Pegar

import mx.transitions.Tween;
this.boton.onRelease = function (){
var myTween:Tween = new Tween(misil, "_x", mx.transitions.easing.Back.easeIn, 0, 300, 4, true);
}
-----------------
Back
Bounce
Elastic
Regular
Strong
None
-----------------
easeIn
easeOut
easeInOut
easeNone
-------------

Leer entrada completa | Make a Comment ( 5 so far )

Metodos en Clases

Posted on diciembre 27, 2006. Filed under: Clases, Flash, Metodos, Objetos |

Se crea la CLASE de objeto “Pantufla” mas el parámetro propiedad olor mas los parametros valor color cantidad

function Pantufla(olor){
this.olor=olor;
}

Se crea el METODOunMetodo“, en la CLASE de objeto “Pantufla”. La palabra clave para crear un METODO es la palabra prototype

Pantufla.prototype.unMetodo = function (saludo,despedir){
trace (saludo + “. Mi pantufla tienen un olor ” + miPantufla.olor + despedir);
}

Se crea una pantufla (INSTANCIA) llamada “mPantufla”

var miPantufla = new Pantufla (“Asqueroso”);

Se invoca el METODO descripcion en la INSTANCIA “miPantufla”

miPantufla.descripcion (“Hola”,”. Chao”);

Resultado:

Hola. Mi pantufla tienen un olor Asqueroso. Chao

Otro Ejemplo

function Pantufla(olor,valor,color,cantidad){
this.olor=olor;
this.valor=valor;
this.color=color;
this.cantidad=cantidad;
}
Pantufla.prototype.ganancia = function(){
return this.valor * this.cantidad;
}
var miPantufla = new Pantufla(“Asqueroso”,2000,”Negras”,20);
trace (miPantufla.ganancia());

resultado

40000

Leer entrada completa | Make a Comment ( None so far )

Clases Objetos Propiedades y Instancias

Posted on diciembre 27, 2006. Filed under: Clases, Flash, Guias, Objetos |

Creamos una Clase llamada Pelota y la damos unas propiedades.

function Pelota(){
this.Tamaño = “Grande”;
this.Color = “Verde”;
this.Posicion = 20;
this.Cantidad = 4;
}

Creamos una nueva instancia de la Clase Pelota, llamada botePelota

var botePelota = new Pelota();

Le decimos que nos de la propiedades la instancia botePelota

trace (“Tamaño es “+botePelota.Tamaño);
trace (“Color es “+botePelota.Color);
trace (“Posicion es “+botePelota.Posicion);
trace (“Cantidad es “+botePelota.Cantidad);

Resultado

Tamaño es Grande
Color es Verde
Posicion es 20
Cantidad es 4

También podemos hacerlo con parametros

function Pelota (Tamaño,Color,Posicion,Cantidad){
this.Tamaño = Tamaño;
this.Color = Color;
this.Posicion = Posicion;
this.Cantidad = Cantidad;
}var pelotaVerde = new Pelota(“Mediano”,”Verde”,32,1);
var pelotaBlanca = new Pelota(“Pequeña”,”Blanca”,500,5);

trace (pelotaVerde.Color);
trace (pelotaBlanca.Color);

Resultado

Verde
Blanca

Leer entrada completa | Make a Comment ( None so far )

Liked it here?
Why not try sites on the blogroll...