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

106
Voy a hacer un juego y lo que quiero hacer es esto:

Cuando el objeto player (es un cubo 32x32) toque con la pared horizontalmente (si va a la pared va en una velocidad mayor) cuando toque el objeto wall horizontalmente no vertical tiene que revertir la velocidad pero que sea menor, y que cuando este en su posicion inicial con la coordenada X la variable con la que se mueve a los lados es true y que pare de moverse, y así hace para esquivar, el problema es que no se como hacer ya que yo tengo una variable en el create llamada previousx que tiene el valor de la coordenada X inicial ya que ahi es edonde tiene que estar, el problema es que si pongo

if(x == previousx){hspeed = 0;}

obviamente a lo que empieze no se va a poder mover y no se como hacer, este es el codigo:

if(keyboard_check_pressed(vk_right))
{
    hspeed = spd
}

if(keyboard_check_pressed(vk_left))
{
    hspeed = -spd
}

if(place_meeting(x-4,y,obj_wall))
{
    hspeed = returnspd;
}
if(place_meeting(x+4,y,obj_wall))
{
    hspeed = -returnspd;
}
107
No se si tengo un serio retraso en la cabeza pero no entiendo para nada nisiquiera con los ejemplos  :'( :'( :'( :'(

Ya no importa, gracias de todas formas por las respuestas :(
108
Cita de: p34 en Marzo 02, 2015, 05:02:51 AM
El for es como el while, un ciclo que repite una definida cantidad de veces una parte del código.

Como explicó Black_Cat esta conformado por cuatro partes.

for(inicio;condición;incremento/decremento)
{acciones;}

En el inicio tienes que poner una variable y asignarle un valor, por ejemplo i=0; que es el más famoso. En game maker no tienes que declarar la variable "i", pero si quieres usar otra creo si la tienes que declarar. Esta variable es para el control del ciclo ya que en algún momento tienes que salir de él. Esta parte sólo se lee la primera vez que entra al código.

La segunda parte, condición, es como un "if", pones en que momento quieres que se acabe el ciclo, por ejemplo i<10; no tienes que poner la palabra "if" sino que sólo la condición o condiciones. Cada que termina de leer todas las acciones checa si la condición se cumple y en caso de ser así, vuelve a entrar.

La tercera parte es el incremento/decremento. Una vez que acabe de leer todas las acciones viene a esta parte y realiza lo que le digas que tiene que hacer, por ejemplo i+=1

Por ejemplo puedes poner el siguiente código en el draw de algún juego para que veas cómo funciona todo esto:

for(i=0;i<10;i+=1)
{
draw_text(10+10*1,30,string(i));
}


La última parte es la de acciones, y es donde pones todo lo que quieres que repita. Es igual que un if, si sólo es una acción puedes o no ponerle las llaves "{}" pero si es más de una si debes ponerlas.

Trata de que nunca te quede un ciclo del que nunca se pueda salir ya que se traba el programa o juego en este caso, por ejemplo nunca pongas algo así for(i=0;i<10;i-=1){/*cosas*/} ya que inicias en 0, lo haces mientras sea mayor a 10 y lo vas decrementando, por lo que nunca va a ser mayor a 10 y nunca va a salir.

a ver, es como el while, solo que con menos lineas de codigo y de que puedo decrementar la variable cuando esa condicion sea mayor o menor, y si es mayor o menor (en uno no debe de tener limitacion) pasa tal acción?, bueno supongo que no sera tan importante el ciclo for ¿o si?
109
No se es que siempre he visto esa condicion y no la entiendo ya que if es si en español, se entiende como while, es mientras, else es si no pero for no entiendo nadaaaa
110
Preguntas y respuestas / Que son los surfaces?
Febrero 28, 2015, 10:44:57 PM
Quiero que me respondan ustedes de que es eso exactamente.
111
lo del titulo

no me quiere servir el modulo de html5
112
Preguntas y respuestas / Como hago transiciones?
Febrero 28, 2015, 08:08:02 PM
lo del titulo :c cualquier tipo de transicion de room me serviria
113
Cita de: arcangelcaos en Febrero 27, 2015, 11:51:39 PM
Estoy en ek movil. Y no puedo escribir bien. Ponlo entre "" igual. Que en el read.  "Save", "bestscr"

No me sirve, almenos ya no me da el error.
114
Preguntas y respuestas / Re:Diferencia entre "=" y "=="
Febrero 28, 2015, 05:02:15 PM
= sirve para asignar

== sirve para comparar

!= sirve para decir que el resultado que esta a su derecha si no es el igual a

Ejemplos

Una variable necesita un simbolo de asignacion
vidas = 3

en cambio si usaras un if y quieres hacer de que si el valor de X variable pase tal accion se tendria que usar la comparacion

if(vidas == 0){
    game_end();
}


y la yapa que es el != sirve cuando quieres que en un if o alguna condicion si el resultado no es el que esta a la derecha pasa la accion


if(Manzanas != 0)
{
    show_message('Todavia tienes manzanas!');
}
115
gracias pero para entender el script que es min y max?, me podrias decir la definicion TU para que sirven esas 2 funciones?
116
Hice un juego y quiero cargar y guardar el highscore, hago esto pero no me funciona

Este es un script echo una room antes para tener la variable de bestscr y cuando se reinicie la room que no se reinicie el highscore.

global.bestscr = 0;
ini_open("data.ini");
global.bestscr = ini_read_real("save","bestscr",0);
ini_close();


aca tambien lo guardo pero en este si me da error

if(global.scr > global.bestscr)//Si el score que iso el player es mayor al mejor
{
    global.bestscr = global.scr;//Sobreescribirlo
    ini_open("data.ini");
    ini_write_real(save,bestscr,global.bestscr);
    ini_close();
}


aca pruebo el juego y cuando se tendria que guardar (aca lo probaba desde el programa)

############################################################################################
FATAL ERROR in
action number 1
of Alarm Event for alarm 0
for object obj_manager:

Push :: Execution Error - Variable Get -1.bestscr(100007, 0)
at gml_Object_obj_manager_Alarm_0 (line 7) -     ini_write_real(save,bestscr,global.bestscr);
############################################################################################


y aca ya compilado


___________________________________________
############################################################################################
FATAL ERROR in
action number 1
of Alarm Event for alarm 0
for object obj_manager:

Push :: Execution Error - Variable Get -1.bestscr(100007, 0)
at gml_Object_obj_manager_Alarm_0 (line -1) - <unknown source line>
############################################################################################


el problema que yo entiendo es que no lee la variable bestscr que esta almacenada en el .ini

esto es lo unico que hay en el archivo .ini

[save]
bestscr = 0
117
quiero saber como hacer de que haga todo esto

direction = image_angle;
if(keyboard_check(vk_left))
{
    image_angle += 3.5;
}
else if(keyboard_check(vk_right))
{
    image_angle -= 3.5;
}
if(keyboard_check(vk_up))
{
    speed = 5;
} else {
    speed = 0;
}


pero que todo lo haga suave y que el image angle cuando le des a un lado sea suave su movimiento, osea de que no pare asi todo feo si no suavemente igual que con la velocidad y eso.
118
gracias ya creia que este tema estaba muerto  ;D

Este tutorial no responde a mi pregunta ya que no solamente quiero iluminacion en mi juego, tambien quiero saber que son surfaces man, y se que se pueden hacer juegos de dibujar y iluminacion mas basica que esa, quiero un ejemplo de un script basico de surfaces tambien si es posible este es avanzado :/
119
Cita de: n0k en Febrero 27, 2015, 12:47:46 PM
Buenos días desde Madrid. Creo que el problema es que coincide la posición de movmimiento con el bloque, con la posición de movimiento de tu personaje. Es decir, para asegurarte de que no es por eso, intenta poner un numero más bajo en la colisión, y si queda con un espacio entre tu personaje y el bloque, lo podrás mover aunque no golpee del todo, y sabrás que es por eso. Hay que ir descartando de lo más sencillo, a lo más complejo.
Ya nos comentarás como salió el experimento.  :D

Ya he probado eso pero la idea que es que no quiero de que pase eso ya que queda muy feo quiero de que pegue y te puedas mover pegado a la pared y todo eso, una colision buena pues.
120
Hola, no entiendo por que me da un error de que siempre cuando hago un top down shooter o lo que sea siendo top down, tenga un error donde un objeto no colisione bien con el otro objeto.

if(keyboard_check(ord("A")))
{
    x -= 3;
}
if(keyboard_check(ord("D")))
{
    x += 3;
}
if(keyboard_check(ord("W")))
{
    y -= 3;
}
if(keyboard_check(ord("S")))
{
    y += 3;
}


mi juego sera un juego parecido a the binding of isaac, osea que tendre que subir la velocidad y todo eso entonces no necesito problemas cuando suba la velocidad con una futura variable

Ya he probado con place_free(place_empty) move_contact_solid y no funciona, colisiona y se queda pegado y despues de que no colisiona bien queda como medio adentro de el solido y no colisiona bien nunca, si le quito la opcion de solido a el objeto wall no colisiona tampoco.