Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Johann

Páginas: [1] 2 3
1
Preguntas y respuestas / Re:Dibujar texto sin que se salga del rectangulo
« en: Diciembre 10, 2018, 11:14:07 pm »
De hecho, estuve pensando, si todavía quieres utilizar surfaces, creo que tengo una manera mucho mas facil de hacerlo.

Simplemente creas una surface con el tamaño del rectangulo y dibujas el texto encima, si el texto se sale de la surface simplemente no se dibujará.

Luego bastaría simplemente dibujar la surface.
Te dejo un ejemplo adjunto XD

Los siguientes usuarios dieron las gracias a este tema: Johann

2
Preguntas y respuestas / Re:Dibujar texto sin que se salga del rectangulo
« en: Diciembre 10, 2018, 05:18:13 am »
Te dejo los pasos explicados, de como lo haría yo:
Bueno, inicialmente (1) deberías crear una surface más grande que el texto, lo suficiente para cubrir el texto que se sale por los bordes.

(2) Tendrias que quitar la parte del recuadro para obtener el negativo(3). Esto se hace facilmente con:

draw_set_blend_mode(bm_subtract)
draw_roundrect_ext(...)

Luego deberías crear una nueva surface (4) donde dibujarías el texto normal.
Y repetirías el paso de recorte(5):
draw_set_blend_mode(bm_subtract)
draw_surface(surface_roja, 0, 0)

(6)Fin

Bueno, como dicen en las peliculas: "en mi cabeza sonaba bien".
Los siguientes usuarios dieron las gracias a este tema: Johann

3
Propuestas y soporte / Re:Propuesta mas que pregunta!
« en: Diciembre 06, 2018, 07:48:30 am »
Por lo que medio entendi con el tema editado (lo de medio entender esta vez no se si sea por falta de mejorar mas el tema o por mi incapacidad de atencion :v) parece que lo que quieres es que la misma comunidad se apoye tanto ofreciendo ayuda en recursos para crear los juegos como conocimiento para lograrlo.

Pues de hecho para eso esta hecho este foro, para compartir conocimiento y compartir conocimientos, para eso esta las seccion de ayuda, para pedir ayuda sobre detalles especificos de programacion y ver como otras personas logran algo con codigo, las secciones de desarrollo para recibir feedback de nuestros proyectos y la seccion de recursos e industria para discutir sobre otros temas que harian nuestros juegos mejores.
Los siguientes usuarios dieron las gracias a este tema: Johann

4
Preguntas y respuestas / Re:Script que funciona a veces
« en: Noviembre 30, 2018, 06:44:03 pm »
Intenta modificar el script utilizando colas de prioridad, a ver si hay alguna mejora.
///Algún evento que se ejecute una sola vez
globalvar sorted_list;
sorted_list = ds_priority_create();
///e_sort(list)
var N = ds_list_size(argument0);
var i, inst;

//Primer ciclo para añadir los elementos a la cola
for(i = 0; i < N; i++) {
    inst = argument0[| i];
    ds_priority_add( sorted_list, inst, inst.valor);
}
ds_list_clear(argument0);

//Segundo ciclo para obtenerlos organizados
for(i = 0; i < N; i++) {
    inst = ds_priority_delete_min(sorted_list);
    ds_list_add(argument0, inst);
}

Si sigue habiendo errores, sería bueno que imprimeras el contenido de las estructuras de datos (json_encode()) para ver si hay problemas con la información.

También ayudaría ver el contenido del script sintesis2().
Los siguientes usuarios dieron las gracias a este tema: Johann

5
Preguntas y respuestas / Re:error de sentencia While en Evento Step
« en: Noviembre 27, 2018, 09:29:17 pm »
Recuerda colocar en tu post el ícono de la versión de GM que estés utilizando.
Los siguientes usuarios dieron las gracias a este tema: Johann

6
General / Re:Hablemos de lenguajes
« en: Noviembre 24, 2018, 06:04:25 pm »
Yo no sé qué tan malo sea centrar tu carrera de desarrollador en GM... pero sí creo que lo importante, más que el lenguaje en sí, es la capacidad de hacer cosas y los conocimientos.

No se trata tanto de... saber UN lenguaje en sí. Sino de saber programar en general, tener esos conocimientos para poder desenvolverte ante cualquier lenguaje que te pongan delante.

Luego, se valora mucho el hecho de haber HECHO cosas. Poder decir "sí, he hecho esto y esto". Da igual que estén hechas con un lenguaje menos o más nosequé... eso muestra tiempo, esfuerzo, dedicación, ser autodidacta, estar motivado e ir en serio en estos temas. Yo por eso estuve haciendo un juego con javascript, pero por X temas ahora estoy reintentando en GM otra vez, reuniendo todos mis años de conocimiento para hacer algo grande de una vez, que me jode mucho no haber acabado nunca nada xD (Acabé Four Elements pero eso es de mi época más noob). El hecho de poder tener cosillas acabadas y decir "esto es mío", por lo que yo entiendo vale mucho de cara al futuro... (soy un desgraciao que no acaba ná xD)

Si alguien puede contar o expandir esto que digo, estaría bien, ya que es lo que yo creo y tampoco lo tengo claro. En mis entrevistas de curro yo siempre dije que había hecho proyectos en grupo varios, sin dar detalles ni pruebas y... si me contrataron es por algo. Imagina si puedo decir y enseñar cosas concretas que he hecho y de las que estoy orgulloso xD
Los siguientes usuarios dieron las gracias a este tema: Johann

7
Preguntas y respuestas / [SOLUCIONADO] Direction con mando Xbox
« en: Noviembre 20, 2018, 04:00:49 pm »
Buenas tardes a tod@s,
  Primeramente agradecer a todo el que hace posible esta gran comunidad, pues me está ayundo mucho en el desarrollo de mi juego.

  Tengo un pequeño problema, estoy haciendo un juego con vista top-down y uso el pad de Xbox para mover al personaje. Uso el siguiente código para poder controlarlo y que gire y avance dependiendo de la posición del eje x e y del mando:

Spoiler
if (input = "Xbox")
{
    gamepad_set_axis_deadzone(0, 0.5);
    var haxis = gamepad_axis_value(0, gp_axislh);
    var vaxis = gamepad_axis_value(0, gp_axislv);
    direction = point_direction(0, 0, haxis, vaxis);
    velocidad = point_distance(0 ,0, haxis, vaxis) * velocidadMax;

    image_angle = direction;
    speed = velocidad;
   
    //Control de los pies
    idPies.speed = speed;
    idPies.image_angle = image_angle;
    idPies.direction = direction;
}

El problema viene cuando suelto el pad, el sprite en vez de quedarse mirando en la última dirección, vuelve a la posición de 0 grados. Agradecería que me hechasen una mano.
Los siguientes usuarios dieron las gracias a este tema: Johann

9
Preguntas y respuestas / Re:determinar cuadrante segun posicion del mouse
« en: Noviembre 18, 2018, 02:26:01 am »
No necesitas utilizar ciclos anidados. Basta con un cálculo sencillo para saber en qué celda está el mouse:
///EVENTO MOUSE PRESSED O ALGO ASÍ XD

//Las coordenadas en la habitación en las que se dibuja el inventario
//(ezquina superior izquieda del inventario)
var xinit, yinit; //Asígnales el valor que sea necesario

//Tamaño de las celdas
var cellw, cellh; //Asígnales el valor que sea necesario

//Cantidad de celdas (horizontal y verticalmente)
var cellwnum, cellhnum;  //Asígnales el valor que sea necesario

//Tamaño total del inventario
var gridw = cellwnum * cellw;
var gridh = cellhnum * cellh;

//Posición del mouse con respecto al inventario
var mousedx = mouse_x - xinit;
var mousedy = mouse_y - yinit;

//Comprobar que el mouse esté dentro del inventario
if point_in_rectangle(mousedx, mousedy, 0, 0, gridw, gridh) {
    //Convertir las coordenadas en la pantalla a coordenadas dentro el inventario
    //(coordenadas de celda)
    mousedx = floor( mousedx / cellw );
    mousedy = floor( mousedy / cellh );

    //Esas dos variables ahora indican la celda en la que se hizo clic
}
Los siguientes usuarios dieron las gracias a este tema: Johann

10
Preguntas y respuestas / Re:Ayuda con compilacion Apk Game maker
« en: Noviembre 17, 2018, 09:16:23 pm »
1- Verifica que el archivo del keystore efectivamente este en la ruta que sale ahi.
2- Prueba poner en las configs todo en minuscula sin numeros, puntos, espacios ni ningun otro simbolo que no sean letras minusculas.
3 - No andaras usando el clasico master collection piratilla? De ser asi olvidate por completo de android y dedicate a windows porque no lo vas a lograr xDD
Los siguientes usuarios dieron las gracias a este tema: Johann

11
Preguntas y respuestas / Re:color de efecto no cuadra
« en: Noviembre 17, 2018, 03:09:19 am »
espera, ¿queeeeeeeé? xDdXd.

A ver, que no panda el cúnico. Parece que a los de YoYo les ha dado por cambiar el funcionamiento de los colores en esa función a último momento, ni idea de por qué.

El "bug" sucede porque ahora los colores (por lo menos con effect_create_above, no he probado las demás ni quiero) se leen completamente al revés. Quiero decir, mientras que antes los tres bytes de un número entero se leían de izquierda a derecha como azul, verde y rojo, ahora es rojo, verde y azul.

Oséase, que si antes el rojo era 255 (00000000 00000000 11111111 en binario), ahora debería ser 16711680‬ (11111111 00000000 00000000).

Sinceramente, gran tontería me parece este cambio tan incómodo, pero es la última versión (1.4.9999) así que toca resignarnos xd.
Los siguientes usuarios dieron las gracias a este tema: Johann

12
Utiliza este script:
http://www.comunidadgm.org/desarrollo-de-scripts/obtener-posicion-de-adjuntado/
Los siguientes usuarios dieron las gracias a este tema: Johann

13
General / Re:Fenris78 ¿como está?
« en: Noviembre 07, 2018, 07:12:13 pm »
¡Salud!

Me alegra mucho que haya quien me recuerde tan gratamente.

Por curiosidad, me he puesto a contar los años que me llevé administrando la web... y fueron ocho nada menos. ¡Los mismos años que tiene ahora mi Diana!

La verdad es que hace un tiempo ya que me "retiré" del servicio activo para quedarme como administrador "latente". Sin embargo, me gustaría aprovechar el hilo para reiterar el mensaje que os transmití en su día: aunque no me veáis todos los días, os sigo deseando lo mejor. Dejé una comunidad capaz de sostenerse por si misma, pero seguiré estando para vosotros en casos de extrema necesidad, como ha pasado alguna que otra vez con los temas del hosting y sucedáneos.

Con respecto a cómo estoy, que hago y que consejos os puedo dar... pues casi que no se ni por dónde empezar. En general, mi vida e intereses han cambiado mucho.

Tuve otra hija y dejé una carrera profesional de 15 años en las Telecomunicaciones para formarme en otras disciplinas (técnico de autómatas), cuidar de mis retoños y opositar por un trabajo mas tranquilo. Económicamente no vivo mi época mas voyante, pero si la más reconfortante.

Una cosa que no ha cambiado en nada, ha sido mi amor por los videojuegos. Sin embargo, el tipo de juegos que hago y las plataformas a las que van dirigidos si que han cambiado bastante. No he perdido el interés por el PC, pero es cierto que se ha visto eclipsado por otras plataformas. Desde que os "dejé" he estado ampliado mi "target" a Navegadores y Dispositivos Móviles. Desde el Oniric también hemos hecho algo de trabajo (siempre renumerado) en áreas menos lúdicas, como el diseño web y desarrollo de aplicaciones para terceros. Puestos a diversificar ¡hasta hemos comercializado nuestro propio juego de mesa!

Por otra parte, me he convertido en un gran aficionado a la informática clásica... hasta el punto de que llevo sacando en torno a 2 juegos por año para plataformas de 8 bits desde el 2013. Hasta este año, me he centrado mucho en el MSX, pero a partir de este próximo 2019 comenzaremos a ampliar nuestra producción, a otros sistemas como NES, Intellivision y GameBoy.

Con respecto a las plataformas clásicas, es curioso, pero he encontrado un pequeño nicho de mercado, que si bien no nos da de comer, si que me permite obtener beneficios suficientes como para ir mejorando nuestra capacidad económica como sello. En la actualidad, Oniric Factor es sustentable en cuanto a mantenimiento, compra de equipos, viajes nacionales, exposición en ferias, contratación de pequeños trabajos freelance... etc. Pero sobre todo, hemos creado un montón de nuevas amistades y contactos. ¡Eso si que es importante!  :)

A día de hoy, nuestras creaciones están presentes en dos libros sobre videojuegos clásicos, varios artículos de prensa, colaboramos en algún que otro podcast, nos llaman con cierta frecuencia para impartir alguna que otra charla o entrevista... quitando el "pequeño detalle" de que aún no nos da para dedicarnos en exclusiva al desarrollo para pagar nuestras hipotecas, os diría que hemos logrado prácticamente todo lo que buscábamos al crear el sello.

Con respecto al tema consejos... no me considero un gurú, aunque creo que podría ser mas útil si me hacéis consultas concretas.

Algunos consejos que se me ocurren respecto al desarrollo, así en general:

En primer lugar os diría que no le hicierais ascos a ningún lenguaje: aunque en el futuro quieras trabajar con lenguajes mas potentes, las herramientas de desarrollo rápido como GameMaker son muy útiles, no solo para hacer videojuegos 2D de calidad, sino que también lo son para desarrollar "maquetas" sobre las que vayas a probar un diseño o una mecánica. Yo personalmente la utilizo también para crear mis propias herramientas de desarrollo. Aprender Unity, Stencyl, Godot, Construct, Monkey... también puede resultar igualmente útil.

Simplemente piensa en que quieres hacer y usa los medios que necesites. Si por ejemplo quieres ir cogiendo tablas como programador, también es bueno usar Unity y programar en C# por ejemplo, aunque no te vayas a dedicar al 3D. Conocer diferentes entornos, también te dará conocimientos sobre como se crea un motor, cosa que también te será de utilidad en el futuro a la hora de hacer tu propio código mas modular y versátil.

Tampoco le cojáis miedo a programar en lenguajes "formales". Es cierto que Game Maker es fácil y rápido, pero también te enseña a pensar y ese aprendizaje os servirá para cualquier proyecto. Si lleváis tiempo haciendo juegos, os puede llegar a sorprender cuanto "gurú" de la programación está completamente perdido a la hora de hacer un videojuego. Muchos conceptos no van a ser nuevos para vosotros y la forma de afrontar los problemas seguirá siendo la misma, ya sea en GML o ASM: los problemas grandes, se solucionan dividiéndolos en subtareas mas simples y abarcables.

En segundo lugar, os diría que he aprendido muchísimo sobre diseño y optimización de recursos al programar para sistemas de 8 bits. Os aconsejaría que si tenéis la oportunidad de probarlo, lo hagáis. En la actualidad, el límite en las plataformas modernas está en el propio desarrollador: trabajamos sobre una enorme caja negra cuyo funcionamiento interno desconocemos realmente y nos centramos únicamente en el proyecto. Esto puede parecer bueno en principio, pero es un arma de doble filo que se puede volver en tu contra a la hora de dimensionar un proyecto. Por el contrario, cuando trabajas con micro ordenadores, la limitación te la pone la máquina. El trabajo es a bajo nivel y te exige desde un principio que hagas un diseño abarcable. Esto fomenta la creación de mecánicas muy interesantes y la optimización del código, en base a un conocimiento directo del hardware sobre el que trabajas. También veréis como muchas de las técnicas que se usan en micro ordenadores son traspasables a sistemas mas modernos.

Bueno... así a bote pronto es lo que se me ocurre contaros, en realidad se me ocurren mas cosillas, pero no os quiero aburrir y tampoco es que vaya sobrado de tiempo. Para cualquier cosa que me queráis comentar, ya sabéis como contactarme.

¡Gracias por recordarme makeros, me habéis alegrado el día!  8)




Los siguientes usuarios dieron las gracias a este tema: Johann

14
General / Fenris78 ¿como está?
« en: Noviembre 06, 2018, 05:19:39 pm »
Hola, gusto en saludarle.



Ruerdo en el pasado cuando el administrador Fenris78, se pasaba por estos pasillos con mucha frecuencia con su carácter ejemplar, poniendo mucho orden y disciplina. Quisiera saber como está y que consejos puede darnos a todos los que aún usamos gamemaker como nuestro principal motor de desarrollo. Estoy admirado por lo que ha logrado su firma "Oniric Factor".

El siguiente video expone una serie de video juegos creados por Oniric Factor
https://www.youtube.com/watch?v=sc2VlGqL5Bo

Los invito a agradecerle todos los reglamentos que ha publicado para esta comunidad y darle un like para ver si algún día se levanta y nos frece algunas palabras de aliento y revolución.  ;)


Es hora de entregarle nuestro bolígrafo.

Cabe mencionar que todos los administradores de esta comunidad son admirables por su conducta y temperamento al enfrentar los problemas de la comunidad y representan un modelo a seguir en ética y respeto. Muchas gracias a todos.
Los siguientes usuarios dieron las gracias a este tema: Johann

15
Preguntas y respuestas / Re:Sobre instance_nearest
« en: Octubre 26, 2018, 12:39:47 pm »
El código funciona perfectamente!!

El causante del error era este código:
Código: [Seleccionar]
(point_distance(x,y,obj_parent_enemigos.x,obj_parent_enemigos.y) < 150)
Este hace que cuando mi personaje (obj_jugador) entre en un rango de 150 o menos "entre en combate con el enemigo" y por eso quería hacer que el jugador mirase al enemigo, si esta este código mi personaje no busca al enemigo mas cercano, peeero, si elimino este código SÍ funciona el código que me habéis dado.

Voy a seguir probando mas y mas hasta ver como consigo hacer funcionar las 2 cosas y cerrar este tema ya porque me esta dando mas problemas.. jajajajaja

Actualmente mi código es este:
ASÍ NO FUNCIONA:
Código: [Seleccionar]
if instance_exists(obj_parent_enemigos) and (point_distance(x,y,obj_parent_enemigos.x,obj_parent_enemigos.y) < 150)
            {
                objetivo = instance_nearest(x, y, obj_parent_enemigos);
                dir = point_direction(x,y,objetivo.x,objetivo.y);
                if ( dir < 90 || dir > 270 ) {sprite_index = spr_jugador_movimiento; image_xscale = 1;} else     
                if ( dir < 270 && dir > 90 ) {sprite_index = spr_jugador_movimiento; image_xscale = -1;}
            }

ASÍ SÍ:
Código: [Seleccionar]
if instance_exists(obj_parent_enemigos)// and (point_distance(x,y,obj_parent_enemigos.x,obj_parent_enemigos.y) < 150)
            {
                objetivo = instance_nearest(x, y, obj_parent_enemigos);
                dir = point_direction(x,y,objetivo.x,objetivo.y);
                if ( dir < 90 || dir > 270 ) {sprite_index = spr_jugador_movimiento; image_xscale = 1;} else     
                if ( dir < 270 && dir > 90 ) {sprite_index = spr_jugador_movimiento; image_xscale = -1;}
            }

La única diferencia es que estoy comentando el código de "point_distance", pero bueno, tendré que buscar una opción para que funcionen los dos códigos a la vez!

Gracias, dejo el tema abierto por si no encuentro solución.. si la encuentro la diré (por si alguien mas lo necesita) y pondré mi Solucionado en el titulo, gracias!

EDITO:

He conseguido hacer CASI que funcione!

He conseguido que ahora el jugador mire a un enemigo (dentro del obj_parent_enemigos) justo cuando entra dentro de su distancia con point_distance, así que eso es lo que yo quería en un principio y por fin lo he logrado, pero ahora se me vuelve a complicar otra vez cuando he decidido agregar una caja (como ejemplo) dentro del obj_parent_enemigos pero esta caja con una distancia_jugador = 25, cuando el obj_enemigo1 tiene una distancia_jugador = 150. Es decir.. mi personaje entra en "modo combate" por decirlo de alguna manera con el jugador en 150 y la caja en 25, ya que la caja no se mueve y la he echo solo de prueba. ¿Donde esta el problema? que mi código no detecte la distancia_jugador del enemigo mas cercano si no la del enemigo que antes he puesto en la room. Llevo varias horas probando a conseguir esto pero no hay manera, me gustaría que si mi personaje tiene mas cerca suyo la caja que el enemigo (ambos metidos en obj_parent_enemigos) mire a la caja en el rango 25 y no que la mire a 150.

Mi actual código es este:
var ex, ey;
ex = instance_nearest(x, y, obj_parent_enemigos).x;
ey = instance_nearest(x, y, obj_parent_enemigos).y;

if instance_exists(obj_parent_enemigos) and point_distance(x,y,ex,ey) < obj_parent_enemigos.distancia_jugador
            {
                objetivo = instance_nearest(x, y, obj_parent_enemigos);
                dir = point_direction(x,y,objetivo.x,objetivo.y);
                if ( dir < 90 || dir > 270 ) {sprite_index = spr_jugador_movimiento; image_xscale = 1;} else    
                if ( dir < 270 && dir > 90 ) {sprite_index = spr_jugador_movimiento; image_xscale = -1;}
            }

Lo dicho, funciona CASI TODO, mi personaje ahora puede caminar por la room libremente, mirando para donde me dirijo.. y a la hora de "luchar" (entrar en rango de distancia_jugador) mira con una distancia de 150 ya sea una caja (que debería ser 25) o el enemigo 1 (que este si es 150), no distingue que distancia tiene cada objeto.

Muchas gracias por todo.. y a ver si me quito este dolor de cabeza ya! jajajaja
Los siguientes usuarios dieron las gracias a este tema: Johann

Páginas: [1] 2 3