Игра из рубрики "посмотрите, я создал первую игру"
Впервые написал игру без использования какого-либо конструктора. Типичная космическая аркада которых миллионы, делал на диплом и для самообучения. В ходе разработки понял насколько круты конструкторы, но и кодить с нуля мне было тоже интересно. Учился по замечательной книжке " Программирование игр для Android" от Марио Цехнера, откуда и перекатал большую часть кода, но вроде даже разобрался как всё работает, это главное.
Что есть:
- унылый и бесконечный геймплей, убиваем одну волну, респанится новая, но усиленная
- поддерживается акселерометр
- должны поддерживаться кнопки, сейчас они не настраиваются (по умолчанию это стрелки)
Очень сыровато! Во-первых: акселерометр не заработал (Samsung Galaxy Gio), корабль стоял как вкопанный, ни двигаться не стрелять не мог (кстати чем стрелять - я тапал по экрану, свайпил - ноль реакции). Во вторых: на любом экране, что в игре, что в хайскорах при нажатии стандартной кнопки "назад" приложение закрывается - это совсем не правильное поведение на Андроиде! Ну и соответственно кнопка "Exit" на андроиде не принята - в большинстве приложений и игр её просто нет, так как она не нужна - приложение должно закрываться по нажатию стандартной кнопки назад или сворачиваться по нажатию кнопки "домой".
FedeX, у тебя противоречие в выражениях:
"при нажатии стандартной кнопки "назад" приложение закрывается - это совсем не правильное поведение"
"приложение должно закрываться по нажатию стандартной кнопки назад"
от себя добавлю, что когда приложение закрывается (полностью) при нажатии кнопки домой я считаю это вполне приемлимое поведение для игр. кнопка выход это тоже нормальное явление на андроиде, хотя и не особо распространённое.
Во-первых: акселерометр не заработал (Samsung Galaxy Gio), корабль стоял как вкопанный, ни двигаться не стрелять не мог (кстати чем стрелять - я тапал по экрану, свайпил - ноль реакции).
По идее, управление переключается в левом верхнем углу, понимаю, это как-то странно, но пока будет так. По умолчанию управление назначено на кнопки, забыл сменить на сенсор =[
кнопка "Exit" на андроиде не принята - в большинстве приложений и игр
Да хватит и обычного бэка, но пусть будет, особо не мешается и ладно.
Угу, пока всё очень плохо, но буду допиливать до нормального состояния :)
Dan написал:
FedeX, у тебя противоречие в выражениях:
"при нажатии стандартной кнопки "назад" приложение закрывается - это совсем не правильное поведение"
"приложение должно закрываться по нажатию стандартной кнопки назад"
Да, вообщем имелось ввиду, что "экраны" должны формировать некий стек экранов и поочередно закрываться по нажатию кнопки "назад", пока не дойдет до последнего экрана - главного меню - при нажатии кнопки "назад" на нем приложение обычно закрывается.
GT, насчет переключателя управления понял, но все-равно оно какое-то очень странное, кораблик не останавливается при нажатии влево или вправо, пока не упрется в стену. На телефонном экране кнопки управления слишком маленькие, нажать получается с раза пятого. И ещё кажется хайскор совсем не работает - я прошел один уровень, умер, а в скорах ничего не появилось
Да, вообщем имелось ввиду, что "экраны" должны формировать некий стек экранов и поочередно закрываться по нажатию кнопки "назад", пока не дойдет до последнего экрана - главного меню - при нажатии кнопки "назад" на нем приложение обычно закрывается.
Хм, думаю так и стоит сделать, просто у меня для всего используется одна активити, вот она то и сразу закрывается.
кораблик не останавливается при нажатии влево или вправо, пока не упрется в стену.
Кнопки меняют лишь направление движения, а дальше он движется сам по себе.
На телефонном экране кнопки управления слишком маленькие, нажать получается с раза пятого.
Достаточно ли будет увеличить их в 2 раза?
На моём девайся экран большой и мне то норм, а на других не было возможности проверить, эмуляторы не в счёт.
И ещё кажется хайскор совсем не работает - я прошел один уровень, умер, а в скорах ничего не появилось
Лучше сделать их размер зависимым от величины экрана. Если игра написана на стандартном SDK и Java, то задать соответствующие размеры можно в ресурсах: создать соответствующие файлики res/values/dimensions.xml, res/values-large/dimensions.xml и res/values-xlarge/dimensions.xml - а в них приблизительные размеры элементов для разных экранов (подробнее читать в доках). Из явы их потом несложно достать - что-то типа
int height = getResources().getDimensionPixelSize(R.dimen.back_navigation_control_height);
Спасибо. Скачал, поиграл. Мой телефон HTC Desire S.
У меня акселерометр работает, не то чтобы отлично, но вполне удовлетворительно, по крайней мере, я продержался на таком управлении аж 2 волны! Третью, как по мне пройти уже не реально - сложность наростает слишком резко. На сенсоре играть, практически не возможно - нажимаю влево, чтобы увернуться от пули, отпускаю, а кораблик продолжает лететь влево сам по себе пока не упрётся в край экрана или пока я не нажму вправо. Причём, если нажать вправо, кораблик реагирует не сразу, а как бы сначала снижает скорость и потом уже набирает её в другом направлении. Такое поведение могло быть оправдано, если бы всё не происходило очень медленно. Стрелять тоже плохо - долгая перезарядка. Да и вообще, сама реализация стрельбы не понравилась: пульки вылетают не из пушек, а чисто из центра кораблей. С врагами ещё не очень бросается в глаза, но у нашего корабля мы чётко видим 2 массивных орудия по бокам, а стреляет он одной пулькой из своего центра. Ещё, лично я, сделал бы разным цветом пули врагов и игрока и подставил бы разные звуки. Хотя, звуки стрельбы мне понравились, чего не скажешь о звуках попадания и о фоновой музыке
На счёт графики, в принципе, не плохо, но с корабликом игрока нужно ещё немного поработать ластиком - не дотёр прозрачность в левом нижнем углу спрайта. Ну и, конечно, стоит добавить взрывы и прочие эффекты, и какие-нибудь обозначения к-ва жизней и очков. А ещё, я бы сделал стрелки и кнопки полупрозрачными.
В общем, поиграл я и решил посмотреть, сколько же у меня очков. Зашёл в HightScore, а там пусто. :-(
Но, не смотря на все эти неприятности, я, как человек ни черта не смыслящий в математике, программировании, и с трудом осваивающий конструктор, считаю, что сделать с нуля такую игру, для человека, который до этого тоже использовал конструктор - большой шаг вперед. Восхищаюсь и желаю дальнейших успехов.