[GAME] El kilómetro de la Muerte

Proyectos en Desarrollo.

Re: [GAME] KARATEKA

Postby erkosone » Sun Jul 07, 2013 2:11 pm

Hola DIV2Lover, las animaciones son algo que no está demasiado explicado en el foro, hay temas sobre ello pero vaya.. que hay muchas formas de hacerlo.

Yo estaba encajonado con el sistema "de mierda por cierto" de hacerlo sin tablas, recuerdo que TYCO y KOZKA me insistieron mucho en su día en que la estaba cagando con los gallumbos sin bajar XD.. y bueno.. aunque suelo ser bastante cabezota y no suelo aceptar demasiado bien los consejos no hice caso y continue con la mia.. con el tiempo me he dado cuenta de que tienen mas razón que un santo.

Yo también te aconsejo que las animaciones las hagas por tablas, luego no tendrás que lamentarte haciendo reajustes tontos que a la mínima necesitarán mas reajustes y así siempre..

Que sistema usas para animar? si quieres/puedes colgar un fragmento de tu código puedo explicarte como hacerlo en el caso de que no lo estés haciendo ya claro ;)
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: [GAME] KARATEKA

Postby DIV2lover » Sun Jul 07, 2013 2:51 pm

Hola Erkos, no sé que es eso de las tablas en las animaciones, como ves en este código me baso en bucles. Me interesa mucho todo lo que puedas decirme sobre ese método que desconozco completamente. ¿Quizás te refieres a usar tablas al estilo animacion[4]=1,2,3,4,5; y luego ciclarlas en un bucle from?. quedo a la espera de saber a que te refieres!!!

Source Code (Gemix) [ Download ] [ Hide ]
  • process karateka1(spr_ini_x);
  • private
  •     spr_ini_x;
  •     int reloj_anim=0;
  •     graf_ini=12; graf_fin=15;
  •     // TIEMPO ENTRE FOTOGRAMAS
  •     tiem_ent_ftgramas=4;
  •     velocidad=3;    int i; int j;    
  •     int retroceso_Var;
  •     byte seguro_katanas=0;
  •     int x_me; int x_old;
  •    
  • begin
  •     scroll.camera=id;
  •     ctype=c_scroll;
  •    //START_SCROLL(numero d scroll,fichero, INT gráfico, INT fondo, INT región, INT flags)
  •    start_scroll(num_scroll,f_contragolpe,grafico_fondo,0,0,1);
  •    scroll[num_scroll].x0=x-170;
  •    graph=graf_ini; x=spr_ini_x; y=Y_sprites;
  •     write_int(0,10,10,0,offset distancia);
  •     write_int(0,180,10,0,offset Energia);
  •    
  •            
  •     loop  
  •           // refresca ID
  •           id_karateka=id;      
  •           escape();    
  •         //  ANIMACIÓN        
  •         if(reloj_anim>tiem_ent_ftgramas);            
  •             if(graph>=graf_fin);
  •                 graph=graf_ini;                                
  •             else  
  •                 graph+=1;                            
  •             end                    
  •             reloj_anim=0;        
  •         end            
  •         // CONTROL
  •         if(key(_left));      // LIMITAR el movimiento a la izquierda UNDER CONSTRUCTION
  •             //stop_scroll(0);
  •             //scroll[num_scroll].speed=1;
  •             flags=1;                        
  •             velocidad=-5;
  •             x+=velocidad;
  •             reloj_anim+=1;                        
  •         end
  •         /* no funciona de momento
  •         x_old=x;
  •         if(x<tope_izq);
  •             x=x_old;
  •         end */
  •         if(key(_right));
  •            flags=0;
  •            velocidad=5;
  •            reloj_anim+=1;
  •            x+=velocidad;
  •            distancia+=1;
  •            scroll[num_scroll].x0+=velocidad;
  •         end
  •        if(key(_c_ins) and retrocede<1);
  •            velocidad=0;
  •            graph=16;
  •            from i = 0 to anim_patada_T2;
  •                frame;              
  •            end
  •            graph=17;
  •            golpea_karateka=1;
  •            from i = 0 to anim_patada_T1;              
  •                frame;              
  •            end          
  •            graph=16;
  •            golpea_karateka=0;
  •            from i = 0 to anim_patada_T2;
  •                frame;              
  •            end
  •            graph=12;
  •        end  
  •        
  •        if(key(_up));
  •            graph=18;
  •            from i = 0 to 8;
  •                frame;      
  •                y-=4;        
  •            end
  •            from i = 0 to 8;
  •                frame;      
  •                y+=4;        
  •            end
  •            graph=15;
  •        end
  •        x_me=x;
  •        
  •        // Llamada a niveles para externizar el proceso de crianza de enemigos/obj...
  •        niveles(x);
  •        
  •         //Caso de ser impactado
  •         if(retrocede==1);  
  •             energia-=1;
  •             sound(FX_karateka_golpeado);  
  •             if(energia<1);
  •                 let_me_alone();
  •                 break;
  •             end        
  •             if(retroceso>0);
  •                 retroceso_Var=-6;
  •             else
  •                 retroceso_Var=6;
  •             end
  •             from j = 0 to 10;  //Efectua el retroceso
  •                 x+=retroceso_Var;
  •                 angle+=5000;
  •                 frame;
  •             end
  •             angle=0;
  •             retrocede=0;
  •         end
  •         Karateka_flags=flags; //variable global necesaria para saber en todo momento el flags de Karateka
  •        frame;    
  •        
  •     end
  • end
  •  
User avatar
DIV2lover
 
Posts: 218
Joined: Wed Apr 25, 2012 6:48 pm

Re: [GAME] KARATEKA

Postby erkosone » Sun Jul 07, 2013 3:15 pm

OMG!
Ese código mezcla todo en todos sitios jeje..
De lo que se trata es de no mezclar los eventos con las acciones, eso es básico para hacer juegos complejos, así claro que te funciona pero cuando quieras ampliarlo vas a sufrir, te lo digo por experiencia.

Haber si puedo prepararte un código de ejemplo y te lo paso.
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: [GAME] KARATEKA

Postby erkosone » Sun Jul 07, 2013 3:33 pm

Te dejo una base "simple" para que veas la idea, creo que te quedará mas claro con este ejemplo ;)
Supongo que compilará.. si te da algún fallo dime y lo miro que es de memoria..
You do not have the required permissions to view the files attached to this post.
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Aprendiendo

Postby DIV2lover » Sun Jul 07, 2013 9:01 pm

Código muy interesante e inteligible, gracias Erkos,
Lo voy a estudiar estos días, me interesa poner el código lo más ordenado y sencillo posible.
User avatar
DIV2lover
 
Posts: 218
Joined: Wed Apr 25, 2012 6:48 pm

the dude

Postby DIV2lover » Mon Jul 08, 2013 11:08 am

Una pregunta sobre ese código Erkos:
¿donde ejecutas los avances del sprite? veo que andando ejecutas un x++, pero en el salto no pones nada. Si un salto primero sube y después baja. ¿como pones esto de manifiesto y donde?.
User avatar
DIV2lover
 
Posts: 218
Joined: Wed Apr 25, 2012 6:48 pm

Re: [GAME] KARATEKA

Postby erkosone » Mon Jul 08, 2013 3:24 pm

Hola DIV2Lover, yo los juegos los programo con física, uso mi propia librería de física para juegos y ahora que va a salir ChipMunk la usaré también, aclarando eso de antemano te comento:

1 - Detectar tecla de salto, aplicar un leve impulso a la entidad, cambiar de estado.
2 - Esperar a que se suelte la tecla de salto, cambiar de estado.
3 - Esperar la colisión con el mundo, vuelta a empezar.

Tengo mucho material preparado para publicar, te pido paciencia ;) , en cuanto aparezca la nueva beta de Gemix te prometo algo que te va a gustar, un templateProject para un juego plataformas.
Casi que te aconsejaría pausar el desarrollo de tu juego, por que tras la salida de ChipMunk en Gemix la cosa va a cambiar mucho y todo lo que tienes, incluso la forma de programar que usas vas a tener que olvidarla o cambiarla, ChipMunk es la librería de física 2D mas rápida que existe, es muy eficiente y aporta ya no solo resolución de movimientos.. tiene muchas funciones que se complementan i/o mejoran las que ya tiene Gemix, incluso un extenso set de funciones para trabajar con vectores.

Así que te aconsejo dejar en pause tu juego y pasar por aquí y ponerte a estudiar: http://chipmunk-physics.net/release/Chi ... test-Docs/
Aunque no entiendas todo da igual, lo importante es saber de que dispones con la librería para poder enfocar las cosas del mejor modo posible.
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: [GAME] KARATEKA

Postby DIV2lover » Mon Jul 08, 2013 6:56 pm

OK, kedo a la espera del chipmunk ese!!
User avatar
DIV2lover
 
Posts: 218
Joined: Wed Apr 25, 2012 6:48 pm

Re: [GAME] KARATEKA

Postby DIV2lover » Fri Jul 19, 2013 8:16 pm

Nueva versión!!
User avatar
DIV2lover
 
Posts: 218
Joined: Wed Apr 25, 2012 6:48 pm

Re: [GAME] KARATEKA

Postby OskarG » Sun Jul 21, 2013 1:06 am

Hola,lo has mejorado,no cabe duda,ahora es mas adictivo.Me ha gustado mas,aunque tienes que pulir ciertas animaciones,que tenga mas variedad de acciones ,el escenario mas currado ,partes moviles....etc,sigue asi ,vas por buen camino aunque puede dar mucho mas de si.
User avatar
OskarG
 
Posts: 612
Joined: Tue Jan 12, 2010 2:12 am

PreviousNext

Return to Proyectos WIP

Who is online

Users browsing this forum: No registered users and 7 guests