Python R2


Traduccion de la Guia de programación de Cocos2D

Posted in Python por Arturo Elias Antón en 10 diciembre 2008
Tags: , , , ,

Guia de programación

Cocos2d es un framework para el desarrollo de juegos en 2D, presentaciones y otras aplicaciones graficas interactivas.

Cocos2d simplifica el desarrollo de juegos en las siguientes áreas:

Control de Flujo (Flow Control): manejo de una forma fácil el control de flujo entre las diferentes escenas.

  • Sprites: Rápido y fácil.
  • Acciones (Actions): Solo le decimos a los sprites lo que quieremos que haga. Acciones como mover, rotar, escalar, etc
  • Efectos (Effect): Efectos como waves (ondas), twirl (giros), lens(lentes) y muchos mas
  • Mapas de mosaicos (Tiled maps): soportes a tiled maps rectangulares y a hexagonales
  • Transiciones (Transitions): Moverse entre escena y escena con estilo
  • Menús: Clases ya desarrolladas para la creación de menús.
  • Presentación de Texto (Text rendering)
  • Documentación: Guia de programación + Referencia de API + Lotes de pruebas sencillas que muestran cómo usarlo
  • Intérprete embebido de Python: para debugging.
  • Licencia BSD: Solo usar.
  • Basado en Pyglet: No tiene dependencias externas.
  • Basado en OpenGL: Aceleración de Hardward

Instalación

  1. Instalar python 2.4 con ctypes o con python 2.5.

2.Instalar pyglet 1.1beta o superior desde pyglet’s homepage . Si usted quiere usar pyglet 1.0, use cocos2d v0.1.x instead. 3.Por último, elegir una de las siguientes opciones:

  • Si usted quiere construir y empaquetar, use el setup.py que viene con la distribución e instale el paquete usando easy_install.
  • Copia “cocos” a tu proyecto:
  •         $ cp -r cocos $PROJECT_HOME 
  • Incluir en cocos en su PYTHONPATH:
  •         $ export PYTHONPATH=$PYTHONPATH:/path/to/cocos 
  • O insertar cocos en sys.path:
  • 
    import sys
              sys.path.insert(0, PATH_TO_COCOS))

Escribir una aplicación en cocos2d.

Los primeros pasos con una nueva biblioteca o framework puede ser intimidante, especialmente cuando se presenta con una gran cantidad de material de referencia para leer. En este capítulo se da una muy rápida introducción a cocos2d sin cubrir ninguno de los detalles.

  • Hola Mundo.
  • Hola Acciones
  • Manejo de eventos.
  • ¿Cuando a la siguiente?

Hola Mundo.

Vamos a comenzar con “Hello, World”. Este programa se abrirá una ventana con un texto en ella y esperar a ser cerrado. Usted puede encontrar el script completo en samples/hello_world.py.

Para empezar importamos el modulo de cocos

import cocos

Creamos una clase que herede de Layer y definimos la logica del programa de la suigiente manera:

class HelloWorld(cocos.layer.Layer):

Siempre llamamos a super en el constructor:

def __init__(self):
    super( HelloWorld, self ).__init__()

Para visualizar el texto, vamos a crear un label. Los argumentos se utilizan para fijar texto, el tipo de letra, la posición y la alineación del label:

label = cocos.text.Label('Hello, world',
                          font_name='Times New Roman',
                          font_size=32,
                          anchor_x='center', anchor_y='center')

El label se posisionara sobre el centro de la escena:

label.position = 320,240

El Label es una subclase de CocosNode? este puede ser añadido como hijo. Todos los objetos CocosNode? saben como renderizarse a si mismo, realizar las acciones y transformaciones. Para agregar como una capa del hijo, utilice el método CocosNode?.add:

self.add( label )

Luego definomos la classe HelloWorld?, necesitaremos inicializar y crear una ventana. Para ello inicializaremos un Director:

cocos.director.director.init()

a continuación creamos una instancia de HelloWorld?:

hello_layer = HelloWorld ()

a continuación creamos una escena que contenga el layer HelloWorld? con un hijo:

main_scene = cocos.scene.Scene (hello_layer)

y para finalizar vamos a correr la escena:

cocos.director.director.run (main_scene)

Un manera más corta para escribir los últimos 3 estados es la siguiente:

cocos.director.director.run( cocos.scene.Scene( HelloWorld() ) )

Hola Acciones

Este ejemplo es muy similar al ejemplo #1 con la diferencia que este nos introduce en el mundo de las acciones. Una accion es como una orden. Usted le pude decir que ejecute una acción a cualquier objeto CocosNode?. Usted puede buscar este programa en archivo samples/hello_world_actions.py Al igual que el ejemplo anterior importamos el modulo de cocos2d:

import cocos

si usted va a usar varias acciones, puede importar todas las acciones disponible en el namespace con la siguiente linea.

from cocos.actions import *

Aca esta una sublcalse ColorLayer? que tiene fondo de color. a continuación hacemos una invocación a super () con color azul

class HelloWorld(cocos.layer.ColorLayer):
    def __init__(self):
        # blueish color
        super( HelloWorld, self ).__init__( 64,64,224,255)

como en el ejemplo anterior vamos a crear y agregar un label:

label = cocos.text.Label('Hello, World!',
    font_name='Times New Roman',
    font_size=32,
    halign='center', valign='center')

# set the label in the center of the screen
label.position = 320,240
self.add( label )

En este ejemplo también vamos a crear y agregar un sprite como hijo. En cocos2d los

sprites son objetos Sprite.
sprite = cocos.sprite.Sprite('grossini.png')

Ponemos el sprite en el centro de la pantalla. La posision por defecto es (0,0):

sprite.position = 320,240

Hemos establecido el atributo escala en 3. Esto significa que nuestro sprite será 3 veces más grande. La escala por defecto es 1.

sprite.scale = 3

Agrgamos al sprite como hijo pero sobre Agregamos el sprite como hijo, pero sobre el label seteando el z-value en 1, ya que el z-valor es 0:

self.add( sprite, z=1 )

Creamos una accion ScaleBy?. Se escala en 3 veces el objeto que la ejecuta, en 2 segundos: scale = ScaleBy?(3, duration=2) Le decimos al lebel:

  • escala 3 veces en 2 segundos
  • entonces a reducir 3 veces en 2 segundos
  • y repetí estas dos acciones por siempre.

Observe que el operador ‘+’ es la secuencia de acción:

label.do( Repeat( scale + Reverse( scale) ) )

Y le decimos el sprite a hacer las mismas acciones pero a partir de la “escala de nuevo la acción:

sprite.do( Repeat( Reverse(scale) + scale ) )

Luego inicializamos el director como en el ejemplo anterior.

cocos.director.director.init()
hello_layer = HelloWorld ()

Y … le decimos a la capa (sí, todos los objetos CocosNode? puede ejecutar acciones) para ejecutar una acción RotateBy? de 360 grados en 10 segundos:

hello_layer.do( RotateBy(360, duration=10) )

Por último, iniciar la ejecución:

# A scene that contains the layer hello_layer
main_scene = cocos.scene.Scene (hello_layer)

# And now, start the application, starting with main_scene
cocos.director.director.run (main_scene)

links

Espero sus correcciones y sus comentarios desde ya muchas gracias.
Estoy preparando la parte de eventos 🙂

Anuncios

4 comentarios to 'Traduccion de la Guia de programación de Cocos2D'

Subscribe to comments with RSS o TrackBack to 'Traduccion de la Guia de programación de Cocos2D'.

  1. shakaran said,

    Muy didáctico y siempre se agradecen mucho las traducciones.

    Estaría bien que en el wiki de cocos pudieras incluir una traducción en español (yo lo hice con Wine y esta dando buen resultado).

    Saludos

  2. Arturo Elias Anton said,

    Hola Shakaran gracias por tu comentario. pero en la wiki de cocos2d esta esta misma traduccion http://code.google.com/p/los-cocos/wiki/GuiaDeProgramacion

    🙂 hay estan los link

    Saludos a y otra cosa muy bueno tu blog !!!!!!!!!!!!!!

  3. shakaran said,

    Upss, error mío, guarde los enlaces en marcadores y no los visite antes XD.

    Gracias por lo del blog.

    Saludos.


  4. […] Traduccion de la Guia de programación de Cocos2D por BinSD, […]


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: