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

1
Muchas gracias. De echo al final lo hice así! y funciona!
2
Hola buenas, estoy haciendo un plataformas chustero para practicar. En el juego quiero que mi personaje dispare, y claro, podrá disparar dependiendo de si mira hacia izquierda o hacia derecha. Como podría hacer que detecte hacía que lado esta mirando el personaje?
3
Ya esta!!! así como revisaba el código lo he visto! El problema es donde he colocado x += hsp. Lo he colocado después de la colisión horizontal y funciona perfectamente!
4
Hola, aquí te lo paso

//-------------Detectar muerte por caida----------------------------------


if y > room_height {
room_restart()
}


//---------------------Gravedad---------------------------------------

if (vsp < 20) and !place_meeting(x,y+1,ob_suelo){
vsp += grav;
}


//-----------------------Saltos----------------------------------------

tecla_salto = mouse_check_button_pressed(mb_right)

if place_meeting(x,y+1,ob_suelo){
if tecla_salto{
saltando = true
vsp = -jumpspeed
}

}


//--------------------Colisiones-----------------------------------------

//Colision vertical contra el suelo

if place_meeting(x,y+vsp,ob_suelo){

//Mientras no encontremos colision a un pixel, ajustamos de 1 en 1
while (!place_meeting(x,y+sign(vsp),ob_suelo)){
y += sign(vsp);
}
saltando = false;
vsp = 0;
}

//Colision con saltador
if place_meeting(x,y+vsp,ob_saltador){

//Mientras no encontremos colision a un pixel, ajustamos de 1 en 1
while (!place_meeting(x,y+sign(vsp),ob_saltador)){
y += sign(vsp);
}
vsp = -50;
}

//Engancharse a los techos






//Colisiones horizontales

if (place_meeting(x+hsp,y,ob_suelo)){

//Mientras no encontremos colision a un pixel, ajustamos de 1 en 1
while (!place_meeting(x+sign(hsp),y,ob_suelo)){
x += sign(hsp);
}
hsp = 0;
}



//------------Deteccion de movimiento y velocidad-----------------------


tecla_derecha   = keyboard_check(ord("D"))
tecla_izquierda = -keyboard_check(ord("A"))
move = tecla_derecha + tecla_izquierda;
hsp = move * moovespeed;


//---------------------Sumar velocidades---------------------------------

y += vsp;
x += hsp;




//--------------------Reiniciar la room-----------------------------------

if keyboard_check_pressed(vk_enter){
room_restart()
}

if keyboard_check_pressed(vk_escape){
exit
}


Muchas gracias por responder
5
Buenas a todos!. Estoy intentando familiarizarme con el tema de las colisiones. Estoy haciendo un plataformas básico. Las colisiones verticales funcionan perfectamente, pero las horizontales no. os pongo el código a ver si me podéis echar una mano. Un saludo

//--------------------Colisiones-----------------------------------------

//Colision vertical contra el suelo

if place_meeting(x,y+vsp,ob_suelo){

//Mientras no encontremos colision a un pixel, ajustamos de 1 en 1
while (!place_meeting(x,y+sign(vsp),ob_suelo)){
y += sign(vsp);
}
vsp = 0;
}

//Colisiones horizontales

if (place_meeting(x+hsp,y,ob_suelo)){

//Mientras no encontremos colision a un pixel, ajustamos de 1 en 1
while (!place_meeting(x+sign(hsp),y,ob_suelo)){
x += sign(hsp);
}
hsp = 0;
}
6
Acabo de descargarme Game Maker Studio 2 de la pagina de yoyo y veo que han cambiado el sistema de prueba, por lo que he leido ahora solo dura 30 días el trial?? esto es así?? alguien lo esta utilizando con mas de 30 días?
7
Lo he intentado, lo desinstalado y vuelto a instalar varias veces y sigue el mismo problema
8
No hay manera, he usado un desistalador, he borrado de la carpeta %appdata%, de la %programdata% y ahora me da un error al abrirlo

Game Maker Studio 2 has caught a fatal exception

exception: 0xC000070A
offset: 0xBC88851D
codebase:  0xFF690000

9
Buenas a todos, no se que pasa, moví algunos archivos de la carpeta donde tengo instalado Game Maker y no se que toque que no funciona, pulso en el icono, me pide permisos como administrador, doy que sí y nada, no pasa nada, ni se abre el programa , ni tira ningún error ni nada de nada. lo he probado a desinstalar 30 veces y nada, también me lo he vuelto a descargar de la pagina de Yoyo y nada de nada. Tengo la versión de prueba del 2. alguien sabe como puedo solucionar esto?
10
Ahhh  okk, muchas gracias!

11
Preguntas y respuestas / Como picar solo una roca
Junio 04, 2019, 02:22:19 PM
Buenas a todos! He creado un sprite con forma de roca y con 4 subimagenes. La idea es que a cada golpe de pico la roca se vaya destruyendo. He creado una variabe destruccion_roca = 0 y cada vez que pico en una roca aumenta 1 o 2 dependiendo de si llevo o no el pico equipado, después dependiendo del valor de destruccion_roca asignar un sprite index determinado. El problema viene que no se donde colocar todo esto. Primero he intentado colocarlo en el ob_roca y funciona! pero cada vez que golpeo una roca veo como todas las rocas de la room sufren el mismo efecto y se van destrozando. No utilizo un evento de colisión para controlar este tipo de cosas, lo he echo así:

STEP del player

//----------PICAR ROCA---------------------------------------------------------



//Picar roca con o sin pico
if distance_to_object(ob_roca) < 4
and mouse_check_button_pressed(mb_left)
and position_meeting(mouse_x,mouse_y,ob_roca)
and poder_picar == true {

//Si no llevo pico
if pico_equipado == false{
ob_roca.vida_roca--;
recurso_roca++;
destruccion_roca++
poder_picar = false;
destruccion_roca ++
alarm[0] = room_speed * 1.5;
}
else {

//Si llevo pico
ob_roca.vida_roca -= 2;
recurso_roca      += 2;
destruccion_roca  += 2;
poder_picar = false;
alarm[0] = room_speed * 1.5;
}
}


mi idea es colocar algo tipo así para ir cambiando de subimagen:

if destruccion_roca = 0 {
ob_roca.image_index = 0
}

if destruccion_roca = 1 {
ob_roca.image_index = 1
}

if destruccion_roca = 2 {
ob_roca.image_index = 2
}

if destruccion_roca = 3 {
ob_roca.image_index = 3
}


Y que cada vez que golpee una roca determinada se vaya destruyendo, pero solo la roca que estoy golpeando
12
Bhuaa ya queda poquísimo! Ahora el personaje sigue atacando cuando estoy en movimiento, pero ahora hace algo extraño. Cuando me paro a veces hace el ataque y esta en estado de atacando parado, pero otras veces cuando me paro y presiono space sigue entrando en modo atacando parado pero la animación no es la correcta, se pone a mover los pies como si caminara. Es extrañisimo porque lo hace un poco como quiere, lo explicare con un ejemplo:

Si voy pulsando "A" o sea izquierda y voy pulsando space va atacando y realiza la animación de ataque en movimiento, en cuanto me paro (con el personaje mirando a la izquierda) a veces si que hace la animación de atacar pero a veces hace la de caminar y si sigo insistiendo dando toquecitos a la tecla "A" a veces se queda en la animación de atacar estando parado y a veces en la de caminar tambien estando parado. Par dar mas detalles, cuando dando toquecitos se queda en la animación de atacar ya cada vez que pulso space hace la animación de atacar sin moverse, pero si me muevo,  al pararme otra vez puede que haga una u otra animación. No se si me he conseguido explicar lo suficientemente bien. En todos los casos yo veo en la pantalla que entra en el script de atacar_parado, por eso no entiendo como puede hacer una animación u otra  ???

Normalmente es tan difícil conseguir que el personaje ataque parado?

Esto e slo que tengo en el step:

//--------------ATAQUE---------------------------------------------------------

if keyboard_check_pressed(vk_space)
and dir!= "parado"
{
esta_atacando = true;
estado = estado_personaje.atacando
}

if keyboard_check_pressed(vk_space)
and dir = "parado"
{
esta_atacando = true;
estado = estado_personaje.atacando_parado
}


13
Buenas! he intentado cambiar algo el código y hacerlo "mas fácil", pero no consigo que funcione. Intentare exponer el problema lo mas fragmentado que pueda y a ver si así es mas fácil.

Como decía he cambiado el código siguiendo tus consejos:

//-------------------MAQUINA DE ESTADOS-----------------------------------------------------



if (keyboard_check(ord("S")))
or (keyboard_check(ord("W")))
or (keyboard_check(ord("D")))
or (keyboard_check(ord("A"))) {
estado = estado_personaje.caminando
}
else{
estado = estado_personaje.parado
}

if pico_equipado == true {
if (keyboard_check(ord("S")))
or (keyboard_check(ord("W")))
or (keyboard_check(ord("D")))
or (keyboard_check(ord("A"))) {
estado = estado_personaje.caminando_pico
}else{
estado = estado_personaje.parado_pico
}
}


Esto funciona bien. El personaje se mueve en la 4 direcciones y cuando cojo el pico aparece con el pico y también cambia la animación en las 4 direcciones, esto funciona!

El problema viene cuando quiero que ataque y no se porque. Simplemente he puesto lo siguiente

if keyboard_check(vk_space) and estado = estado_personaje.caminando_pico
{
estado = estado_personaje.atacando
}


Poniendo esto ataca pero si mantengo pulsado la tecla y me muevo. En cambio, si pongo esto otro (que es lo que me interesa para que solo pueda atacar una vez por pulsación y animación):

if keyboard_check_pressed(vk_space) and estado = estado_personaje.caminando_pico
{
estado = estado_personaje.atacando
}


Solo se ve un mini segundo la animación pero enseguida vuelve al estado de caminando con pico. Entiendo que esto es porque solo esta en el estado de atacando durante el tiempo de la pulsación de la tecla, esto es así?

Como puedo hacer para que cuando pulse la tecla ataque y no se salga del script de ataque enseguida?

Script ataque:

image_speed = 1;

switch(dir){
case "abajo":
sprite_index = spr_prota_frente_picando;
break;
case "arriba":
sprite_index = spr_prota_detras_picando;
break;
case "derecha":
sprite_index = spr_prota_derecha_picando;
break;
case "izquierda":
sprite_index = spr_prota_izquierda_picando;
break;
}

if image_index >= image_number-1{
estado = estado_personaje.parado_pico
}
14
Wuoouu wuouu wuouu, vaya currazo de respuesta! Te invito a una cerveza! Muchas gracias en serio. Cuando llegue a casa lo reviso minuciosamente. De nuevo, gracias!
15
Pues ahí va! si a alguien no le da un montón de pereza...
Y como podría hacer una máquina de estados o simplemente lo que comento que quiero hacer de una manera mas fácil?
Lo paso en dos formatos, no se cual será el bueno  :-[
PD: Ataque y picar roca son lo mismo en realidad. Puse ataque por no liarme, pero igual te pica una roca que te revienta a un enemigo XD