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

32
mira, seria as?:
en evento create
en la pesta?a control arrastras un codigo y pones

vida_enemigo=100

puede llamarse vida enemigo o lo que te de la gana, y el 100 puede ser el numero que quieras
en Collision Event with object obj_bullet:
lo mismo, arrastras un c?digo y pones:

vida_enemigo=vida_enemigo-10 // o tambi?n sirve vida_enemigo-=10

y por ultimo en step:

if vida_enemigo<=0 {instance_destroy()}

con esto deveria funcionar, lo que falta lo puedes poner en d&d si quieres.s

un saludo.
33
estas usando la vida en D&D ??? es posible o seguro que pase esto por que la vida que estas poniendo es una variable global, y si se pone ne 0 en un objeto, todos los que tengan esa variable sera en 0, prueba a hacerlo en c?digo:

vida=100

si no cuelga el editable y se repara desde el

EDITADO
ops se me adelanto Rodri_cyberdog por unos segundos XD
34
Preguntas y respuestas / Re: Rebote bien echo en PONG
Febrero 01, 2010, 04:19:25 PM
para hacer la acci?n de colisi?n distinta seg?n donde colisione, creo que no se puede hacer con el evento de colisi?n (ahunque si se puede no se me ocurre como hacerlo, sino con la siguiente funci?n:

place_meeting(x,y,objeto)

y se usar?a de la siguiente forma: en evento de step de la pelota

if place_meeting(x, other.y+a,obj_palo) {//que revote como quieras}//significa si colisiona por la parte superior
if place_meeting(x, other.y-a,obj_palo) {//que revote como quieras} //significa si colisiona por la parte inferior

en este caso a = mitad del sprite, si es de 32 de alto, pues a valdr?a 16.
si no te sale te puedo hacer un ejemplo.
un saludo

editado
ops se me hab?a olvidado la segunda parte, para que golpee en el medio seria as?:

if  not place_meeting(x, other.y+a,obj_palo) or not place_meeting(x, other.y-14,obj_palo)
{
//sino golpea en esos puntos, (que seria en el medio),....
}

en este caso ten en cuenta que si a es justo la mitad de el sprite, no podr? golpear en el centro
35
hola, se me ocurren varias formas;
1?
con esta puedes poner la dificultad seg?n la velocidad
en step del objteo ia

move_towards_point(x,obj_pelota.y,velocidad)

asi dependiendo de la velocidad sera mayor o menor la dificulatad

2?
esta es para una dificultad imposible de ganar
en step de objteto ia

y=obj_pelota.y

as? siempre estar? en la misma posici?n y que la pelota.
espero que te sirva ^^
un saludo
36
mmm en teor?a creo que si, pero para ello tendr?s que usar la 39dll, si no, con las funciones del game maker te va a ser dif?cil, en cuanto al tutorial, no se si hab?a uno en la comunidad ....
37
hola, has chekeado que si hay un sitio libre que se mueva??
se hace asi (en D&D)

if relative position (+1,0) is collision free for Only solid objects
esto esta en la pesta?a control, la primera de quiestions, a continuaci?n poner entre corchetes que se mueva, y en c?digo quedar? asi:

if place_free(x+1,y) {x+=5}

ademas puedes mirar en los ejemplos oficiales de yoyogames, hay uno donde viene el engine de plataformas
si de todas formas no lo entiendes te hago un ejemplo o buscas en la secci?n de descargas.
un saludo
38
hola, encontr? justo lo que quieres en la secci?n de descargas:
http://www.comunidadgm.org/index.php?page=64&accion=descargaD&download_id=1212
espero que te sirva, un saludo
39
hola, tal vez eso lo encuentres en la seccion de descargas, si no estaria mejor que especificaras mas que es lo que quieres en concreto  :-[ (del as peleas, movimiento, ataques)
un saludo
40
Citar* Nombre del creador:  bartolojc(CGM)  
* Breve descripci?n de su funci?n: son dos scrips uno que incia las variables , y otro que realiza el movimiento, la funcion de este script es la creaci?n de ?rbitas circulares o el?pticas de forma muy sencilla.
* Versi?n GM utilizada: :GM8: Game Maker 8 PRO,  :GM7: funciona en gm7 pro, no se si funcionar? en otras.
* C?digo del Script :

ini_orbita

//argument0 radio X (largo de la circunferencia
// argument1: radio y (alto de la circunferencia)
//argument2: velocidad (0 a infinito), lo normal es entre 100 y 200 ,EN CUANDO MENOR SEA, MAS RAPIDA SERA LA ORBITA???
//argument3: velocidad rotacion
n=0
xx=0
yy=0
radiox =argument0;
radioy =argument1;
alfa = 0;
reductor = argument2;
steps = (pi*2)/reductor;
dist=0

/****CGM: bartolojc*****/


/* ESTE SCRIPT ES 100% LIBRE TANTO EN USO COMO EN MODIFICACION
EL CREDITO ES TOTALMENTE OPCIONAL ;)*/


src_orbita


//argumnent0: se orbita alrededor de argument0
dist=100/(point_distance(x,y,argument0.x,argument0.y))
steps = (pi*dist)/reductor;
xx = radiox*cos(alfa);
yy = radioy*sin(alfa);
y = argument0.y+yy;
x = argument0.x+xx;
alfa +=steps

if (alfa>(pi*2))
{
   alfa = alfa-(pi*2);
}

image_angle = n;
n-=2;

/****CGM: bartolojc*****/


/* ESTE SCRIPT ES 100% LIBRE TANTO EN USO COMO EN MODIFICACION
EL CREDITO ES TOTALMENTE OPCIONAL ;)*/



bueno, pues ya no hay nada mas que contar xd.
espero que les sirva este scrip

EJEMPLO

en el ejemplo aparece la forma normal de usar el scrip con el obj_luna, y ademas hay un scrip llamado scr_orbita_tierra que tiene una peque?a modificaci?n (que esta indicada y explicada) para dejar al sol en un lada de la elipse

Imagen del ejemplo:
41
claro XD gracias a los dos, las dos maneras funcionan.
(regla de tre inversa, como no, parece mentira que este estudiando matem?ticas XD)
42
hola, como puedo hace que un objeto con la variable vel, que esta variable aument en cuanto mas cerca este de objeto 2, y disminuya en cuanto mas lejos este del objeto 2, parece y tendria que ser facil, pero no se me ocurre como T.T ?alguna idea?
gracias por leer, un saludo
43
hay muchas ,maneras, desde l?gicas hasta aleatorias, para usarlas de una manera l?gica (si cogemos por ejemplo un ejemplo de un combate pokemon) podemos tomar en cuenta ,la vida, el tipo de pokemon, dificultad etc, a trav?s de chequeos como:
if obj_pokemon.tipo="agua" {ejecuta un ataque de agua}, si son varios, toma como referencia la vida, o usa choose para hacerlo al alzar.
en cuanto mas variables tengas, mas inteligente sera la IA. en caso de otro tipo de juego, como rpg o plataformas, puedes chequear sobretodo la distancia etc.

CitarPero que no me estuviera atacando siempre...
puedes usar las alarmas, o puedes usar variables que hagan de contador. por ejemplo en este scrip:

//create
contador=0
//step:
contador+=1 // o lo que sea
if contador >= 30 // u otra cifra {contador=30}
//y cuando se ejecute la variable de ataque, por ejemplo en step
if atake_fuego=true
{
       if contador=30
       {
                 //se ejecuta el ataque
                 contador=0 el contador vuelve a 0 para que no se repita
                  atake_fuego=false // termina el ataque
        }
}

en teoria con esto la IA tendr?a que funcionar.
un saludo
44
a ver, no se si entend? bien, quieres saber como hacer para que a cierta distancia el enemigo te ataque, en concreto a 128, puedes usar distance_to_object

if distance_to_object(dragon)<128
{
instance_create(x,y,obj_bolafuego)
with(obj_bolafuego) {move_towards_point(mago.x,mago.y,velocidad
}

con este c?digo, si el mago esta a 128 de drag?n, el drag?n crea una bola de fuego, y la bola prosigue al mago, este c?digo se debe poner en step.
no se si es esa la respuesta a tu pregunta.
un saludo
45
Preguntas y respuestas / Re: disparar a los 2 lados
Noviembre 23, 2009, 07:45:47 PM
hola, para ello solo tienes que usar las variables, por ejemplo:
en create
direcion="d"
al pulsar la tecla derecha pones
direcion="derecha"
al pulsar la tecla izquierda
direcion="izquierda"
y para disparar

if direcion="derecha"
{
       x+=5
}
if direcion="izquierda"
{
      x-=5
}

y ya esta, creo de todas formas (ahumque he buscado y no lo he encontrado) que esta pregunta ya ha sido forulada, parate de aver ejemplos en descarga
espero qeu te sirva
un saludo