Hey texic, sé que no debería molestarte de nuevo :P. Vas a pensar (o ya lo haces) que soy un completo quejumbroso. Pero justo me doy cuenta de que la escopeta resulta ser prácticamente igual de fuerte que la metralleta, pero con menos distancia. En pocas palabras, no veo porque enfrentarme a alguien con metralleta, si yo tengo escopeta.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
137
Guerra de IAs (GIA) / Re:GIA_04 Maze Shooter
Septiembre 19, 2013, 07:13:04 AMCita de: Texic en Septiembre 19, 2013, 01:41:07 AMSobre si es pesado o no, lo dejo así. Lo que quería decir es que no es recomendable usarlo en un bucle 20 veces por step. Y sobre el error en el script, yo simplemente vi el script que posteaste, no es que tenga una versión vieja. Ahora mismo lo acabo de probar y en efecto sucede lo que dije anteriormente, quizá no me entendiste. Vuelvo a explicar.
Mh a ver no es muuuy pesado, está puesto en baja precisión y hace uso de una búsqueda dicotómica, el órden del algoritmo es de log(n) donde n sería la distancia al punto exacto dividido por 5. Dicho esto es obvio que usarlo excesivamente puede resultar lento, pero tampoco es para asustarse. La función está limitada al room en el que se encuentran, sin excepción, para eso está al principio la validación de los valores, a lo mejor tenés una versión vieja en la que no estaba, porque no siempre estuvo.
[gml]
//Esta linea está en el código que posteaste:
col1=collision_line(x,y,x+lengthdir_x(asd,i),y+lengthdir_y(asd,i),obj_solidos,1,1)
//No he leido bien como funciona el script sin embargo creo que debería de ir algo así
col1=collision_line(argument0,argument1,argument0+lengthdir_x(asd,i),argument1+lengthdir_y(asd,i),obj_solidos,1,1)
[/gml]
En pocas palabras con el script actual esto funcionaría a la perfección:
scr_raycast_ext(x, y, mouse_x, mouse_y);
Sin embargo esto daría error en caso de que tx o ty sean diferentes a tus x o y actuales.
scr_raycast_ext(tx, ty, mouse_x, mouse_y);
Sobre la mascara y el sprite todo me parece bien, aunque al final creo que solo le cambiare el color de pelo XD.
138
Guerra de IAs (GIA) / Re:GIA_04 Maze Shooter
Septiembre 19, 2013, 12:41:35 AMCita de: Mgbu en Septiembre 18, 2013, 05:09:40 PMNo del todo. A simple vista del script se pueden apreciar dos cosas.
Ahora raycast_ext funciona bien, pobre Texic, le estamos bombardeando jaja
EDIT: Ah! siempre quise tener un banner de GIA, el banner de GIA 4 se hace antes o después del concurso?
La primera que es un script MUY pesado, se debe de usar con precaución (Quizá podría ser optimizado haciendo un script para obtener el punto exacto de colisión de una linea en un cuadrado, con alguna función matemática).
Y la segunda es que a texic es le paso por alto que el raycast puede iniciar desde cualquier punto y no solo desde las coordenadas del objeto que ejecuta el script. Si no me di a entender texic, la cosa está en que estás usando las variables "x" e "y", en lugar de "argument0" y "argument1" en el script.
@ferhand:
Revisa las propiedades de la mascara de colisión en el sprite por defecto y copíalas a tu nuevo sprite, basta con que el radio del elipse de la mascara sea el mismo en tu sprite y el por defecto. En parte creo que texic debió de habernos facilitado esto y dejar la mascara en un sprite separado. Por otra parte estaría bueno saber si puedo dibujar "cualquier" cosa y ponerla como el sprite de mi personaje.
139
Guerra de IAs (GIA) / Re:GIA_04 Maze Shooter
Septiembre 16, 2013, 11:20:55 PMCita de: Texic en Septiembre 16, 2013, 11:00:08 PMMhh, interesante :-X. Un pequeño cambio de planes para mi ia :-[.
Totalmente, imaginate que son herméticos xD
140
Guerra de IAs (GIA) / Re:GIA_04 Maze Shooter
Septiembre 16, 2013, 10:51:51 PMCita de: Texic en Septiembre 16, 2013, 10:22:37 PMOk. Gracias.
Idle se refiere a que no se cumple ninguno de los otros dos estados (Disparando o Recargando), podría estar moviendose, estar quieto, estar girando, simplemente todo lo que no sea estar disparando o recargando
Las Ias no escuchan cosas que sucedan en otros rooms. Eso es normal?
141
Guerra de IAs (GIA) / Re:GIA_04 Maze Shooter
Septiembre 16, 2013, 10:16:28 PM
@Mgbu: Lo acabo de probar y es cierto no funciona.
@Texic: Disculpa me podrías facilitar que significa el estado "Idle" que se obtiene con el "scr_estado_enemigo()"?
Edit:justo escribió texic.
@Texic: Disculpa me podrías facilitar que significa el estado "Idle" que se obtiene con el "scr_estado_enemigo()"?
Edit:justo escribió texic.
142
Propuestas y soporte / Re:Añadir un tema a la sección de FAQ
Septiembre 16, 2013, 09:05:47 PM
Pues yo creo que esta bien, regular los ángulos es algo que muchos usuarios no saben hacer. Lo único es que no creo que sea necesario crear la variable angulo, si no se modifica.
Suerte.
Suerte.
143
Guerra de IAs (GIA) / Re:GIA_04 Maze Shooter
Septiembre 14, 2013, 06:45:10 PMCita de: Mgbu en Septiembre 14, 2013, 03:57:05 PMJaja, espero que no, siendo así debería estar descalificado desde el primer día.
Ahora sí, gracias! También voy a modificar el SDK para quitar ese splash que me hace perder mucho tiempo cada vez que pruebo ¿No me van a descalificar por algo asi? :P
144
Guerra de IAs (GIA) / Re:GIA_04 Maze Shooter
Septiembre 14, 2013, 05:45:26 AMCita de: Texic en Septiembre 14, 2013, 04:03:51 AMNo tienes de que disculparte, dejar bugs es la cosa más "humana?" que puede existir. Y que los testers no los encuentren también es parte de su naturaleza.
Disculpen las molestias y bugs, espero que eso no quite la diversión de la GIA, realmente no encontré los bugs probando solo, resultaron mucho más visibles con tanta gente trabajando en ello, y eso que varias personas probaron el engine para debuguear
@ferhand
El rango de visión es de 60° (30° hacia un lado y 30° hacia el otro a partir del centro) y la distancia limite es de 160 pixeles.
Te sugiero poner el numero de revisión del engine en su nombre y en el post principal. Para que no nos confundamos.
145
Guerra de IAs (GIA) / Re:GIA_04 Maze Shooter
Septiembre 13, 2013, 11:14:57 PM
Con ojas se refiere a la librería de "execute a piece of code". El script default es el que se llama "scr_init_ia" que está en el "obj_ia".
Y lo de comentar los códigos básicamente es hacer algo como esto:
[gml]//Antes:
xx=0;
yy=0;
busqueda[0]=0;
busqueda[1]=0;
//Esta sería mi hoja que va antes de ejecutar el script default[/gml]
[gml]Libreria--Exeute script: scr_init_ia--[/gml]
[gml]
//Despues:
xvel=0;
yvel=0;
slot=1;
ver=0;
//Está es mi hoja que va después del script default
[/gml]
En el caso del "obj_ia_player" no existe el "script default" por lo que la librería "Call the inherited event" toma su función y si pones un código antes de ella debes especificar que ese código va antes, lo mismo si lo pones después. Aunque en realidad lo más probable es que no tengas que poner ningún código antes.
Y lo de comentar los códigos básicamente es hacer algo como esto:
[gml]//Antes:
xx=0;
yy=0;
busqueda[0]=0;
busqueda[1]=0;
//Esta sería mi hoja que va antes de ejecutar el script default[/gml]
[gml]Libreria--Exeute script: scr_init_ia--[/gml]
[gml]
//Despues:
xvel=0;
yvel=0;
slot=1;
ver=0;
//Está es mi hoja que va después del script default
[/gml]
En el caso del "obj_ia_player" no existe el "script default" por lo que la librería "Call the inherited event" toma su función y si pones un código antes de ella debes especificar que ese código va antes, lo mismo si lo pones después. Aunque en realidad lo más probable es que no tengas que poner ningún código antes.
146
Preguntas y respuestas / Re:Duda sobre detección de colisiones (aún hay dudas xD)
Septiembre 13, 2013, 08:40:16 AMCita de: penumbra en Septiembre 12, 2013, 11:59:30 PMExactamente ;).
Lo que hace GM cuando ejecuta la instrucción es mover la instancia del objeto A al punto especificado (100, 100), revisar si hay colisión contra el objeto B (tomando en cuenta la máscara de colisión del objeto A), regresar al objeto A a su posición original y avisar si hubo colisión o no. Si hubo colisión, regresa la id de la instancia del objeto B
147
Preguntas y respuestas / Re:(Ayuda) Que un objeto se quede siempre en la misma posicion
Septiembre 13, 2013, 08:29:22 AMCita de: xaron98 en Septiembre 13, 2013, 12:34:24 AM
Tengo un problema con esto, cuando quiero que un objeto en este caso un boton de pausa se quede fijado en la room, aplico este code, pero en cambio cuando el jugador salta se mueve a la derecha un poco y despues vuelve a su posición, eso porque pasa??
salu2 ;)
Puedes aplicar ese código, pero en el caso de gm:studio crearon el evento draw GUI para estos propósitos. Solo pones lo que quieres que siga a la pantalla en el evento draw GUI y queda perfecto.
148
Guerra de IAs (GIA) / Re:GIA_04 Maze Shooter
Septiembre 13, 2013, 07:00:16 AM
Ya te envie el mp texic. La idea sería que puedas decidir la velocidad con la que caminas, y dependiendo de está tu puntería disminuya. De ese modo no tendrías que bloquear nada del engine, simplemente hacer el rango de aleatoriedad relativo a tu velocidad y de hecho quedaría genial. Implementar un sistema de cansancio podría estar bueno, pero eso si podría llegar a ser algo complicado.
Si hay alguna idea que te gusté pero no la vayas implementar por tiempo, quizá pueda ayudarte con eso que tengo algo de tiempo libre.
Si hay alguna idea que te gusté pero no la vayas implementar por tiempo, quizá pueda ayudarte con eso que tengo algo de tiempo libre.
149
Guerra de IAs (GIA) / Re:GIA_04 Maze Shooter
Septiembre 13, 2013, 06:22:11 AMCita de: Texic en Septiembre 13, 2013, 02:17:34 AMAmo los top down. Mis primeros juegos fueron top down y aún actualmente sigo con eso, llevo unos cuantos meses trabajando en top down en gm:studio (AMAZING) así que se podría decir que estoy lleno de "tips" para esto.
Ya eliminé las referencias a image_angle a ver si soluciona el error, gracias por el tip bruno, no había trabajado mucho con top-down antes
Bueno aprovecho para decirte que el objeto de la luz de los disparos no se crea en el angulo al que miras, debido a lo de image_angle. También ya que tendrás que volverlo () subir cambia el código del jugador por esté para poder recargar cuando quieras y cambiar de arma con el mouse.
[spoiler]
[gml]
//Movimiento con teclas
var dirx,diry;
dirx=keyboard_check( ord("D" ))-keyboard_check( ord("A") );
diry=keyboard_check( ord("S") )-keyboard_check( ord("W") );
if abs(dirx) or abs(diry) scr_mover( point_direction(0, 0, dirx, diry) );
//Giro con el mouse
var diff;
diff=-( (( (( scr_get_direccion()-point_direction(x, y, mouse_x, mouse_y) )mod 360) +540)mod 360)-180 );
scr_girar( median( diff , 7, -7) );
//Cambio de arma;
if keyboard_check_pressed(ord("1")){ scr_cambiar_arma(1); aSlot=1}
if keyboard_check_pressed(ord("2")){ scr_cambiar_arma(2); aSlot=2}
if (mouse_wheel_down() || mouse_wheel_up()) {aSlot=!(aSlot-1)+1; scr_cambiar_arma(aSlot);}
//Recarga manual
if ( ( keyboard_check_pressed( ord("Q") ) || mouse_check_button_pressed(mb_right) ) && scr_balas_arma(2) ) scr_recargar_arma();
//Tomar un arma
if keyboard_check_pressed( ord("E") ) {
if (scr_get_arma(2)==""){
scr_recoger_arma_piso( 2 );
}else scr_recoger_arma_piso( aSlot );
}
//Disparar
if mouse_check_button(mb_left){
if !scr_balas_arma(1){
if scr_balas_arma(2) scr_recargar_arma();
}else{
scr_disparar();
}
}
[/gml]
[/spoiler]
Vamos y vuelvo con la sugerencia de correr, correr es necesario en esté tipo de juegos, daría muchas más posibilidades a las IAs ademas de más realismo.
P.D:Quizás sea molesto, pero intento sugerir todas las cosas que pueda hoy que es primer día ya que más tarde es probable que no se puedan implementar como dice el viejo dicho: "habla ahora o calla para siempre". Te envió un mp con otras cosas que tal vez podrías implementar.
150
Guerra de IAs (GIA) / Re:GIA_04 Maze Shooter
Septiembre 13, 2013, 01:39:07 AM
Sí, el problema con las colisiones se da ya que la mascara gira (odio que gm haga eso). Creo que esto no es un problema para las IAs, por lo mismo no había dicho nada, de todos modos lo resolví en mi editable para poder moverme con fluidez mientras juego contra mi IA. Si quieren saber cómo, simplemente eliminen todas las referencias a image_angle del objeto IA y en draw ponen esto:
[gml]draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, _visdir, image_blend, image_alpha);[/gml]
También se puede hacer la mascara cuadrada.
[gml]draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, _visdir, image_blend, image_alpha);[/gml]
También se puede hacer la mascara cuadrada.