|
Android Разработка игр на платформе Android |
25.04.2012, 17:19
|
#1
|
Оператор ЭВМ
Регистрация: 29.08.2011
Сообщений: 22
Написано 0 полезных сообщений (для 0 пользователей)
|
Помогите новичку!
Недавно перешёл с Nokia 5310 на Samsung GT I-9001. До этого работал над рогаликом, который успешно писался на MidletPascal. Хочу портировать всё под андроид, но опыта работы с java нет.
Начал делать проект по аналогии с книгой Pragmatic Hello Android. Застрял практически в начале: при вызове метода из другого класса (getTile из MapView) , который возвращает элемент массива, приложение крашится.
Понимаю, что ошибка мелкая, но сам ни черта ни понимаю
PS. Посоветуйте книги по ооп на Java (можно и на английском).
|
(Offline)
|
|
25.04.2012, 17:42
|
#2
|
Знающий
Регистрация: 14.06.2009
Сообщений: 338
Написано 139 полезных сообщений (для 257 пользователей)
|
Ответ: Помогите новичку!
Ну так алгоритм простой, не надо лениться:
1. Посмотреть текст ошибки
2. Подебажить
3. Спросить, указав всю инфу
|
(Offline)
|
|
25.04.2012, 17:52
|
#3
|
Оператор ЭВМ
Регистрация: 29.08.2011
Сообщений: 22
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите новичку!
В том то и дело, что компилирует без ошибок.
|
(Offline)
|
|
25.04.2012, 18:50
|
#4
|
Знающий
Регистрация: 14.06.2009
Сообщений: 338
Написано 139 полезных сообщений (для 257 пользователей)
|
Ответ: Помогите новичку!
Сообщение от ratum
В том то и дело, что компилирует без ошибок.
|
Ну так если падает, значит пишет где и почему упало.
|
(Offline)
|
|
26.04.2012, 11:20
|
#5
|
Дэвелопер
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений (для 886 пользователей)
|
Ответ: Помогите новичку!
Крашится скорее всего из-за того, что твой MapView ещё не создан на момент обращения к его методу. Активити нельзя создавать через NEW.
В какой среде разработки ты делаешь проект? Если в эклипсе, то выкладывай всю папку с проектом, а то эти тхт-шки вынуждают всё самому доделывать, а нафиг это нужно.
|
(Offline)
|
|
26.04.2012, 12:36
|
#6
|
Знающий
Регистрация: 14.06.2009
Сообщений: 338
Написано 139 полезных сообщений (для 257 пользователей)
|
Ответ: Помогите новичку!
Сообщение от Жека
Крашится скорее всего из-за того, что твой MapView ещё не создан на момент обращения к его методу. Активити нельзя создавать через NEW.
В какой среде разработки ты делаешь проект? Если в эклипсе, то выкладывай всю папку с проектом, а то эти тхт-шки вынуждают всё самому доделывать, а нафиг это нужно.
|
На сколько я обратил внимание - MapView не активити, а вьюха.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
26.04.2012, 18:23
|
#7
|
Оператор ЭВМ
Регистрация: 29.08.2011
Сообщений: 22
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите новичку!
В основном на телефоне через AIDE пишу.
Вроде переписал код на Eclipse. Проверить не могу: после очистки workspace эмулятор андроид ведёт себя неадекватно. Останавливается на шаге Waiting for HOME ('android.process.acore') to be launched...
|
(Offline)
|
|
27.04.2012, 10:08
|
#8
|
Дэвелопер
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений (для 886 пользователей)
|
Ответ: Помогите новичку!
Тестировать конечно лучше на настоящем телефоне.
Ошибка у тебя не в коде оказалась, а в том что ты не указал все свои активити в манифесте.
В файле AndroidManifest.xml нужно указывать все активити, которые ты собираешься запускать.
Я дописал
<activity
android:name=".Game"
android:label="@string/app_name" >
</activity>
И всё заработало, увидел поле с зелёными циферками.
Про вьюху не заметил когда писал выше.
|
(Offline)
|
|
27.04.2012, 15:19
|
#9
|
Оператор ЭВМ
Регистрация: 29.08.2011
Сообщений: 22
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите новичку!
Совсем забыл про манифест. Но проблема не в нём. В оригинале (на AIDE) манифест был дописан. И не работало.
При замене int на MapClass опять крашится. В чём причина?
И последний: как убрать полосу состояния при включённом приложении?
|
(Offline)
|
|
27.04.2012, 15:29
|
#10
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Помогите новичку!
Активити создаётся автоматически при старте прилоежения самой ОСью. Тебе не нужно создавать активити самому. В конструкторе активити, тебе нужно указать View, он может быть лайоутом генерированным в эклипсе, или твоим классом. Но тогда он должен иметь в себе реализацию всех методов и т.п.
Также, если ты хочешь заняться графикой, советую сразу смотреть в сторону ОГЛ либо канвасы.
ЗЫ, до того как заниматься портами, пройдись по туторам от гугла, разберись как андройд устроен, т.к. это очень отличается от всего другого..
|
(Offline)
|
|
28.04.2012, 06:16
|
#11
|
Дэвелопер
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений (для 886 пользователей)
|
Ответ: Помогите новичку!
Сообщение от ratum
Совсем забыл про манифест. Но проблема не в нём. В оригинале (на AIDE) манифест был дописан. И не работало.
При замене int на MapClass опять крашится. В чём причина?
|
Причина скорей всего в том что перед обращением к экземпляру MapClass ты не создал его.
Выкладываю тебе код исправленный, в нём всё работает с MapClass.
И последний: как убрать полосу состояния при включённом приложении?
|
Я знаю два способа, оба включил в твою прогу.
1. Прописать в AndroidManifest.xml строчку-параметр для активити
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
2. В коде для метода активити onCreate(Bundle b) написать две строки
super.onCreate(b);
//полноэкранный режим
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
ЗЫ, до того как заниматься портами, пройдись по туторам от гугла, разберись как андройд устроен, т.к. это очень отличается от всего другого
|
Прислушайся к совету, разберись в простом, потом переходи к своим задумкам.
|
(Offline)
|
|
28.04.2012, 13:06
|
#12
|
Оператор ЭВМ
Регистрация: 29.08.2011
Сообщений: 22
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите новичку!
Спасибо всем огромное! Сам без помощи не разобрался бы. Буду выкладывать новые вопросы по мере появления
|
(Offline)
|
|
05.05.2012, 15:53
|
#13
|
Оператор ЭВМ
Регистрация: 29.08.2011
Сообщений: 22
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите новичку!
Дописал код, добавил геттеры и сеттеры, но метод fillArea перестал работать. Или не правильно обращаюсь к массиву? Где я ошибся?
Как работать с изобржениями (загрузка, вывод) ? Как работать с таилсетами? На developer.android.com ничего не понимаю
Последний раз редактировалось ratum, 06.05.2012 в 14:16.
|
(Offline)
|
|
09.05.2012, 15:09
|
#14
|
Оператор ЭВМ
Регистрация: 29.08.2011
Сообщений: 22
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите новичку!
Проблемы решены! Есть ли стандартные методы для работы с таилсетами(создание маленького нового изображения из одного большого)?
|
(Offline)
|
|
14.05.2012, 23:27
|
#15
|
Оператор ЭВМ
Регистрация: 29.08.2011
Сообщений: 22
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите новичку!
В активити Game создан экземпляр hero класса Hero. При нажатии кнопки в MapView(view для Game) создаётся активити Inventory. Как из Inventory получить доступ к hero?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:42.
|