Нужно бы ссылку на тот сайт с уроком. Ну ладно, попытаюсь ответить максимально развернуто. Надеюсь, ты хотя-бы немного смыслишь в 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; //Переменная, отвечающая за возможность стрелять
Столкновение с бонусом стрельбы:
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 файлы не надо, сам почитаешь. Советую использовать для сохранения их. В арканоиде ведь всего-то надо сохранить пару параметров: уровень, на котором находишься и количество жизней, которое у тебя осталось.