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

1
function AddItemToMasterList(attributes){
   ds_grid_resize(global.AllItems, ds_grid_width(global.AllItems) + 1, ds_grid_height(global.AllItems));
   for (var i = 0; i < array_length(attributes); i++){
      global.AllItems[# ds_grid_width(global.AllItems) - 1, i] = attributes;
   }
}
2
Lo que estoy cargarn en la columna de la grid es:

AddItemToMasterList(["Cherry", spr_Cherry, 1, Type.Consumable, 1, Obj_Cherry, true]);

¿Podria ser el "true" el que me este dando el error?
3
Preguntas y respuestas / Problemas con ds_grid_set_region
Septiembre 07, 2021, 04:19:50 AM
Hola Buenos días, tardes, noches

estoy teniendo un problema con ds_grid_set_region, entiendo por que que estoy queriendo cambiar valores en posiciones donde están cargados sprites y objetos,

¿Qué alternativa me recomiendan?

Este es el error:
ds_grid_set_region argument 3 incorrect type (undefined) expecting a Number (YYGI32)
at gml_Object_obj_ButtonParent_Step_0 (line 10) -               ds_grid_set_region(grid, slotID, grid[# slotID, Item.Height], slotID, grid[# slotID, Item.Height], noone);
############################################################################################
gml_Object_obj_ButtonParent_Step_0 (line 10)

gracias de antemano
4
Haciendo esto me quedo una duda, el inventario esta dentro de obj_player, por ende si la instancia de obj_player es borrada toda información del inventario se perdería?

PD: en el evento step creo la intancia que se crea ilimitadamente pero al colocar un limitador (un variable que guarda la instancia creada y chequea si la pación actual contiene la misma id no se ejecuta) no me ejecuta el intance_create_layer.
5
Muchas gracias

Podría intentar cargar en la ds_list el obj_Itemhandle(es un objeto vacío) para que no este vacía y luego en el obj_Player poner un evento collicion a un obj_itemParent y que este lo cargue a la ds_list reemplazando al obj_Itemhandle en esa posición, o es mejor colocar un if que revise que esa posición no este vacía? ???
6
Buenos dias, tardes o noches  :D

Estoy haciendo un pequeño inventario usando constructor en vez de arrays, que funciona de maravilla, el problema es que quiero que el personaje sostenga el item en la mano y estoy teniendo problemas al obtener la id, no se si no la estoy guardande desde el costuct a la ds_list o de la ds_list al instance_create_layer
(La idea es que se visualice el primer slot del inventario para probar que funciona primero, después iré agregando cosas)

Tengo el constructor en un script
[gml]function Cherry() : Item() constructor{
   name = "Cherry";
   price = 5;
   sprite = spr_Cherry;
   objet = obj_Cherry;[/gml]

y en obj_player el inventario
ebento create:
[gml]//Inventario
inventory = ds_list_create();

heldItem = instance_create_layer(x, y, "instances", obj_ItemHand);
hand = obj_ItemHand;[/gml]

evento step:
[gml]if(hand != heldItem){
   hand = heldItem;
   var i = 0;
   var _item = inventory[| i];
   instance_create_layer(x, y, "Instances", _item.objet);[/gml]

y me tira esto de error:
Variable <unknown_object>.objet(100009, -2147483648) cannot be resolved.
at gml_Object_obj_Player_Step_0 (line 66) -        instance_create_layer(x, y, "Instances", _item.objet);

Muchas gracias de antemano  ;D

7
Buenos días, tardes o noches

estuve preprogramando una IA con estados para simular animales con diferentes estados y que afecten a su comportamiento, cuando este busque comida la idea es que esquive paredes u otras estructuras pero al ejecutarlo este se tranca.

(aviso que lo programado es una mezcla de tutoriales diferentes que vi mas lo que entendí)

en el Obj_Animal:
evento crear:

/// @description
//Estados
enum SubjetStatus{
   Idle,
   Warden,
   Search,
}
myCurrentStatus = SubjetStatus.Idle;

counter = 0;
spd = .5;

my_dir = irandom_range(0,359);
moveX = lengthdir_x(spd, my_dir);
moveY = lengthdir_y(spd, my_dir);

//Stados
food = 100;

//Path
path = path_add()

evento Paso:
/// @description
//Contadores
food -= 0.1;
//Estados
switch(myCurrentStatus){
   case SubjetStatus.Idle:
   #region Idle
   //behavior
   counter += 1;
   // cambio de Comportamiento
   if(counter >= room_speed*3){
      var change = choose(0, 1);
      switch(change){
         case 0: myCurrentStatus = SubjetStatus.Warden;
         case 1: counter = 0;
         break;
      }
      if(food < 50){
         myCurrentStatus = SubjetStatus.Search;
      }
   }
   #endregion
   case SubjetStatus.Warden:
   #region Warden
   //Behavior
   counter += 1;
   x += moveX;
   y += moveY;
   
   //cambio de comportamiento
   if(counter >= room_speed*3){
      var change = choose(0, 1);
      switch(change){
         case 0: myCurrentStatus = SubjetStatus.Idle;
         case 1: my_dir = irandom_range(0,359);
               moveX = lengthdir_x(spd, my_dir);
               moveY = lengthdir_y(spd, my_dir);
               counter = 0;
      }
      
      //Sprite
      sprite_index = Spr_Test;
      image_xscale = sign(moveX);
      if(food < 50){
         myCurrentStatus = SubjetStatus.Search;
      }
   }
   #endregion
   case SubjetStatus.Search:
   #region Seach
   if(food < 50){
   var food_id = instance_nearest(x, y, Obj_food);
   
   positionX = food_id.x;
   positionY = food_id.y;
   
   if(mp_grid_path(global.grid, path, x, y, positionX, positionY, 1)){
      path_start(path, 4, path_action_stop, false);
   }
   }
   #endregion
}
_______________________________________________________________________________________________________________________________________________________________________

Obj_grid:
evento crear:

/// @description
//Crear la Grid
var cell_heigt = 32;
var cell_with = 32;

var colum_cells = room_width div cell_with;
var row_cells = room_height div cell_heigt;

global.grid = mp_grid_create(0, 0, colum_cells, row_cells, cell_with, cell_heigt);

//agregar las paredes
mp_grid_add_instances(global.grid, Obj_wall,false);


Gracias de antemano, cuando este listo probablemente lo publique para que los demás puedan usarlo  :)
8
Muchas gracias funciono  XD

¿y es posible reutilizar el mismo path para varias entidades lo usen al mismo tiempo o tendré que crear un path para cada uno ?
9
Preguntas y respuestas / Problema con IA de Enemigos
Abril 12, 2019, 07:48:34 PM
Hola buenos días, tarde o noche.

Estaba programando el IA del enemigo usando para su movimiento una grid, el problema es que "path_add()" no esta disponible en la versión trial de game maker studio 2 :'(
He visto otros tutoriales buscando una alternativa pero no encontré nada.

¿Hay alguna manera de hacer lo mismo de otra forma?

Este es tutorial que utilice: https://www.youtube.com/watch?v=LUw78Tk70bM&t=963s
10
Hola, buen día.

Estoy queriendo hacer un juego al estilo "tamagochi" o "pou" para android y necesito que el juego obtenga la hora del teléfono o de alguna manera sepa cuanto tiempo ha esta desconectado el usuario para poder calcular las barra de vida y hambre.

Muchas gracias de antemano.
11
Preguntas y respuestas / Re:Draw Gui y su posicionamiento
Septiembre 08, 2018, 06:00:09 PM
En caso que use draw_sprite, ¿las cordenadas son en relacion a la vista o tengo que crear un objCamara?
12
Preguntas y respuestas / Draw Gui y su posicionamiento
Septiembre 05, 2018, 07:32:05 AM
Hola y buenos días,tardes o noches
Seguramente ya me han visto seguido por aquí peguntando sobre varias cosas, esta vez se trata sobre el evento draw gui o mejor dicho el draw_sprite_stretched.
Lo que quiero es colocar una barra rápida de inventario que no ha sido un problema hasta ahora, pero al querer posicionar la barra en el extremo inferior central de la pantalla y escalarlo no logro centrarlo adecuadamente.
¿Como calculan la posición del sprite?,¿La posición es en relación al punto de origen del mismo?

gracias de antemano
13

Cita de: BssString en Septiembre 02, 2018, 02:11:56 AM
Hola Jalealf

Que bueno que te haya servido el código.
El tema es que todo el código iba en el obj_draw xD
La idea es que el obj_sort no esté dentro del juego porque es un objeto padre, todo lo que hagas ahí lo harán los hijos también.

El error ocurre porque intenta borrar la ds_grid llamada "grid" y no está definida en el evento de creación.
Creala como noone.
grid = noone

xd

yo coloque todo el código en el obj_sort, y al cambiarlo se soluciono.

muchas gracias.
14
Muchas gracias, ahora si me salio, pero, ¿para que sirve el obj_draw en la room?
Y al cerrar me tira un error.
___________________________________________
############################################################################################
FATAL ERROR in
action number 1
of Other Event: Game End
for object obj_sort:

Variable objPersonaje.grid(100007, -2147483648) not set before reading it.
at gml_Object_obj_sort_Other_3 (line 2) - if ds_exists(grid,ds_type_grid) ds_grid_destroy(grid);
############################################################################################
--------------------------------------------------------------------------------------------
stack frame is
gml_Object_obj_sort_Other_3 (line 2)

Muchas gracias de antemano.
15
Ya he intentado lo del tutorial pero se coloca la pantalla en negro, se que tengo que modificar el objeto dependiendo de la posición "y" del personaje o npc pero me complico con el código.
¿Si tienen una versión simplificada para que pueda entenderlo me lo podrían pasar pls?
me gusta entender el código en vez de copiarlo nomas xD