Суббота, 20 Апреля 2024, 02:24

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Форум игроделов » Записи участника » Overdrave [47]
Результаты поиска
OverdraveДата: Воскресенье, 15 Июня 2014, 19:43 | Сообщение # 21 | Тема: Уроки от karambaman
частый гость
Сейчас нет на сайте
Оу. Тогда прошу простить моё непонимание.
OverdraveДата: Воскресенье, 15 Июня 2014, 19:28 | Сообщение # 22 | Тема: Уроки от karambaman
частый гость
Сейчас нет на сайте
HaGe, так вот мы и не отрицаем, что можно. Мы просто говорим, что если комнат очень много, то проще расставлять такие объекты, а не заносить переменные в массив. Оба способа хороши и имеют право быть, дело лишь в том, что один саааааамую малость проще, а другой сааааааамую малость менее памятозатратный (...вот это слово вышло...).
OverdraveДата: Воскресенье, 15 Июня 2014, 12:16 | Сообщение # 23 | Тема: Уроки от karambaman
частый гость
Сейчас нет на сайте
HaGe, я думаю, все этим грешили/грешат (как в моём случае). Как никак, а для понимания это легче. Да и память это не так нагружает (хотя понятно, что там чуть-чуть нагрузил, здесь чуть-чуть нагрузил и всё лагает).
В данном случае расстановка этих самых объектов гораздо легче и удобнее, ведь прописывать пачку координат каждой комнате довольно... эм... долго?..
OverdraveДата: Суббота, 14 Июня 2014, 23:43 | Сообщение # 24 | Тема: Проблема с инвентарем
частый гость
Сейчас нет на сайте
Не уверен, что сработает, но попробуй убрать строчку
Код
o_inv.sprite[i] = sprite_index; //Присваиваем спрайт
(13-ая строчка в событии столкновения объектов родителя)

UPD:
Я попробовал у себя - всё работает исправно.


Сообщение отредактировал Overdrave - Воскресенье, 15 Июня 2014, 00:22
OverdraveДата: Суббота, 14 Июня 2014, 17:01 | Сообщение # 25 | Тема: Создание "продвинутого" платформера [Урок]
частый гость
Сейчас нет на сайте
Дофигища ошибок! Правда, еще на стадии прописывания перемещения персонажа я подумал "А как он будет делать передвижение по льду, если перемещение он делает через изменение координат?" Напомню, что hspeed в таком случае будет оставаться нулевым.

Также, прописывая place_meeting, надо указывать не просто х+1, а х+[число, на которое изменяется координата] или просто х+hspeed. (как у вас с гравитацией и vspeed сделано)
OverdraveДата: Среда, 11 Июня 2014, 11:16 | Сообщение # 26 | Тема: Вопрос по передвижению персонажа
частый гость
Сейчас нет на сайте
HaGe,
Просто я не люблю через изменение координат делать. Только скорости! Через координаты, как по мне, можно делать лишь движение по графику.
А, кстати, в своём коде забыл ещё кое-что учесть, сейчас подправлю...
OverdraveДата: Среда, 11 Июня 2014, 11:03 | Сообщение # 27 | Тема: Вопрос по передвижению персонажа
частый гость
Сейчас нет на сайте
Ну, способов много, надо учитывать множество других действий. Если это платформер, то управление должно быть совершенно другое (как уже было сказано - на стрелочках/WASD). Если под платформером вы имели в виду обычную бродилку, де не надо прыгать, то всё можно сделать по тому же принципу, что и в курсор в стратегиях:

(((Сразу предупрежу, что я работаю в ГМС, потому, если вы используете иную версию, код может не подойти)))
1)Создаём объект goto_cursor
2)В Global Left Pressed у ПЕРСОНАЖА пишем
Код
with(goto_cursor) instance_destroy() //Удаляется курсор, к которому должен направлять персонаж
instance_create(mouse_x,mouse_y,goto_cursor //Создаёт объект-курсор, к которому должен двигаться персонаж


3)В Step персонажу пишем
Код
if instance_number(goto_cursor)>0
{
if x<goto_cursor.x
hspeed=4
if x>goto_cursor.x
hspeed=-4
if distance_to_object(goto_cursor)<=hspeed    
{
hspeed=0
}
if hspeed=0
with(goto_cursor)
instance_destroy()
}


Замечу, что сам пока этот код не испытывал. А, ну и ещё момент - тут только передвижение по Х, так что он действительно не подойдёт, если надо будет прыгать/лазать по лестницам.


Сообщение отредактировал Overdrave - Среда, 11 Июня 2014, 11:15
OverdraveДата: Среда, 11 Июня 2014, 00:02 | Сообщение # 28 | Тема: Рандомная музыка
частый гость
Сейчас нет на сайте
aFriend, доработал мальца:

Create
Код
track[0] = sound0  
track[1] = sound1  
track[2] = sound2  
track[3] = sound3  
track[4] = sound4  

randomize()
i = irandom(4)  
audio_play_sound(track[i],1,0)  
last_track = i

timing=0


В Step
Код
randomize()
timing+=1
if timing/room_speed>=audio_sound_length(track[i]) //Можно сделать задержку, если приписать к левой части равенства, например +2 (задержка в 2 секунды)
{  
i = irandom(4)  
if(last_track = i){  
i = irandom(4)  
}else{  
timing=0
audio_play_sound(track[i],1,0)
last_track = i  
}  
}
OverdraveДата: Вторник, 10 Июня 2014, 21:55 | Сообщение # 29 | Тема: Ответьте пожалуйста!
частый гость
Сейчас нет на сайте
В Create комнаты
Код
global.enemy_numb=0
(((Обнуляет переменную кол-ва врагов)))

В Create врага пишешь
Код
global.enemy_numb+=1
(((Прибавляет 1 к переменной кол-ва врагов)))

В Destroy врага пишешь
Код
global.enemy_numb-=1


У персонажа или отдельном невидимом объекте проверяешь количество врагов и своим способом выводишь сообщение.

Сразу предлагаю свой способ:
1)Делаем проверку и создаём объект "text_no_enemy"
Код
if global.enemy_numb=0
instance_create(room_width/2-sprite_width/2,room_height/2-sprite_heigth/2,text_no_enemy)


2)Спрайт у text_no_enemy ставим серый прямоугольник

3)В Create text_no_enemy вводим
Код
alpha=5
(можно поменять)

4)В Step text_no_enemy вводим
Код
alpha-=0.1
if alpha=0
instance_destroy()


5)В Draw text_no_enemy вводим
Код
draw_sprite_ext( sprite_index, image_index, x, y, 1, 1, 0, c_white, alpha)
draw_text_ext_transformed_colour(x+8, y+8, 'Enemy left: 0', 4, 300, 1, 1, 0, c_white, c_white, c_white, c_white, alpha)
(((Аргументы необходимо будет изменить)))


Сообщение отредактировал Overdrave - Вторник, 10 Июня 2014, 22:07
OverdraveДата: Понедельник, 05 Мая 2014, 18:40 | Сообщение # 30 | Тема: Проблема с mouse
частый гость
Сейчас нет на сайте
Initro,
Ну, выглядеть будет примерно вот так


Сообщение отредактировал Overdrave - Понедельник, 05 Мая 2014, 18:41
OverdraveДата: Понедельник, 05 Мая 2014, 18:27 | Сообщение # 31 | Тема: Помогите с INI файлом
частый гость
Сейчас нет на сайте
Быть может, есть другой объект, который меняет это значение? У меня была подобная проблема, но потом я вспомнил, что присваивал эту переменную через Creation code комнаты.
Ну, а если это не помогло, то вот парочка советов:
1)ini_open('saves_set.ini') - строчка не только пытается считать, но и самостоятельно создаёт ini-файл (если его нет). Заморачиваться с этим не надо
2)global.music=ini_read_real('section','keymus',[то, какое значение примет переменная, если такого раздела в ини-файле не найдёт (например, при его создании)])
3)ini_close() - не забывайте закрывать ini-файл. Просто так, для надёжности.
4)Надеюсь, считывание данных идёт до проверки.
5)Если что, объекты обрабатываются в порядке слева на право и сверху вниз. Это значит, что объект, который проводит считывание должен находиться левее и выше объекта, проводящего проверку и запуск музыки.
6)ini_write_real('section','keymus',global.music) - надеюсь, у вас верно написана запись?
OverdraveДата: Понедельник, 05 Мая 2014, 17:59 | Сообщение # 32 | Тема: Проблема с mouse
частый гость
Сейчас нет на сайте
Цитата
Mouse_x

This read-only variable returns the current x axis position of the mouse within the room.
© Справка GMS'а

"Read-only" означает, что эту переменную нельзя менять принудительно, она "только для чтения".

А вообще, могу предложить систему управления, выдернутую из моего скролл-шутера (если она тебе подойдёт).


Если заинтересовало, могу расписать поподробнее.
OverdraveДата: Среда, 12 Февраля 2014, 20:10 | Сообщение # 33 | Тема: ServivCraft 2D Online [2.0.0]
частый гость
Сейчас нет на сайте
Цитата maksim1221232 ()
Реализовано:

Цитата maksim1221232 ()
-Есть возможность ставить блоки


Цитата maksim1221232 ()
Будет добавлено:

Цитата maksim1221232 ()
-Возможность ставить блоки


Я не понял, там можно ставить блоки? ._.

А так, мне нравится. Ну, неплохо для начинающего. Наверное. Я сам начинающий.
Мне бы мультиплеер научиться пилить...


Сообщение отредактировал Overdrave - Среда, 12 Февраля 2014, 20:11
OverdraveДата: Воскресенье, 29 Декабря 2013, 22:32 | Сообщение # 34 | Тема: Как сделать босса
частый гость
Сейчас нет на сайте

Такого босса я делал 1 день. 98% работы - это разработка лазера и поведение ракет. Оставшиеся 2% - "хождение" главной части босса влево-вправо.
В нужном тебе боссе может не быть лазеров и ракет. Тебе скинуть, как надо запрограммировать хождение влево-вправо?..
OverdraveДата: Воскресенье, 29 Декабря 2013, 22:20 | Сообщение # 35 | Тема: Уже давно всем надоевший вопрос о паузе
частый гость
Сейчас нет на сайте
Всё сделал следующим образом:
В объекты Pause эвент CREATE
Код
surf = surface_create(view_xview+640,view_yview+480);
surface_set_target(surf);
draw_clear_alpha(c_black,0);
with(all)   
{
if (visible == true)
{
event_perform(ev_draw,0);  
}   
}  
surface_reset_target();

instance_deactivate_all(true);


В итоге ничего не получилось, поэтому я добавил игроку событие Draw и вбил ему всего лишь "Draw_self()". Когда я запустил игру и нажал на паузу, появилось не только окно паузы и тайтлы, но отрисовался спрайт игрока! Я на радостях добавил событие Draw каждому из сотни своих объектов, вставляя "Draw_self()". Знаете, какая злость меня взяла, когда после всего этого НИЧЕГО не изменилось? Отрисовывался один лишь спрайт паузы, тайтлы и игрок... А ведь в нём не было, по-моему ничего особенного.
Следующим этапом я решил проверить, вдруг дело в количестве операций отрисовки, поэтому я создал ещё один объект игрока. Оба отрисовывались прекрасно.
Расскажите мне, дураку, почему не отрисовываются другие объекты?
OverdraveДата: Пятница, 18 Октября 2013, 18:12 | Сообщение # 36 | Тема: Уже давно всем надоевший вопрос о паузе
частый гость
Сейчас нет на сайте
Пауза в моей игре выглядит так:
Игрок нажимает на шифт и все объекты в комнате зависают, посередине появляется полупрозрачная менюшка с надписью "пауза". Стрелочками игрок может выбрать нужный ему пункт меню.
После давнешнего обновления команда, отвечающая за "фриз" объектов была заменена (всё было построено на deactivate'ах и create_sprite_from_screen'ах) на create_sprite_from_surface.
Сурвейсы уже давно не могу освоить, поэтому очень прошу вашей помощи.
OverdraveДата: Понедельник, 30 Сентября 2013, 09:05 | Сообщение # 37 | Тема: Простенькая система освещения
частый гость
Сейчас нет на сайте
Цитата (GAME-MAKER-man)
Может лучше в яндексе поискать?

Ну, не надо так расстраиваться, что тебя посылали в яндекс искать, но ты правда тогда задал не конкретный вопрос. Я же свой вопрос построил, по-моему, весьма доходчиво, поэтому жду столь же ясного ответа.
OverdraveДата: Пятница, 27 Сентября 2013, 14:42 | Сообщение # 38 | Тема: Простенькая система освещения
частый гость
Сейчас нет на сайте
Захотел сделать свою систему с блэкджеком и недо-тенями, но. увы, без помощи я не обойдусь...
Вся система основана на проверке расстояния до родительского объекта Light_par, считывания его переменной look_stat (чем больше переменная - тем дальше от радиус видимости) и изменении спрайта (мобы работают аналогично, только меняют свою переменную "visible").
Персонаж стоит, ходит, свет есть, мобы отображаются, всё, кажется, прекрасно, но тут мною добавляется ещё один объект, свет от факела (спрайт для которого ещё не нарисован |D)...
Так как объект пола берёт переменную look_stat непосредственно от Light_par, то он считывает этот параметр у ПЕРВОГО объекта с родителем Light_par.
ПРИМЕР:
Факел должен освещать блоки в радиусе 70-ти пикселей, а персонаж - 130.
Параметр look_stat факела: 0,7, а у персонажа - 1,3.
Блок-пол считывает переменную ФАКЕЛА, т.е. все источники света теперь будут освещать одинаково - на 70 пикселей.

Я попробовал использовать переменную a, считывающюю id ближайшего объекта, и пока объекты вдалеке друг от друга, всё в порядке, но когда подходят друг к другу...

Кстати, код Draw объекта пола:
Код
if instance_number(Player)>0
{
if distance_to_object(a)<a.look_stat*100 and !collision_line(x,y,Light_Player.x+16,Light_Player.y+32,solid_parent,0,0)
draw_sprite_ext(sprite9_snow_bricks_light,image_index,x,y,1,1,direction,c_white,1)
else
draw_sprite_ext(sprite8_snow_bricks_back,image_index,x,y,1,1,direction,c_white,1)
}
else
draw_sprite_ext(sprite8_snow_bricks_back,image_index,x,y,1,1,direction,c_white,1)




Итак, как это исправить? Или же моя система настолько шлаковая, что её лучше заменить сразу?


Сообщение отредактировал Overdrave - Пятница, 27 Сентября 2013, 14:43
OverdraveДата: Суббота, 29 Июня 2013, 23:11 | Сообщение # 39 | Тема: Система голода
частый гость
Сейчас нет на сайте
И на последок
Код
alarm[0]=room_speed*60*5

- пять минут
Код
alarm[0]=room_speed*60*10

- десять минут

Изменяй последнее число - это минуты. Универсально для любой комнаты с любой скоростью.
OverdraveДата: Понедельник, 17 Июня 2013, 10:51 | Сообщение # 40 | Тема: Лазеры и зеркала
частый гость
Сейчас нет на сайте
Saladin, извините за мою тупость, но я ничего не понял ._______.

UPD:
Направил свою 3-юю систему:
Код

if instance_number(Player)>0
{
if collision_line(x,y,xx,yy,Player,0,0) and attack=1
with Player
{
instance_destroy()
}
}


Почему я раньше не додумался до такого простого кода?..

В любом случае, я не знаю, как рисовать лазер, отражённый от зеркала :с

Добавлено (17.06.2013, 10:51)
---------------------------------------------
UP'аю тему. До сих пор интересуют зеркала.

Сообщение отредактировал Overdrave - Вторник, 11 Июня 2013, 19:05
Форум игроделов » Записи участника » Overdrave [47]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг