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 - Black_Cat

31
Buenas colega, esa mecánica se hace en 3 pasos:
1) cuando el mouse hace click guardar mouse_x y mouse_y en 2 variables, por ejemplo[gml]x1=mouse_x
y1 = mouse_y[/gml]
2) cuando se levanta el mouse, guardar las posiicones de nuevo
[gml]
x2 = mouse_x
y2 = mouse_y[/gml]
entonces ahi ya tenes un rectangulo (x1,y1,x2,y2)

3)
verificar que todos los objetos soldados que estan dentro del rectangulo se seleccionen
[gml]
with(o_soldado){
if (x > other.x1) and (x< other.x2) and (y > other.y1) and (y<other.y2)
        seleccionado = true
}
[/gml]

bueno asi masomenos.

P/D: te recomiendo que cambies el nombre del tema a algo más útil como "cómo seleccionar objetos dentro de un rectangulo?"
32
Cita de: kostra en Abril 28, 2020, 07:35:43 PM
create:
[gml]ancho = 20;
alto = 10;
cantidad_de_ondas = 5;[/gml]

step y draw o solo draw
[gml]if keyboard_check(vk_up) alto++;
if keyboard_check(vk_down) alto--;
if keyboard_check(vk_left) ancho++;
if keyboard_check(vk_right) ancho--;

for (i=0;i<360*cantidad_de_ondas;i++) {
    var dir = (i%360+360)%360;
    draw_point( x+i/ancho,y+dsin(dir)*alto);
    }[/gml]

te sirve eso? xd (lo acabo de improvisar xd)
8) gracias por el codigo, lastima que no rota, pero aun asi cumple con la mayoria

Cita de: Johann en Abril 28, 2020, 08:16:34 PM
Tengo un archivo de  :GM6: con fecha d eedicion del 20/02/2009 que Fenris habia subido a Desarrollo de scripts, un objeto se dirige al mouse ondeando en forma de funcion seno.
Mira el script que viene ahi.
Subo un *.gmz generado con  :GMS: 1.4
gracias esto es lo que buscaba, pero en dibujado  XD
voy a ver como lo adapto

gracias colegas  :)
33
buenardium leviosa , gente
me preguntaba si alguien sabe como dibujar una onda tipo seno/coseno entre dos puntos, lo poco que sabia de trigonometria se me fue borrando y lo poco que logré hacer es dibujar un circulo con estas funciones XD

tambien cabe mencionar que los puntos en los que se crea la onda, podrian estar inclinados no necesariamente sobre el eje X ???

salu2
34
podes tambien usar la funcion  instance_exists(...) para determinar si existe una instancia del jugador si no existe destruis el arma

[gml]
if (instance_exists(obj_jugador) == false)
    instance_destroy();
[/gml]
35
Yo use  :GM5.  :GM6:  :GM7:  :GM8:  :GMS: y te aseguro que para subir escaleras o cambair sprites es igual, ninguno es más dificil

Ahora estaria mejor si pones el código o lo que fuera
36
es medio imposible adivinar XD
Pero si colocas el código podemos revisarlo y ver donde falla

37
Usar objetos en vez de sprites va a empeorar el problema, más aún cuándo tengas que gestionar las colisiones.
Probaste algunas de las soluciones que propusimos anteriormente?

Te recomiendo ver tutoriales en youtube de cosas básicas hechas en game maker, por suerte en ese aspecto cualquier version sirve, la 5 6 7 8 Studio. Asi que tenes hartos recursos.
Otra opcion es usar los bloques para crear un juego sencillo y rehacerlo pero usando código, sería como traducirlo de uno a otro.
38
usualmente ocurre que ese tipo de codigo esta en el evento step para verificar constantemente la tecla y cambiar el sprite, normalmente ocurre que en cada step, se ejecuta el codigo de asignacion:
[gml]
sprite_index = spr_Nadando_Derch;
[/gml]
por lo que, al estar asignandose constantemente, la animacion no corre, puesto que se asigna, comienza la animacion pero no le da tiempo a animarse entero.
esa podría ser otra causa, se soluciona verificando de que el sprite solo se asigne cuando es uno diferente:
[gml]
if (sprite_index != spr_Nadando_Derch)
    sprite_index = spr_Nadando_Derch;
[/gml]
39
eso pasa porque se queda en valores decimales, por ejemplo 3.5 y no en 4 o bien en 3, que serian enteros, entonces se suaviza la imagen.
En todo caso tendrías que redondear de alguna manera el valor dividido por dos:

vspeed = floor(vspeed / 2);
ahi no deberia darte problemas.

imagen demostracion de un objeto con coordenada decimal y un objeto con coordenada entera
40
Preguntas y respuestas / Re:GMS o GMS2
Marzo 12, 2020, 02:48:15 AM
depende cual es el fin, hacer juegos por diversion GM1.4 o para sacarlo a desktop (win/ubuntu/mac)
de ahi, pagarse una buena licencia del GMS2 me parece que no viene a cuento si es solo por hobby, mas teniendo en cuenta si planeás sacarlo para android, es otra licencia.

El problema de gm1.4 es que ya no tiene soporte oficial, no lo venden en la página de yoyo, pero tengo entendido de que podés sacar por ahí una key de g2a? ;) ni idea la verdad.

41
Desarrollo de Scripts / Re:get_version()
Enero 27, 2020, 04:14:56 PM
tiene un error y es que lo uso bajo  :GM8: y me dice que es  :GM7:  :-[
42
Como diría nuestro colega Sobako: "te respondiste solo xd "

y bueno basicamente, tenés que gatillar una alarma en el evento destroy del objeto bola. Podrías poner la alarma en el jugador, indicando con una variable , llamemosle "doble_disparo" que al acabar el tiempo se haga false.
Basicamente, en el objeto bola, al momento de destruirse seteas "doble_disparo" del objeto player en true y calculás los 30 segundos dentro del player para setearla a false.
Ya dependiendo del valor hacés que e ljugador pueda hacer 2 tiros, imagino que con una variable de contador o algo del estilo.
43
Podrias usar una variable dentro de la plataforma que indique si tiene al personaje encima entonces verificar la colision.
Si el jugador presiona abajo, seterias la variable en false, y no tendria lugar la colision.

O hacerlo solido/no solido.
44
gracias por la respuesta, la verdad casi llegamos al mismo codigo, prácticamente
solo que al usar una sprite con las cartas como subimagenes el variables de card_weigth y card_height la pudimos obviar.

también llegué a eso de tener que poner un ciclo dentro del ciclo draw(aunque en nuestro caso fue en el evento step) y se presentó el problema de que, cuanto mas crecía la lista más lento iba el juego. mas que nada porque había un apartado en donde si uno pasaba el mouse por encima mostraba diferentes caracteristicas de la carta y eso llevaba su tiempo, puesto que al no ser un objeto tenía que tener un indice en alguna lista (en este caso era una grid) donde estuviera almacenada la informacion de la carta, a saber: nombre, descripcion, atributos, etc.
Algo similar pasaba con las verificaciones en el evento step.

Y bue, al parecer el mejor método es usar objetos, ya que de por si maneja las colisiones y se le puede poner los datos dentro.
es lo más fácil de manejar a largo plazo
45
Lo que podés hacer es que el objeto en cuestion no sea solido y solamente verificar la colision cuando el personaje está cayendo, o que podría ser equivalente a decir vspeed > 0
entonces la coilsion no actua cuando se le da por debajo vspeed < 0 sino todo lo contrario.