Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-05-2007
kakarotv5 kakarotv5 is offline
Miembro
 
Registrado: feb 2007
Posts: 162
Poder: 18
kakarotv5 Va por buen camino
GLSCENE ¿Cómo habrán hecho para meter al personaje?

He estado echando un vistazo a esto pero no se cómo habrán metido el personaje.

No creo que sea muy dificil, pues es un personaje de Quake ya hecho, sólo es meterle en la aplicación.

¿Alguna idea?

Gracias y un saludo.

EDITO: He dado un pequeño paso, ya se como se mete el personaje, basta con ir a Add object / Mesh objects / Actor esto añadirá el objeto GLActor1 a nuestra escena, le renombraremos a Guerrero, pues bien luego en el código del evento OnCreate hay que inicializar el objeto con:

Código Delphi [-]
 Guerrero.LoadFromFile('waste.md2');
 Guerrero.Material.Texture.Image.LoadFromFile('waste.jpg');
 Guerrero.Material.Texture.Disabled := False; // Si no hacemos esto no cargará la textura del guerrero

En el archivo que os he puesto podeis descargaros los archivos waste.md2 y waste.jpg.

Me queda saber como se hace para controlar al personaje, si lo sabeis decidmelo, yo de momento investigaré un poco a ver si lo saco.

EDITO2: Ya lo tengo, ya se como controlar al personaje al más puro estilo tercera persona y que ande, corra, etc.

Ya lo pondré cuando tenga tiempo, si lo quereis decídmelo y lo pongo antes.

Saludos.

Última edición por kakarotv5 fecha: 23-05-2007 a las 01:26:24.
Responder Con Cita
  #2  
Antiguo 23-05-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.285
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Hombre el código fuente del ejemplillo no estaria mal (si te es posible).

Gracias de todos modos por la explicación y los ficheros.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 24-05-2007
kakarotv5 kakarotv5 is offline
Miembro
 
Registrado: feb 2007
Posts: 162
Poder: 18
kakarotv5 Va por buen camino
Cita:
Empezado por Neftali
Hombre el código fuente del ejemplillo no estaria mal (si te es posible).

Gracias de todos modos por la explicación y los ficheros.
De nada, gracias a ti por leerme.

Bueno es muy sencillo, una vez que hayais hecho lo anterior, teneis que asociar Guerrero a un componente de tipo TGLNavigator luego sacar un objeto de tipo TComboBox, lo poneis no visible y en el evento OnCreate del formulario ponemos el siguiente código:

Código Delphi [-]
 
Guerrero.Animations.SetToStrings(ComboBox1.Items);
ComboBox1.ItemIndex := 0; // Hacemos que el personaje tenga su animación por defecto
ComboBox1Change(ComboBox1);

y en el evento OnChange del ComboBox1 ponemos el código:

Código Delphi [-]
 
 Guerrero.SwitchToAnimation(ComboBox1.Text);
 Guerrero.AnimationMode := aamLoop;

luego en el evento OnProgress del GLCadencer1 habría que meter lo que queremos que pase al pulsar las teclas, por ejemplo:

Código Delphi [-]
 if IsKeyDown(VK_UP) then
  begin
   GLNavigator1.MoveForwardl(velocidad*deltaTime); 
   if ComboBox1.ItemIndex <> 1 then
    begin
     ComboBox1.ItemIndex := 1;
     ComboBox1Change(ComboBox1);
    end
  end;

donde velocidad es una variable que almacena un número, por ejemplo el 50.

y ya rizando el rizo para que nuestro personaje tenga los pies en el suelo (que no haga como que está nadando) pondríamos las propiedades MaxAngle y MinAngle del GLNavigator1 a 0 (vienen así por defecto) y luego en el código OnPush de un botón por ejemplo cambiad la propiedad AngleLock del GLNavigator1 a true, moveros un poco antes de hacer esto ya que sino no funciona (aun no se por qué hay que hacer esta cutrez).

Bueno a grandes rasgos es esto, tendreis que tener en cuenta la cámara, direcciones y todas esas cosas que doy por supuesto que sabeis, pero vamos que cada juego es un mundo y puede que no se adapte a lo vuestro u os guste tenerlo de otra forma, yo he usado un ComboBox pero se pueden utilizar otras cosas para almacenar las animaciones (lo que os de la imaginación), lo mejor es ir tocando todo y aprender por cuenta propia.

Si teneis dudas preguntad.

¿El siguiente paso?. Intentaré crear un personaje md2 propio con algún programa como BLender, me imagino que no será moco de pavo.

Saludos.

Última edición por kakarotv5 fecha: 24-05-2007 a las 01:57:18.
Responder Con Cita
  #4  
Antiguo 25-05-2007
kakarotv5 kakarotv5 is offline
Miembro
 
Registrado: feb 2007
Posts: 162
Poder: 18
kakarotv5 Va por buen camino
De momento aqui hay un montón de modelos en formato md2 y md3 que también funcionan para GLScene.

Saludos.

Última edición por kakarotv5 fecha: 26-05-2007 a las 00:41:52.
Responder Con Cita
  #5  
Antiguo 25-05-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Cita:
Empezado por kakarotv5
De nada, gracias a ti por leerme.

Bueno es muy sencillo, una vez que hayais hecho lo anterior, teneis que asociar Guerrero a un componente de tipo TGLNavigator luego sacar un objeto de tipo TComboBox, lo poneis no visible y en el evento OnCreate del formulario ponemos el siguiente código:

[snip]

Saludos.
Por que no usas un TStringList?

Puedes hacer algo como:

Código Delphi [-]

type
  TForm1 = class(TForm)
    // Declaraciones de compoentes, eventos, etc...
  private
    GuerreroAnimations: TStringList;
    // Demás declaraciones
  end;

// Evento OnCreate
GuerreroAnimations := TStringList.Create; // GuerreroAnimation lo declaras como privado
Guerrero.Animations.SetToStrings(GuerreroAnimations);
SetAnimation(0) // Hacemos que el personaje tenga su animación por defecto

SetAnimation sería algo como:
Código Delphi [-]
procedure TForm1.SetAnimation(Index: Integer);
begin
  Guerrero.SwitchToAnimation(GuerreroAnimations[Index]);
  Guerrero.AnimationMode := aamLoop
end;

En el evento OnDestroy de la forma haces:

Código Delphi [-]
GuerreroAnimations.Free

De esta forma no tienes que usar un TComboBox...



Saludos...
Responder Con Cita
  #6  
Antiguo 26-05-2007
kakarotv5 kakarotv5 is offline
Miembro
 
Registrado: feb 2007
Posts: 162
Poder: 18
kakarotv5 Va por buen camino
Cita:
Empezado por maeyanes
Por que no usas un TStringList?
Si, bueno ya dije que se podían usar las estructuras de datos oportunas, lo vi por un foro y me pareció bien para empezar a trastear con las animaciones del personaje ya que puedes seleccionar la que quieras pinchando con el ratón en el ComboBox1 en tiempo de ejecución, pero por poder se pueden meter donde te de la imaginación.

De todas formas muchas gracias por la aportación, parece que esto le interesa a alguien más que a mi .

Saludos.
Responder Con Cita
  #7  
Antiguo 26-05-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Como se arma este escabeche, los dibujos vienen por todas partes, es como armar un rompecabezas, lo hace solo el GLSCENE ?
Que interesante esta esto, me quedo a ver que pasa, si podeis hacer algo y pasar algun codigo os lo agradeceria, aunque sea sencillo.
Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Alguien a hecho programas para PALM MRSAM Varios 2 01-02-2008 19:43:54
¿Existe algún equivalente de GLScene para Borland C++? kakarotv5 Gráficos 3 23-05-2007 16:08:54
Para los entendidos en gráficos y OpenGL en Delphi kakarotv5 Gráficos 9 22-02-2007 21:28:44
Como Guardar Un Dibujo Hecho En Un Shape FranciscoGall Gráficos 1 27-01-2006 15:55:22
Entendidos en informatica..... chutipascal Humor 3 16-06-2003 11:18:01


La franja horaria es GMT +2. Ahora son las 05:37:39.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi