Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: yokaiworld en Diciembre 13, 2013, 04:36:51 PM

Título: (solucionado) Voltear barra de vida en un juego de peleas2
Publicado por: yokaiworld en Diciembre 13, 2013, 04:36:51 PM
Hola de nuevo;
apegandome a las normas del foro ya busque en historial preguntas similares a la mia y las encontre pero los codigos son tan diferentes que no son aplicables al mio.
Por lo tanto vuelvo ha hacer la misma pregunta: ¿Como puedo voltear la barra de vida del player2(que es enemigo)?
De antemano gracias

(http://img844.imageshack.us/img844/3079/ocoj.jpg)

var height;
height = 2
var far_right = room_width - 160;
var far_left = 160;

//player1
with(obj_player1)
{draw_rectangle(far_left + 45, 15,far_left + 517, 16 + (16 * height), false)
draw_spritebar(spr_dmgbar, far_left + 46, 16, 470 * ((curhp + last_damage) / maxhp), height)
draw_spritebar(spr_healthbar, far_left +  46, 16, 470 * (curhp / maxhp), height)
if last_damage_timer > 1
   {last_damage_timer -=1}
   else{if last_damage > 0 {last_damage -=1}}
}

//player2
with(obj_player2)
{draw_rectangle(far_right - 517, 15, far_right - 46, 16 + (16 * height), false)
draw_spritebar(spr_dmgbar,  far_right - 516, 16, 470 * ((curhp + last_damage) / maxhp), height)
draw_spritebar(spr_healthbar, far_right - 516, 16, 470 * (curhp / maxhp), height)
if last_damage_timer > 1
   {last_damage_timer -=1}
   else{if last_damage > 0 {last_damage -=1}}
}



Título: Re:Voltear barra de vida en un juego de peleas2
Publicado por: penumbra en Diciembre 13, 2013, 08:52:37 PM
en el objeto 2 yo intentaría image_xscale = -1
Título: Re:Voltear barra de vida en un juego de peleas2
Publicado por: yokaiworld en Diciembre 13, 2013, 09:04:41 PM
Gracias por reponder, en que parte del script lo pondrias. Yo estuve tratando de incluirlo pero hacia que el player 2 se pusiera mas delgado y pequeño seguramente es que no lo utilizo bien
Título: Re:Voltear barra de vida en un juego de peleas2
Publicado por: penumbra en Diciembre 13, 2013, 10:08:58 PM
ah, entonces no se puede usar image_xsxale directamente

draw_spritebar() es un script tuyo?

Dentro del script, me imagino que estás usando la función draw_sprite, en lugar de eso, usa draw_sprite_ext, que trae opciones para voltear la imagen en el eje x. draw_sprite_ext( sprite, subimg, x, y, xscale, yscale, rot, color, alpha );

Aparte, las coordenadas creo que están mal para el segundo jugador, por ejemplo,

470 * (curhp / maxhp)

suponiendo que tienes la mitad de vida, sería 470 * 0.5 = 235. Esa coordenada es muy hacia la izquierda, cuando debería ir hacia el lado derecho (creo yo). Me parece que las coordenadas las estás introduciendo al revés en el segundo objeto, y GM dibuja de derecha a izquierda en lugar de izquierda a derecha

Si estás usando el GM Studio, sería más facil usar el evento Draw GUI, ahí dibujas todo directo, sin calcular variables como height ni far_right, símplemente le das la posición en pantalla donde quieres que se dibuje algo, y automáticamente GM lo dibuja respecto a la vista que manejes.



Título: Re:Voltear barra de vida en un juego de peleas2
Publicado por: yokaiworld en Diciembre 14, 2013, 01:31:52 AM
gracias penumbra por responder, tenias razon habia que poner los mismos valores que el player1 solo que negativos gracias
(http://img96.imageshack.us/img96/3803/ybkm.jpg)