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

46
Cita de: BssString en Septiembre 05, 2018, 01:48:27 PM
Hola empardopo
Creo que buscas la función image_xscale.
Por defecto es 1, si le pones 2, el sprite se verá el doble de grande, si usas -1 el sprite se invierte horizontalmente.
Ojo que depende del origen del sprite

Saludos

A menos que me equivoque o que no sepa utilizarlo no veo como hacerlo así ...

Me refería a hacer una animación de 360 grados de un objeto que ponga en pantalla pero sobre su eje X; por ejemplo, pongo un objeto en pantalla y en el step pongo image_angle += 1; y me hace un giro de 360 grados pero no es ese el giro que me gustaría que hiciera el objeto sino sobre su eje X (no sé si me estoy explicando bien...).

Thanks
47
 :GMS:

Buenas, estoy intentando hacer una rotación de un objeto pero sobre su eje X. He buscado info pero no encuentro como hacerlo.

He visto lo de ir aumentando image_angle pero no es eso lo que quiero hacer sino que rote únicamente sobre el eje X.

¿Alguna idea o ejemplo de como hacerlo?

Muchas gracias
48
Preguntas y respuestas / Re:Meter iniciales
Septiembre 03, 2018, 07:33:53 PM
Cita de: 3dgeminis en Agosto 31, 2018, 09:11:48 PM
Ya habia hecho algo parecido y lo adapte para lo que quieres, espero (las teclas que se usan son DERECHA-IZQUIERDA-ENTER):
CREATE
[gml]
posicion=0
separacion=36
columnas=10
nombre=""
x_pos=x
y_pos=y

letra[0]="A"
letra[1]="B"
letra[2]="C"
letra[3]="D"
letra[4]="E"
letra[5]="F"
letra[6]="G"
letra[7]="H"
letra[8]="I"
letra[9]="J"
letra[10]="K"
letra[11]="L"
letra[12]="M"
letra[13]="N"
letra[14]="Ñ"
letra[15]="O"
letra[16]="P"
letra[17]="Q"
letra[18]="R"
letra[19]="S"
letra[20]="T"
letra[21]="U"
letra[22]="V"
letra[23]="W"
letra[24]="X"
letra[25]="Y"
letra[26]="Z"

letra[27]="del"
letra[28]="end"
[/gml]
STEP
[gml]
if keyboard_check_pressed(vk_right) {if posicion<28 {posicion+=1} else {posicion=0}}
if keyboard_check_pressed(vk_left) {if posicion>0 {posicion-=1} else {posicion=28}}

if keyboard_check_pressed(vk_enter)
  {
   if posicion<=26 {nombre=nombre+letra[posicion]}
   if posicion=27  {nombre=string_delete(nombre,string_length(nombre),1)}
   if posicion=28  {instance_destroy()}
  }
[/gml]
DRAW
[gml]
draw_sprite(spr_cursor, 0, x_pos+(separacion*(posicion mod columnas)), y_pos+(separacion*(posicion div columnas)))

draw_set_font(font0)
draw_set_halign(fa_center)
draw_set_valign(fa_middle)

for(i=0;i<=28;i+=1)
  {
   draw_text(x_pos+(separacion*(i mod columnas)), y_pos+(separacion*(i div columnas)), letra)
  }

draw_text((room_width/2), (room_height/2), nombre)
[/gml]

Ademas necesitaras un sprite que hara de cursor para mostrar que letra se esta señalando, y una fuente para mostrar todos los caracteres(como la Ñ)

Revisa tambien las funciones font_add_sprite y font_add_sprite_ext para personalizar aun mas los caracteres.

Le echo un vistazo a ver si soy capaz de integrarlo en mi jueguecillo.
Muchísimas gracias!!!
49
Uff, la verdad es que no sé si mis conocimientos alcanzan , jeje.

Podría ser que la variable IntTempAce no está definida?

En el código del primer post ponías esto...


if (IntMove !=0) IntVX = ScrApproach(IntVX, IntVXMax + IntMove, IntTempAce);
else IntVX =ScrApproach(IntVX, IntVXMax + IntMove, IntTempAce);

//Definir aceleracion y friccion en funcion del medio
if (!bolground)
{
   IntTempAce = IntAirAce;
   IntTempFric = IntAirFric;
}
else
{
    IntTempAce = IntGroundAce;
    IntTempFric =IntGroundFric;
}


cambia el orden a ver si suena la flauta...



//Definir aceleracion y friccion en funcion del medio
if (!bolground)
{
   IntTempAce = IntAirAce;
   IntTempFric = IntAirFric;
}
else
{
    IntTempAce = IntGroundAce;
    IntTempFric =IntGroundFric;
}

if (IntMove !=0) IntVX = ScrApproach(IntVX, IntVXMax + IntMove, IntTempAce);
else IntVX =ScrApproach(IntVX, IntVXMax + IntMove, IntTempAce);


De esta forma cuando llegues a llamar al script IntTempAce sí o sí tendría un valor aunque claro, habrá que ver si no te da otro error porque IntAirAce o IntGroundAce no estén definidas, jeje.

Prueba a ver.

Saludos
50
Qué dice el error exactamente?
Seguro que el script se llame tal cual lo estás llamando.

Saludos
51
Preguntas y respuestas / Re:Ayuda con ataque
Agosto 31, 2018, 04:50:10 PM
Compi, el proyecto que has subido seguro que tiene el ataque? Cómo se supone que haces el ataque?

Saludos
52
Cita de: Luis En en Agosto 31, 2018, 08:05:42 AM
Cita de: 3dgeminis en Agosto 31, 2018, 07:18:56 AM
Yo lo haria asi:
[gml]
if keyboard_check(ord("D")) {mx=1} else
if keyboard_check(ord("A")) {mx=-1} else
{mx=0}

repeat(3)
  {
   if !place_meeting((x+mx), y, Obj_Caja) {x+=mx}
   
   if keyboard_check(ord("M"))
     {
      with(instance_place((x+mx), y, Obj_Caja)) {x+=other.mx}
     }
  }
[/gml]

Ok, ahora lo pruebo!
Y mx es una variable que debo de crear?

Gracias por responder!

Yo creo que no hace falta que crees nada sino que esa variable tomará el valor 0,1 o -1 dependiendo de lo que hayas pulsado o no pulsado...
53
Yo creo que las cosas en programación se pueden hacer de muchas formas distintas así que creo que es casi imposible ayudar sin mostrar el código o ser más explícito.
54
Muchas gracias. Le echo un vistazo y me pongo a ello.
55
Preguntas y respuestas / Re:Meter iniciales
Agosto 31, 2018, 02:42:29 PM
Cita de: 3dgeminis en Agosto 31, 2018, 12:00:52 AM
Como lo queres hacer, escribir con el teclado directamente o ir eligiendo letra por letra (arriba y abajo selecciona letra, apretas boton y elegis siguiente letra, etc), o vas eligiendo de teclado en la pantalla ??

Con teclado no... Me refería a que apareciera en pantalla algo así como cuando en los juegos arcades ibas a poner record y con la palanca de la recreativa seleccionabas tus iniciales... Es decir, que aparezcan en pantalla las letras del abecedaria y un borrar y un aceptar y voy seleccionando de ahí.

Es por si había algo ya hecho, algún gmz, librería o similar para no tener que hacerlo desde cero.

Muchas gracias por el interés.

Saludos
56
El error te lo da en la línea 20...

Lo mismo es por el ; que hay de la linea anterior...

//Velocidad Horizontal
if (IntMove !=0) IntVX = ScrApproach(IntVX, IntVXMax * IntMove, IntTempAce);
else IntVX = ScrApproach (IntVX, IntVXMax * IntMove, IntTempAce);


cambialo a
//Velocidad Horizontal
if (IntMove !=0) IntVX = ScrApproach(IntVX, IntVXMax * IntMove, IntTempAce)
else IntVX = ScrApproach (IntVX, IntVXMax * IntMove, IntTempAce);


Quedaría más fácil de ver dejándolo así...


//Velocidad Horizontal
if (IntMove !=0) {
    IntVX = ScrApproach(IntVX, IntVXMax * IntMove, IntTempAce)
}
else {
    IntVX = ScrApproach (IntVX, IntVXMax * IntMove, IntTempAce)
}


que por cierto no entiendo lo hace ese If, ya que en cualquier caso, es decir, para cualquier valor de IntMove siempre vas a darle el mismo valor a IntVX, no?

Saludos
57
Para mí que en esta línea te falta una coma ","

BolGround   = place_meeting(x, y + 1 Obj_Suelo);

creo que debería ser

BolGround   = place_meeting(x, y + 1, Obj_Suelo);

Saludos
58
 :GMS:

He estado buscando y no me queda claro como hacerlo...

Estoy haciendo pruebas para hacer un jueguecillo y lo compilo en windows; me gustaría pasarlo para Android pero no encuentro un tutorial que explique bien qué necesito tener instalado en el PC.
Tengo un Windows 10 y GMS 1.4 con el módulo de exportación a Android.

Muchas gracias por anticipado.
59
Preguntas y respuestas / Re:Meter iniciales
Agosto 29, 2018, 02:34:50 PM
Más que nada es por si alguien tiene hecho algo y que se puede aprovechar y no tener que hacerlo todo desde cero.

Gracias por anticipado.
60
Cita de: BssString en Agosto 29, 2018, 02:10:21 AM
Hola empardopo

Haz un contador e increméntalo en cada step, cuando mueras lo haces cero y listo.

Create event:
tiempo = 0

Step event:
tiempo += 1

Luego lo dibujas como quieras, en gigante, como sprites, etc.
Draw event
var auxiliar = tiempo div room_speed //recive los segundos totales transcurridos. Ej: 150 segundos (2min y 30seg)
var mins = auxiliar div 60 //recibe los minutos transcurridos, ej: 2
var segs = auxiliar mod 60 //recibe el saldo de los segundos (de 0 a 59). Ej: 30
draw_text(0,0,string(mins)+":"+string(segs))


Al morir recuerda hacer tiempo = 0 y listo.

Edit: corregí una función en la variable auxiliar, de mod a div

Saludos

Muchísimas gracias compi, me ha funcionado perfecto.

He modificado un poco porque no me gustaba que tanto los minutos como los segundos aparecieran con un sólo dígito así que lo he modificado; lo adjunto por si le sirve a alguien.


var auxiliar = tiempo div room_speed; //recive los segundos totales transcurridos. Ej: 150 segundos (2min y 30seg)
var mins = auxiliar div 60; //recibe los minutos transcurridos, ej: 2
var segs = auxiliar mod 60; //recibe el saldo de los segundos (de 0 a 59). Ej: 30
if (mins<=9) mins = string(0)+string(mins);
if (segs<=9) segs = string(0)+string(segs);
//draw_text(400,15,string(mins)+":"+string(segs));
draw_text_transformed(400,15,string(mins)+":"+string(segs),1.5,1.5,0);


Igualmente, me hacía falta un poquito más grande el texto así que he usado draw_text_transformed.

Saludos