Mostrar Mensajes

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.

Mensajes - T789

46
Saludos S4BAT

¿Podrias especificar un poco mas? Hay 2 formas de agrandar la pantalla con las view. La primera es manualmente desde la pestaña view del editor de room; y la segunda es por medio de las variables de la view

Quieres agrandarlo segun lei, podrias hacerlo duplicando "el port de la view"
Digamos que tu room tiene unas proporciones de...

room_width = 320;
room_height = 240;

Asi que solamente agranda los valores en el port a 320*2 = 640, 240*2 = 480. Podrias probar cambiando a otros valores mas grandes, pero siguiendo las proporciones originales.
Sugiero que mantengas a tus sprites en proporciones iguales, ya que en la mayoria de casos suelen deformarse algunos sprites y/o verse los pixeles arruinados (a mi me pasa que suelen perderse o borrarse algunos pixeles de un sprite)

Tambien podrias intentar cambiando el tamaño de la ventana del juego (es una forma mas y casi no suelen dañarse pixeles, bueno en el GM8 se ve borrosa la pantalla pero en el GMS no se ve borrosa) con la funcion:
[gml]
window_set_size(room_width*2, room_height*2)
window_center() //centrar ventana para evitar problemas
[/gml]
Bueno... No se si todavia exista esa función en GMS
47
Saludos makeros

Estoy trabajando en un juego que seria una implementacion de mecanicas entre:
-PointAndClick
-Survival Horror
-Accion

Antes de trabajar en lo demas, quisiera trabajar en un sistema de pelea unica, y se me ocurrio un tipo de sistema el cual seria un objeto de onda que empezara pequeño y fuera creciendo hasta un punto, del cual retrocederia hasta ser tan pequeño y volver a aparecer en otro punto aleatorio de la pantalla.

El objeto de onda para atacar, solo estaria limitado de la mitad de la pantalla para abajo, y para arriba solo se mostraria al enemigo acercandose
[gml]
/// Event Create obj_enemyBatle
Owidth = sprite_get_width(spr_onda)/2;
Oheight = sprite_get_height(spr_onda)/2;

mionda = instance_create(irandom_range(Owidth, room_width-Owidth), irandom_range(room_height/2 + Oheight, room_height-Oheight), obj_ondaAtack)
[/gml]
Ya casi tengo todo el sistema de onda para atacar, pero hay un incomveniente... No se como lograr para atacar

La forma que tengo en mente para atacar, requiere en trazar un dibujado mientras dejo oprimido el boton izquierdo del mouse; para que se muestre el trazado solo uso un objeto de color rojo con 1 pixel de ancho y largo. El problema en si, esta en que solo se puede crear instancias de color si el mouse va lento (cuando digo lento, me refiero a casi tocar el mouse)

No encuentro una forma de poder trazar un dibujo pues el mouse siempre va muy rapido, y me disgusta que aquel que vaya probar el juego tenga que estar forzado a llevar lento el mouse; lo intente todo desde usar bucles para crear instancias precisamente, pero como sucede que el trazado siempre se tiene que crear en el mouse nunca funciona

Ahora, quisiera pedir su ayuda para saber como trazar un dibujo preciso sin tener que preocupar por como se lleve el mouse

La idea esta en cuando el efecto de onda detecte una instancia de dibujo, se vuelva a crear en otra parte aleatoria y le descuente una vida hasta ser destruido junto con su enemigo (tambien se borraria el trazado automáticamente)
48
Nombre del creador: T789
Descripcion del script: Funciona para dibujar un anillo ahuecado por medio de un bucle
Versión GM utilizadas: GameMaker 8
Argumentos:

xx: posicion x donde dibujar
yy: posicion y donde dibujar
ra1: primer radio a establecer (cuenta como el radio interior -el hueco del anillo)
ra2: segundo radio a establecer (esto define el tamaño a alcanzar
col: color para el anillo


[gml]
///draw_ring(x, y, ra1, ra2, col)
var xx, yy, ra1, ra2, col, i;
xx = argument0;  yy = argument1;
ra1 = argument2;  ra2 = argument3;
col = argument4;  i = 0;

repeat((r2-r1)*4) {
   draw_circle_color(xx, yy, r1+i, col, col, true)
   i += 0.25;
}
[/gml]
[gml]
/// Event Draw
draw_ring(x, y, 4, 8, c_yellow)
[/gml]
49
No entendi muy bien... Pero si el problema es que son la misma bala, ¿porque no haces otra bala para el jugador1? O ¿Simplemente modifica la misma bala con un sprite diferente segun cada jugador?
50
La forma mas facil para que gire alrededor del personaje, seria calculandolo con cos() y sin(), o... Para hacerlo mas facil, recomendaria que usaras las funciones trigonometricas de GameMaker: lengthdir_x y lengthdir_y
[gml]
/// Event Create
angle = 0;  //Angulo en el que empieza a rotar
len = 100;  //Espacio de separacion


/// Event Step
angle += 5; //Sumarle 5 al angulo

x = obj_player.x + lengthdir_x(len, angle)
y = obj_player.y + lengthdir_y(len, angle)
[/gml]
Esas funciones te devuelven un angulo en el que orientar un objeto y una separacion entre el jugador y el objeto que este rotando

Piensa en eso como en una direccion a donde el player disparara una bala, pero en vez de disparar, rotara al jugador

Claro eso fue solo un ejemplo, podrias aumentar el espacio de separacion y el angulo para hacerlo mas distinguible
51
Anuncios / Re:Busco Programador para cerrar juego
Septiembre 26, 2020, 05:22:45 AM
Saludos tomasbrunop

Yo me ofrezco para ayudarte con ese proyecto, pero antes tengo algunas limitaciones a la hora de trabajar con alguien mas; ya te envie por privado acerca de tu solicitud para un programador, pero ahora te envio por aqui para saber si puedo entrar

Reafirmo:
-Llevo 2 años con GameMaker y poseo un conocimiento suficiente para elaborar una tabla de puntuaciones

-Tengo GM8 y GMS1.4, asi que... Para trabajar en la tabla, tengo que enviarte una editable que tendras que importarla como versiones anteriores; de ella copypastearas el codigo y las mecanicas de la tabla.

-Necesito un tiempo minimo de 8 dias para terminar la tabla de puntuaciones.

Espero recibir una respuesta de tu parte. Tambien entendere si consiges a otra persona que se encargue de la tabla
52
Si solo tienes 2 subimagenes, lo mas acortado solo seria darle el valor del place_meeting
[gml]
image_index = place_meeting(x, y, objeto);
[/gml]
53
Saludos 8 bits

¿Para que sirven las particulas? Bueno... Puede haber un monton de cosas que hacer con las particulas (las posibilidades pueden ser ilimitadas, creo  ;)). Los particulas pueden ser como objetos normales (puedes aplicarles velocidades, manejar los alpha, manejar los colores, darles direcciones etc), con la pequeña diferencia de que puedes variarles los comportamientos para hacer que se vean bonitas.

Existen muchas cosas para las que servirian las particulas; por ejemplo:
-Hacer que en una nave cada vez que te muevas, cree un vapor que se desaparezca
-Hacer particulas tipo estrellas fugases, que se mezclen con varios colores a la vez
-Hacer un efecto fantasma tipo Alucard (Castlevania)
-Crear lluvia que caiga en toda la room
-Hacer rayones de ruedas de un auto al frenar y que se desaparezcan

Las posibilidades pueden ser tantas como tu quieras. Claro que tambien podrias hacerlo con objetos propios, pero el sistema de particulas esta un poco mas adaptado para hacer particulas tan eficientes. Te recomiendo que veas videos en youtube de ejemplos de particula en GameMaker, puede que encuentres bastantes efectos de particulas
54
Se de los archivos .svg, pero pregunto porque me parece mas facil cargar .swf y tambien porque creo que hay mas posibilidad de que hayan extensiones para archivos flash. No me acuerdo muy bien pero cuando me encontraba iniciado en GameMaker, y apenas sabia de las extensiones; creo haber visto una extension para archivos flash... Desafortunadamente no me acuerdo del nombre (esa vez fue hace 2 años, y no le preste tanta atencion porque, no sabia de que me iba a servir en ese entonces)

Ahora. Podria reconsiderar lo de usar archivos .svg, pero todavia sigo esperando esa extension (primero urge practicar con los .swf)

... Y lo de montarme toda una pizarra de operaciones en el evento draw; no crea que quiera hacerlo  :-\. Es totalmente irrelevante si existen los vectores  ;)
55
Saludos Makeros

Siempre que hago un videojuego, suelo usar png para los sprite; pero justo ahora me preguntaba si habia una forma de trabajar con Vectores en GM8. Segun tengo entendido, los archivos .swf soportan vectores ¿no?, de igual forma tengo entendido que en GMStudio se puede importar archivos flash (apartir de la version 1.3 para adelante). En mi caso, solo poseo la version GM8, por lo que solo estoy limitado a .png, .jpg, .gif

Ahora, se que hay extensiones y dlls para lograr cosas que las limitaciones de GM8 no permiten. Un ejemplo seria la extension CASTER: "esta permite mejor manejo en los sonidos y el poder pausarlos y reanudarlos (cosa que en GMS se puede pero, en GM8 no)".
Tambien existe una dll para poder usar fisicas en GM8 (cosa que es exactamente igual al caso anterior).

Los .swf no solo me servirian para usar vectores, sino que tambien pueden tener secuencias de sprites mas completa que los gifs (en comparacion con el procesamiento de mi computadora. Cuando intento cargar un gif con mas de 6 sprites, este simplemente se termina lageando o los sprites terminan perdiendo colores y, partes en los pixeles), claro... No tienen tanta calidad pero aun asi me permiten reducir el peso, algo que me es esencial cuando intento hacer una escena cinematografica

Los .swf, podrian solucionarme varias cosas
1. Los vectores no pierden calidad aunque se le cambie el tamaño
2. Las secuencias de imagenes pueden ser mas largas y no me causaria ningun lageo o falla al importar
3. Ahorrarme el tiempo de tener que importar una por una imagen

En fin. Me ayudaria mucho, si alguien pudiera recomendarme alguna .dll/extension para resolver mi problema
56
Nadie es experto en esto, siempre hay un error por si acaso  :-X

Prueba cambiando "vh" y "vv" por "hspeed" y "vspeed", y quita el "x+=" y el "y+="

¿Por casualidad tu vel tiene un valor? Y prueba poniendo los puntos de anclaje a 0,0
57
Podrias hacerlo con la funcion de place_snaped(), que sirve para verificar si el objeto esta alineado 32×32 pixeles
[gml]
if place_snapped(32, 32) {
  vh = (-keyboard_check(vk_left) + keyboard_check(vk_right))*vel;
  vv = (-keyboard_chech(vk_up) + keyboard_check(vk_down))*vel;

  //Moverse en 4 direcciones
  if (abs(vh) > 0)
      vv = 0;
      else if (abs(vv) > 0)
      vh = 0;
}
x += vh;
y += vv;
[/gml]
Solo si el objeto esta alineado a la cuadricula de 32 pixeles, podra captarse el movimiento, sino pues simplemente se le sumara hasta llegar a una nueva posicion libre

Sugiero que para evitar errores, te asegures que el objeto ya inicie colocado en una posicion de 32×32, puedes hacerlo por medio del room editor o... En el evento create con la funcion:
[gml]
// Si no esta alineado a una cuadricula
if !place_snapped(32, 32)
   move_snap(32, 32) // Se alineara automaticamente
[/gml]
Si despues de hacer lo anterior, te sigue dando algun error al moverte, entonces debe haber alguna parte mal en tu codigo

Sugerencias:
-Hacer que el sprite sea de un tamaño adecuado de 32×32
-Poner tu vel, a un valor de 2 o 4 para evitar un incomveniente (no recomendable usar un 3 o 5)
-Asegurar que tus colisiones sean de 32×32 con un place_meeting
58
Saludos. Eso lo puedes hacer facil desde todas las versiones (creo...?)

Lo unico que tienes que hacer es crear la instancia con instance_create() y agregarla a una variable
[gml]
instancia = instance_create(x, y, obj); //Crea una instancia en la posicion (x,y) en tu caso (840, 330)
instancia.hspeed = 4; //4 = derecha, -4 = izquierda; si quieres hacerlo aleatorio usa choose(-4, 4)

// Para que valla mas rapido solo haz una alarma en ese objeto
instancia.alarm[0] = room_speed*2 //La alarma ocurrira en 2 segundos
[/gml]
Cuando creas una instancia y la archivas en una variable, puedes modificar las variables de esa instancia en particula o puedes manejarla mejor usando un with
[gml]
with( instance_create(840, 330, obj)) { //Te metes dentro de la instancia que creaste
  // Aqui colocas todo lo que quieres que pase cuando se cree la instancia
}
[/gml]
Bueno creo que con lo primero ya puedes hacerlo sin dificultad, yo recomendaria que te ojees el manual para conocer otras funciones de movimiento mas sencillas (si es que las hay(?) )
59
¿Por casualidad que tan rapido va la animacion? Ya probaste con disminuir el image_speed, o sera que en otra parte (codigo movimiento) estas modificando el image_speed y por eso no se nota
60
La forma mas facil seria poniendo una variable en el objeto enemigo que quieras
[gml]
FuiAtacado = false;
[/gml]
Esta servira para saber cuando perseguir y atacar al jugador
[gml]
if (FuiAtacado) {
  //Aqui colocas las mecanicas para perseguirlo
}
[/gml]
Y cuando ataques al enemigo, cambie la variable de la instancia a la que ataques (recomiendo que crees un obj_atack y lo gestiones en un evento colision)
[gml]
other.FuiAtacado = true;
[/gml]
De esa forma cada instancia sabra cuando perseguir al enemigo, solo cuando sepa que fue atacada