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 - 8 bits

31
Preguntas y respuestas / Re:problema de la view
Agosto 21, 2020, 07:35:34 PM
Cita de: DawCrash en Agosto 21, 2020, 04:28:50 PM
La variable view_current es de solo lectura, no se puede sobreescribir su valor, por eso te da ese error.

Igual no entendí bien la pregunta. ¿Qué estás intentando hacer? ¿Un multiplayer a pantalla dividida? ¿O los dos jugadores usan la misma view?

Es... complicado

hay dos views completamente iguales pero una view sigue el player 1 (la cual es la view 0)  y otra al player 2 (la view 1) y quería que se pudiera alternar de views con un botón... pero ahora que lo pienso eso sería muy anti-coompetitivo ¿sabes como hacer la pantalla dividida tipo mario kart?
32
Cita de: DawCrash en Agosto 21, 2020, 04:34:34 PM
¿Qué son a, w, s, d? ¿Son variables?

Para detectar teclas que no sean las "estándares", o sea, que no sean las flechas, ctrl, shift, etc, necesitas obtener el código unicode de la tecla, y eso lo obtienes con la función ord(). Entonces el código para detectar las letras sería así:

[gml]if (keyboard_check(ord("W"))) {
    // acciones
}
if (keyboard_check(ord("D"))) {
    // acciones
}
// etc
[/gml]

Ohhhhh ahora yo entender.

Lo de a, w, s y d creía que eran la manera de escribir bien el código

muchas gracias por responder, prometo que usaré eso para mi segundo proyecto
33
Preguntas y respuestas / problema de la view
Agosto 21, 2020, 02:34:04 PM
Que tal makeros y makeras, aquí el pana 8-bits con una nueva pregunta

Ya casi está listo mi juego de carreras (solo falta la parodia a asteroids) pero tengo un pequeñito diminuto chiquirritico detallito que cambiar... La view  :-[

Al principio quise hacer algo como mario 64 multiplayer, que si un jugador presionaba x botón que la view se redirija hacia el pero no se cual código ejecutar.

Para probar con el segundo jugador le coloque en su evento keyboard press 1 el siguiente código

[gml]view_current = 1[/gml]

y al hacer la prueba presionando el botón sale esto


___________________________________________
ERROR in
action number 1
of Keyboard Event for 1-key Key
for object nave_race:

Error in code at line 1:
   view_current = 1
  ^
at position 1: Cannot assign to the variable

No entendí que está mal si la view por defecto es 0.
34
Que tal makeros y makeras aquí el pana 8-bits con otra pregunta.

Si, sigo con mi juego de carreras y estoy integrando al player 2 (porque que sentido tiene echarse carreras contigo mismo?) y... Bueno, la cosa es que antes con los otros players 2 yo usaba eventos para determinar si una letra (escuchen bien LETRA) del teclado está siendo pulsada pero con este player 2 en específico uso código y realmente no se cual es el código para detectar las letras que requiero, aquí les dejo el código mal escrito

[gml]if (var_movimiento) {
    if keyboard_check(a) {
        speed = 8
        direction = 180
        image_angle=180;
        }
    if keyboard_check(d) {
        speed = 8;
        direction = 0
        image_angle = 0
        }
    if keyboard_check(w) {
        speed = 8
        direction = 90
        image_angle=90;
        }
    if keyboard_check(s) {
        speed = 8
        direction = 270
        image_angle=270;
        }
    if keyboard_check(vk_nokey) {
    vspeed = 0
    hspeed = 0;
    }
   
}   
[/gml]

No tengo idea de que está mal ahí.

No hay mas nada que decir así que sin mas se despide el pana 8-bits

EDIT: ya no importa, pude solucionar el problema
35
Cita de: fedex2020 en Agosto 20, 2020, 01:23:51 PM
Buenos días y gracias por responder, me equivoque escribiendo acá el código pero en el gamemaker está bien escrito y sigo con el mismo problema, alguna solución....
buenos días colega, el pana 8-bits está aquí para sacarte de la duda

aquí el problema es simple, tu estás poniendo la speed a 0, lo que hace que se quede quieto, mario sale volando si presionas salto porque el salto sobreescribe el 0 de la speed, podrias hacer algo como en los juegos de mario: si chocas con un bloque invisible te corta el salto y la gravedad hace su trabajo ¿me expliqué bien?
36
que tal makeros y makeras aqui el pana 8-bits con la nueva pregunta de la vida.

voy a ir al grano, sigo con mi juego de naves y quiero que cuando la primera nave que cruce la meta en el modo carrera cree un objeto en la esquina de la view ¿en cual esquina? en la esquina superior izquierda

__________________
!*                             ! imaginense que ese cuadrado es la pantalla
!                               ! ese asterisco es el objeto
!                               ! como ven quisiera el objeto en esa esquina
-----------------------------   se que eso estaba de mas :/

sin mas se despide el pana 8-bits
37
Preguntas y respuestas / Re:colisión con la pista
Agosto 09, 2020, 11:49:40 PM
Cita de: Tylag en Agosto 09, 2020, 05:10:53 PM
Hola, te cambio un poco el código que has puesto y te comento

[gml]

//evento step
if (var_movimiento) {
   if keyboard_check(vk_left) {
      hspeed = -8
      image_angle=180;
   }
   if keyboard_check(vk_right) {
      hspeed = 8;
      image_angle = 0
   }
   if keyboard_check(vk_up) {
      vspeed = -8
      image_angle=90;
   }
   if keyboard_check(vk_down) {
      vspeed = 8
      image_angle=270;
   }
   if keyboard_check(vk_nokey) {
      vspeed = 0
      hspeed = 0;
   }

}
if (!place_meeting(x,y,rainbow_road_colision)) {
   hspeed=0;
   vspeed=0;
   var_movimiento = false;
}
[/gml]

El problema estaba en que no estabas incluyendo bien las lineas de código dentro de los if statement, si no encapsulas todo  con corchetes {}  el if cogera unicamente la siguiente linea a continuacion.
El resto de lineas se estaban ejecutando siempre.

Edit: Te dejo por aqui otra version del movimiento de tu nave con el código más compacto, un saludo!

[gml]
hspeed = place_meeting(x,y,rainbow_road_colision) ? (keyboard_check(vk_right) - keyboard_check(vk_left))*8 : 0;
vspeed = place_meeting(x,y,rainbow_road_colision) ? (keyboard_check(vk_down) - keyboard_check(vk_up))*8 : 0;
if (keyboard_check(vk_anykey) && place_meeting(x,y,rainbow_road_colision))
image_angle = point_direction(x,y,x+hspeed,y+vspeed);

[/gml]

muchas gracias colega, eres  tremendo programador, saludos y que Iwata te acompañe sin mas se  despide el pana 8-bits
38
Preguntas y respuestas / Re:colisión con la pista
Agosto 09, 2020, 04:11:12 PM
Cita de: 8 bits en Agosto 09, 2020, 03:30:46 PM
a ver si entendí, debo hacer una variable que esté en true por defecto y que se cambie a false si la pista y la nave están en colisión y que si  esté en false la nave no se pueda mover pero que si esté en true si ¿cierto?

ahora no se que se supone que hago mal, todo iba bien hasta que decidí cambiar el angulo de la imagen por cada tecla, ahora las teclas izquierda y derecha no funcionan y el personaje se mueve libremente por la pista

ya te muestro el codigo

[gml]//evento create

var_movimiento = true;
image_xscale=0.5
image_yscale=0.5
image_angle=90

//evento step

if (var_movimiento) {
if keyboard_check(vk_left) hspeed = -8
image_angle=180;
if keyboard_check(vk_right) hspeed = 8;
if keyboard_check(vk_up) vspeed = -8
image_angle=90;
if keyboard_check(vk_down) vspeed = 8
image_angle=270;
if keyboard_check(vk_nokey) vspeed = 0
hspeed = 0;

}if (!place_meeting(x,y,rainbow_road_colision)) {
hspeed=0;
yspeed=0;
}[/gml]

fallos encontrados en el juego:


  • las teclas left y right no funcionan
  • la nave se mueve fuera de la pista
  • la nave ignora los angulos cuando se presionan las teclas
  • la nave comienza apuntando hacia abajo cosa que no tiene sentido ya que si el sprite apunta a la derecha el angulo 90 apuntaría hacia arriba
39
Preguntas y respuestas / Re:colisión con la pista
Agosto 09, 2020, 03:30:46 PM
Cita de: Tylag en Agosto 09, 2020, 08:40:32 AM
Hmmm, ¿puede que estes volviendo a actualizar el hspeed/vspeed aunque lo hayas puesto a valor 0?
Es decir si tu código es algo así

[gml]
if (!place_meeting(x,y,obj_pista)) {
hspeed = 0;
}
if keyboard_check(vk_left) hspeed = -2;
if keyboard_check(vk_right) hspeed = 2;
[/gml]

Tu hspeed volverá a tomar valores independientemente de si toca la pista o no, tendrás que meterle una condicion extra a tu movimiento de que solo se realice si está tocando la pista.
[gml]
hspeed = place_meeting(x,y,obj_pista) ? (keyboard_check(vk_right) - keyboard_check(vk_left))*tuvelocidadhorizontal : 0
[/gml]
Algo parecido a esto, tendrías que permitir el movimiento unicamente si la nave toca la pista.

Hay muchas otras formas de hacerlo, podrias meter una variable boolean que permita el movimiento pero se actualice a false al no tocar la pista y bloquee el movimiento de la nave, por ejemplo ( no lo veo lo más elegante pero valdría)

[gml]
//Esto en el create
var_movimiento = true;

//Esto ya en el step
if (var_movimiento) {
if keyboard_check(vk_left) hspeed = -2;
if keyboard_check(vk_right) hspeed = 2;
}

if (!place_meeting(x,y,obj_pista)) {
hspeed = 0;
var_movimiento = false
}
[/gml]

Espero que puedas solucionarlo amigo

a ver si entendí, debo hacer una variable que esté en true por defecto y que se cambie a false si la pista y la nave están en colisión y que si  esté en false la nave no se pueda mover pero que si esté en true si ¿cierto?
40
Preguntas y respuestas / Re:colisión con la pista
Agosto 09, 2020, 02:03:55 AM
Cita de: Tylag en Agosto 08, 2020, 05:30:18 PM
Hola,
No, doble slash te permite poner comentarios a tu codigo (muy recomendable tener el codigo bien documentado) en este caso dentro del if statement tendrias que meter la logica para que la nave se pare ( esto ya dependiendo de como lo vayas a querer implementar, si se para en seco, si pierde velocidad gradualmente, etc...)

muy cierto pero igual el codigo no funciona, quiero poner que la hspeed y la vspeed se reduzcan a 0 y... Bueno, no lo hace
41
Preguntas y respuestas / Re:colisión con la pista
Agosto 08, 2020, 05:18:46 PM
Cita de: Tylag en Agosto 08, 2020, 04:26:15 PM
Hola,
Si optas por tu idea de que la pista sea un objeto puedes hacerlo con place_meeting(), esto iria en tu objeto nave:
[gml]
if (!place_meeting(x,y,obj_pista)) {
// Ejecutar codigo de pararse
}
[/gml]

De todos modos tienes muchas maneras de hacerlo, si la pista está estática en un punto y es rectangular puedes usar point_in_rectangle ( https://docs.yoyogames.com/source/dadiospice/002_reference/movement%20and%20collisions/collisions/point_in_rectangle.html ) o rectangle_in_rectangle ( https://docs.yoyogames.com/source/dadiospice/002_reference/movement%20and%20collisions/collisions/rectangle_in_rectangle.html ) si quieres que use todo el bounding box o el alto/ancho del sprite de la nave.

Edit: tambien podrías usar collision_rectangle
https://docs.yoyogames.com/source/dadiospice/002_reference/movement%20and%20collisions/collisions/collision_rectangle.html


[gml]if (!collision_rectangle( x superior izda de tu pista, y superior izda de tu pista, x inferior derecha de tu pista, y inferior derecha de tu pista, obj_nave, 0, 0)) {
// Ejecutar codigo de pararse
}[/gml]


Un saludo.

muchas gracias, aunque lo de los rectangulos no me sirven ya que mi pista no se conforma de rectangulos unicamente, como sea en el primer código que mandaste es necesario poner los dos slash?

Edit: que raro, no funciona con o sin slash ¿exactamente como funciona ese código?
42
Preguntas y respuestas / colisión con la pista
Agosto 08, 2020, 04:15:39 PM
Que tal makeros y makeras, aqui el pana 8-bits con la pregunta del siglo.

Lo que pasa es que ahora el modo de carreras del juego de naves va de maravilla pero quiero que cuando la nave no colisione con la pista, que no se mueva.

Mi solución fue que como tenía la pista como background, hacer otro objeto con el sprite de la pista y que la nave en su evento step que detecte si está o no colisionando con ella, entonces recordé que no tengo ni idea de como detectar colisiones mediante código.

Una ayudita?  :-[ (solamente aclaro, necesito un código para detectar colisiones y que ejecute otro código dependiendo del resultado)
43
Que tal makeros y makeras, aquí dispuesto, renovado y revivido llega el pana 8-bits con una pregunta
Así esta la cosa: los que llevan tiempo leyendo y respondiendo mis preguntas (gracias a ustedes por cierto) sabrán que estoy haciendo un juego de naves.

Estoy trabajando en el modo de carreras de mi juego (sé que soy bastante ambicioso) y como todos los modos hace uso del shoot de la nave pero resulta que como hice un sprite especial para las naves en el modo de carreras (el mismo sprite pero con diferente centro) pero resulta que con ese sprite es mas difícil hacer que el objeto cree la bala debido al simple hecho de que la coordenada x se mantiene al girar el angulo y eso hace que la bala no se genere en la punta de la nave (y creanme que se ve bastante feo).

Aquí está el codigo

[gml]w=instance_create(x+15,y,bala_coomp_navecita)
w.direction=image_angle
w.image_angle=image_angle[/gml]

Lo que busco es que cuando el angulo sea equivalente a 90 o 270 que sustituya el x+15 por x y al y por y+15.

Les agradecería a ustedes que me ayudaran, sin mas se despide el pana 8-bits
44
Preguntas y respuestas / apuntar con la nave
Julio 25, 2020, 05:36:51 PM
que tal makeros y makeras aqui mas activo que nunca el pana 8-bits con otra pregunta

de seguro vieron mi otro tema sobre como rotar el sprite de la nave, ahora quiero hacer que dependiendo del angulo de la nave la bala que dispara salga a tal direccion (por ejemplo: si el angulo es 180 va a la izquierda, si es 0 a la derecha, si es 90 hacia arriba y si es 180 hacia abajo)

he hecho que dependiendo de hacia adonde mire la nave se ajuste una variable llamada "movement" (si mira a la izquierda "movement" vale 0, si mira hacia arriba vale 1, si mira a la derecha vale 2 y si mira hacia abajo vale 3) pero no se bien como hacer que un objeto chequee una variable ¿una ayudita?  :-[
45
Preguntas y respuestas / Re:rotar el sprite
Julio 25, 2020, 03:58:35 AM
Cita de: elmmeronw en Julio 25, 2020, 03:05:15 AM
Tus controles creo que son raro no entendí nada solo entendi que al presionar la tecla la nave gire y eso es lo que te voy a mostrar.

Evento keypressed izquierda
[gml]
image_angle-=90;
[/gml]

Evento keypressed derecha
[gml]
image_angle+=90;
[/gml]

Creo que eso sera suficiente saludos...

ehhhmmmm, tengo un problemita  :-[  :-[  :-[

como ves en la imagen hice lo que me pediste pero la nave sigue mirando a la derecha que cosas no?