Вторник, 16.04.2024, 13:01
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Разработка игр » Вопросы по game maker » Арканоид - это как? (Статус: Решено)
Арканоид - это как?
GreedMoreДата: Воскресенье, 17.04.2016, 14:03 | Сообщение # 1
Заглянувший
Группа: Пользователи
Сообщений: 1
Награды: 0
Репутация: 0
Статус: Offline
Прочитал статью про арканоид на сайте (неплохая, но неполная), но при повторении всего, что в ней изложено, возникли вопросы и проблемы:
1. Число жизней изначально -1. Пробовал поменять параметры там и тут... что-то не очень.
2. Бита "летает" сквозь стены
3. Хотелось бы узнать, как сделать "начальный" экран (с менюшкой типа начать-загрузить-выйти)
4. Кто-то знает, как сделать такие бонусы, как "прилипание" шара или стрельбу?
5. Как сделать возможность сохранения в игре?
 
MasterSamboДата: Четверг, 21.04.2016, 11:25 | Сообщение # 2
Персонаж
Группа: Постоянный
Сообщений: 1402
Награды: 0
Репутация: 97
Статус: Offline
Цитата GreedMore ()
1. Число жизней изначально -1. Пробовал поменять параметры там и тут... что-то не очень.
Значит выдавай сразу 5 и относительно.
Цитата GreedMore ()
2. Бита "летает" сквозь стены
Такое может случиться.
Цитата GreedMore ()
3. Хотелось бы узнать, как сделать "начальный" экран (с менюшкой типа начать-загрузить-выйти)
Это тема отдельной статьи, таковая есть на сайте, я и сам писал о таком здесь
Цитата GreedMore ()
4. Кто-то знает, как сделать такие бонусы, как "прилипание" шара или стрельбу?
Я лично не знаю, но можно в интернете найти. Под прилипанием вы имеете ввиду ниточку, прикрепленную от платформы к шару?
Цитата GreedMore ()
5. Как сделать возможность сохранения в игре?
Есть такая функция.
 
никитаДата: Четверг, 21.04.2016, 13:43 | Сообщение # 3
Мастер
Группа: Модераторы
Сообщений: 532
Награды: 0
Репутация: 51
Статус: Offline
Нужно бы ссылку на тот сайт с уроком. Ну ладно, попытаюсь ответить максимально развернуто. Надеюсь, ты хотя-бы немного смыслишь в GML, потому что буду писать кодом.
1. Измени начальное значение твоей переменной с жизнями. В Create запиши.
2. Смотря как движение реализовано. Если клавиатура - сделай стены твердыми, а в столкновение с ними запиши speed = 0 (либо x = xprevious; y = yprevious, опять же смотря что используешь). Если мышь - тут уже код побольше. Я делал так: писал в Step проверку if(x > room_width || x < 0) x = xprevious. Но тут также все зависит от того, как именно у тебя работает движение за мышью.
3. Тут все правильно подметил MasterSambo: меню - тема хоть и не сложная, однако она стоит отдельной статьи.
4. Легко. Добавляешь к палке две логических переменных. Я буду использовать glue (для прилипания) и shoot (для стрельбы). Сначала поставь им false. Когда берешь бонус, изменяешь значение с false на true, а потом куда надо пишешь проверки этих переменных и соответствующие действия. Например, сейчас опишу события для мяча.
В Create:

Код
stick = false; //Переменная, отвечающая за то, прилип мяч к палке или нет
В столкновение с палкой:
Код
if(other.glue) { //Если палка с "клеем"...
    stick = true;
}
В Step:

Код
if(stick) { //Если шар прилип...
    speed = 0; //Останавливаем мяч
    x = bita.x; //bita - объект палки; Устанавливаем координаты мяча над палкой
    y = bita.y - 16;
}
if(keyboard_check_button_pressed(vk_space) && stick) { //Если шар приклеен и нажат пробел...
    speed = 10; //Возвращяем мячу скорость
    stick = false; //Отклеиваем мяч
}
Прилипание описал. Теперь стрельба. Сначала создаем спрайт и объект пули. Больше в нее писать ничего не надо. Все это в палку:
Create:

Код
shoot = false; //Переменная, отвечающая за возможность стрелять
Столкновение с бонусом стрельбы:

Код
shoot = true;
Step:

Код
if(mouse_check_button_pressed(mb_right) && shoot) { //Стреляем на ПКМ
    bullet = instance_create(x, y, bullet_obj); //Создаем пулю
    bullet.direction = 90;
    bullet.speed = 10; //Сразу устанавливаем скорость и направление пули
    alarm[0] = 15; //Запускаем таймер для продолжения стрельбы
}
if(mouse_check_button_released(mb_right)) { //Если пользователь отпустил кнопку...
    alarm[0] = 0; //Прекращаем стрелять
}
Alarm 0:

Код
bullet = instance_create(x, y, bullet_obj);
bullet.direction = 90;
bullet.speed = 10; //Действия уже были описаны
alarm[0] = 15; //Снова запускаем таймер для продолжения стрельбы
Собственно, вот, должно работать, хотя я не проверял.
5. Есть в GM простейшая функция сохранения, но она неудабная, т.к. сохраняет абсолютно все. Думаю, объяснять, как работают ini файлы не надо, сам почитаешь. Советую использовать для сохранения их. В арканоиде ведь всего-то надо сохранить пару параметров: уровень, на котором находишься и количество жизней, которое у тебя осталось.


ВАСЕЧКА - Попугай
 
Форум » Разработка игр » Вопросы по game maker » Арканоид - это как? (Статус: Решено)
  • Страница 1 из 1
  • 1
Поиск: