FadeBaker, очевидно же, что число в массиве - идентификатор карты, после рандомного выбора такого идентификатора, его нужно присваивать всем массивам для каких-то последующих манипуляций
Добавлено (21 января 2015, 21:28) --------------------------------------------- [Your_Last_Day], если я тебя правильно понял, то тебе нужно сделать как-то так:
Код
card = irandom(2) // в переменную card записываем случайное число от 0 до 2-х
jayreck, спасибо, но пока что размер вида ограничен размером комнаты.
Добавлено (17 января 2015, 03:02) --------------------------------------------- OpenGOO, проблема такой системы - невозможность преломить свет такой "лимпочки" (по крайней мере, для меня)
существует еще o_wall, который необходим только для преломления света, никаких других практический применений он не имеет
Но столкнулся с одной не очень приятной проблемой: моя система освещения выдает катастрофически маленький FPS даже при одном источнике освещения!
Проведя парочку тестов я выяснил: 1) Чем ближе источник света к стене, тем большее FPS выдает игра Ps: обусловлено это тем, что количество циклов для "поиска стены" нужно выполнить меньше при небольшом расстоянии.
2) Чем меньше в комнате обьектов, которые гипотетически могут преломить свет, тем больший FPS выдает игра. Ps: ?!
Пишу я это потому, что видел системы освещения, которые даже при сотне источников света работают на максимальных FPS.
В связи со всей это ситуацией я прошу вашей помощи: помогите, подскажите, как увеличить FPS
Сообщение отредактировал aFriend - Пятница, 16 Января 2015, 01:39
Я бы сделал так: 1) Создал обьект без спрайта 2) При помощи draw_sprite_ext и lengthdir рисовал составные части обьекта 3) При помощи сурфа создал маску для проверки столкновений
mp_grid_path This function computes a path through the given mp_grid.
mp_grid_path(id, path, xstart, ystart, xgoal, ygoal, allowdiag) id - Index of the mp_grid that is to be used path - index of the path that is to be used by the function x start- Starting x coordinate of the new path y start - Starting y coordinate of the new path xgoal - Finishing x coordinate of the new path ygoal - Finishing y coordinate of the new path allowdiag - Indicates whether diagonal moves are allowed instead of just horizontal or vertical Returns: Boolean.
Description With this function you can create a path that will navigate from a start point to a finish point using an mp_grid that you have previously defined, avoiding any obstacles that have already been added into the grid. The xstart and ystart arguments indicate the start of the path in room coordinates, while xgoal, ygoal arguments indicate the destination. You can also select either horizontal/vertical movement only, or allow full diagonal movements by specifying true in the allowdiag argument. The function returns either true (it succeeded in finding a path) or false (it failed) as well as setting the chosen path. Note that the path is independent of the current instance - it is a path through the grid, not a path for a specific instance, even though a specific instance may have the variable that stores the path index. You may also need to debug these paths to see how they are made and interact within the game environment, in which case you should be using the draw_path function.
NOTE: The path must have been previously created (either in code with path_add or as a resource) and will be replaced by the path generated by this function.
Example:
Код
globalvar grid; grid = mp_grid_create(0, 0, room_width div 32, room_height div 32, 32, 32); mp_grid_add_instances(grid, obj_wall, false); with (obj_Enemy) { path = path_add(); if mp_grid_path(grid, path, x, y, obj_Player.x, obj_Player.y, 1) { path_start(path, 0, 3, 0); } }
The above code creates a global variable "grid", then generates an mp_grid and assigns its index (id) to that variable for use in all further mp_grid function calls. It then adds all instances of "obj_Wall" into the grid before getting all instances of "obj_Enemy" to create a path and then use mp_grid_path to calculate a rout from their position to the position of "obj_Player". If a route exists then the object starts itself along the path.
Сообщение отредактировал aFriend - Понедельник, 22 Декабря 2014, 20:26