jueves, 25 de octubre de 2012

Animacion con blender

para esta entrda los que vamos a hacer es una pequeña animacion con blender
con 2.4
ya con la figuara que habia hecho que era la luna vamos a agregar una nave que simule que da una vuelta al rededor de ella

para esto vamos a utilizar el path de blender y vamos a hacer que tanto la camara como la nave siguan esa linea y llegue a la luna la nave















primer paso crear el path
des pues vamos a estirar el  path para establecer la ruta que va a seguir la camara y la nave 

ya que tenemos eso se va a seleccionar tanto la camara como la nave que creamos con un cubo y se moldeo un poco para que parreciera una nave espacial

avance de proyecto

 codigo de menu
import pygame
from pygame.locals import *


class Menu:
    "Representa un menú con opciones para un juego"
   
    def __init__(self, opciones):
        self.opciones = opciones
        self.font = pygame.font.Font('dejavu.ttf', 20)
        self.seleccionado = 0
        self.total = len(self.opciones)
        self.mantiene_pulsado = False

    def actualizar(self):
        """Altera el valor de 'self.seleccionado' con los direccionales."""

        k = pygame.key.get_pressed()

        if not self.mantiene_pulsado:
            if k[K_UP]:
                self.seleccionado -= 1
            elif k[K_DOWN]:
                self.seleccionado += 1
            elif k[K_RETURN]:

                # Invoca a la función asociada a la opción.
                titulo, funcion = self.opciones[self.seleccionado]
                print "Selecciona la opción '%s'." %(titulo)
                funcion()

        # procura que el cursor esté entre las opciones permitidas
        if self.seleccionado < 0:
            self.seleccionado = 0
        elif self.seleccionado > self.total - 1:
            self.seleccionado = self.total - 1

        # indica si el usuario mantiene pulsada alguna tecla.
        self.mantiene_pulsado = k[K_UP] or k[K_DOWN] or k[K_RETURN]


    def imprimir(self, screen):
        """Imprime sobre 'screen' el texto de cada opción del menú."""

        total = self.total
        indice = 0
        altura_de_opcion = 30
        x = 105
        y = 105
       
        for (titulo, funcion) in self.opciones:
            if indice == self.seleccionado:
                color = (200, 0, 0)
            else:
                color = (0, 0, 0)

            imagen = self.font.render(titulo, 1, color)
            posicion = (x, y + altura_de_opcion * indice)
            indice += 1
            screen.blit(imagen, posicion)


def comenzar_nuevo_juego():
    print " Función que muestra un nuevo juego."

def mostrar_opciones():
    print " Función que muestra otro menú de opciones."

def creditos():
    print " Función que muestra los creditos del programa."

def salir_del_programa():
    import sys
    print " Gracias por utilizar este programa."
    sys.exit(0)


if __name__ == '__main__':
   
    salir = False
    opciones = [
        ("Jugar", comenzar_nuevo_juego),
        ("Opciones", mostrar_opciones),
        ("Creditos", creditos),
        ("Salir", salir_del_programa)
        ]

    pygame.font.init()
    screen = pygame.display.set_mode((320, 240))
    fondo = pygame.image.load("fondo.png").convert()
    menu = Menu(opciones)

    while not salir:

        for e in pygame.event.get():
            if e.type == QUIT:
                salir = True

        screen.blit(fondo, (0, 0))
        menu.actualizar()
        menu.imprimir(screen)

        pygame.display.flip()
        pygame.time.delay(10)

1 comentario:

  1. Pon los código en algún syntax highlighter o como gits o algo. Lo de movimiento yo lo esperaba como código y que haya un video. Van 4 pts.

    ResponderEliminar