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 - 3dgeminis

212
Aqui esta:

CREATE
[gml]
objetivo=0 ///nos servira para marcar al objeto enemigo
lista=ds_list_create()

with(enemigo) ///los objetos enemigos para añadir a la lista
   {
    ds_list_add(other.lista, id)
   }
[/gml]

STEP
[gml]
;)if keyboard_check_pressed(vk_down) {objetivo+=1} ///siguiente enemigo (abajo)
if objetivo>(ds_list_size(lista)-1) {objetivo=0} ///si llega al ultimo pasa al primero

if keyboard_check_pressed(vk_up) {objetivo-=1} ///enemigo anterior (arriba)
if objetivo<0 {objetivo=(ds_list_size(lista)-1)} ///si llega al primero pasa al ultimo

if ds_list_size(lista)>0 ///si hay enemigos para atacar
   {
    if keyboard_check_pressed(vk_space) ///en lugar del ataque use la tecla ESPACIO
       {
        if ds_list_size(lista)>0 ///si hay enemigos
           {
            with(ds_list_find_value(lista, objetivo)) ///elige al enemigo seleccionado(objetivo) en la lista
               {
                vida-=choose(10,20,30) ///le quita vida
                if vida<=0 ///y si la vida llega a cero
                   {
                    instance_destroy() ///destruye al objeto
                    ds_list_delete(other.lista, other.objetivo) ///lo elimina de la lista
                   }
               }
           }
       }
   }
[/gml]

DRAW
[gml]
if ds_list_size(lista)>0 ///nos aseguramos que aun hayann enemigos para poder dibujar el cursor
   {
    draw_sprite(spr_cursor, 0, ds_list_find_value(lista, objetivo).x+50, ds_list_find_value(lista, objetivo).y-32) ///dibuja el cursor
   }
[/gml]

DESTROY
[gml]
ds_list_destroy(lista) ///destruye la lista cuando termina el combate(el objeto se destruye cuando termina el combate y no se encesita mas)
[/gml]
213
Para este caso en que se crean y destruyen objetos creo que una ds_list sera lo mejor.
En lugar de guardar las coordenadas solo tendrias que guardar la id de los objetos enemigos y usar esa id para colocar el cursor y cuando elimines un enemigo solo borras la id de la lista y automaticamente te elije el siguiente objetivo.
Si quieres te paso el codigo.
Fijate en el ejemplo
214
Probe el codigo y funciona perfecto, talves estes creando al enemigo fuera de la pantalla.
215
Preguntas y respuestas / Re:Centrar titulo del juego
Octubre 08, 2018, 11:29:40 PM
No encontre ninguna funcion que permita eso, podrias hacerlo poniendo espacio antes del texto
en lugar de

Swindle

lo escribirias asi

                                Swindle
216
Te dejo un ejemplo en codigo con algunos comentarios de lo que hace (ten a mano el manual 8))
217
La version no tiene porque importar.
El menu podria ser solo una variable que cambie su valor y dependiendo de su valor se hara una accion u otra.
Si el valor es 1 te lleva al primer nivel, si es 2 te lleva al ultimo nivel que hayas jugado, y si es 3 te lleva a otro menu con sus propias opciones.
Para dibujarlo puedes crear un sprite con el mismo texto/opciones pero la flecha en diferente posicion.
Que es especificamente lo que no puedes hacer ?
218
Preguntas y respuestas / Re:dibujar objeto con el dedo
Octubre 05, 2018, 09:00:45 PM
Podes usar un sprite de 1 pixel de ancho y 6 de alto para hacer la linea.
Ya sabes como obtener la longuitud(point_distance) y el angulo entre el punto inicial y final(point_direction).
Usas la distancia para escalar el sprite(image_xscale) y el angulo para girar el sprite(image_angle) y ya tenes la linea con mascara de colision.
Asegurate que las propiedades del sprite tenga la mascara colision precisa y automatica.
219
Para crear un objeto se usa la funcion instance_create
[gml]
if keyboard_check_pressed(ord("A")) {instance_create(x,y,obj_dialogo)}
[/gml]
220
Preguntas y respuestas / Re:dibujar objeto con el dedo
Octubre 02, 2018, 07:59:04 PM
Si al final sera una linea es mejor hacer una linea desde el principio.
CREATE
[gml]
x1=x
y1=y
x2=x
y2=y
dibujar=true
[/gml]
STEP
[gml]
if mouse_check_button_released(mb_left) {dibujar=false}

if (mouse_check_button(mb_left) and dibujar=true)
  {
   ang=point_direction(x1,y1,mouse_x,mouse_y)
   x2=median(x1, mouse_x, x1+lengthdir_x(200,ang))
   y2=median(y1, mouse_y, y1+lengthdir_y(200,ang))
  }
[/gml]
DRAW
[gml]
draw_line_width(x1,y1,x2,y2,6)
[/gml]

Cuando se presiona con el raton, desde otro objeto se crea el objeto que dibujara la linea con el codigo de arriba.
x1 y1 sera la posicion de inicio, y x2 y2 seran la posicion final mientras se mantenga presionado el boton del raton (controlado por la variable dibujar)
El largo de la linea estara dado por el valor medio entre 3 valores, la posicion inicial (x1 y1), el cursor (mouse_x mouse_y) y el valor 200 pixels (que se dara usando la posicion inicial mas lengthdir_x, lengthdir_y y ang)
221
La idea es tener un nuevo eje (eje z) ademas de los ejes x y, este eje controlara la altura.


Para crear la ilusion de salto se crearan 2 sprites, la sombra que sera la base del jugador y ademas la mascara de colision, y el sprite del personaje que solo estara para representarlo visualmente.
A su vez este nuevo eje z tendra su velocidad (z_vel)
Como el movimiento del eje z sera vertical, se sumara al eje y.
El codigo:
[gml]
/////////////////////////////////////////////////////////////////////////////
///CREATE

z=0
z_vel=0
z_salto=14

/////////////////////////////////////////////////////////////////////////////
///STEP

x+=(keyboard_check(ord("D"))-keyboard_check(ord("A")))*4
y+=(keyboard_check(ord("S"))-keyboard_check(ord("W")))*4

if (keyboard_check_pressed(ord("I")) and z=0) {z_vel=-z_salto}

if z_vel<20 {z_vel+=1}

if (z+z_vel)>=0
    {
     z_vel=0
     z=0
    }
   
z+=z_vel

/////////////////////////////////////////////////////////////////////////////
///DRAW

draw_sprite(spr_sombra, 0, x, y)
draw_sprite(spr_personaje, 0, x, (y+z))

[/gml]
222
[gml]
x=view_xview[0]+50 ///50 o la posicion que quieras que este si no pones 0 aparece en la esquina arriba izquierda
y=view_yview[0]+50
[/gml]
223
No pregunte eso, pregnte para que la usas en tu juego viendo que no necesitas que el sprite gire
224
Una duda, para que usas image_angle y point_direction?
225
Lo estas probando en Windows o Android ?