12.11.2013 / 23:48 | |
vl@volk Пользователь Сейчас: Offline
Имя: Владислав Откуда: Земля Регистрация: 26.12.2012
| В классе спрайт есть две приватные числовые переменные x и y, тоесть позиция спрайта, их мы можем получить с помощью методов getX() и getY() соотвественно. Метод move(int tx, int ty); увеличивает или уменьшает(зависит от значения tx и ty) эти переменные: public void move(int tx, int ty) {
x += tx; // если tx будет значением меньше нуля, тоесть минусовое, то x станет меньше на tx (математика 5 или 6 класс), так же и для y;
y += ty;
}
Метод setPosition(int x, int y) изменит значения x и y на новые: public void setPosition(int x, int y) {
this.x = x;
this.y = y;
// this - это объктная ссылка на экземпляр даного класса, тоесть если мы создадим в методе локальную переменную с таким же именем как у нас есть глобальная, то в первую очередь будет использоватся локальная и чтоб получить глобальную переменную мы используем ключевое слово this
}
__________________
знает толк |
13.11.2013 / 02:23 | |
vl@volk Пользователь Сейчас: Offline
Имя: Владислав Откуда: Земля Регистрация: 26.12.2012
| ВитаминКО (12.11.2013/00:48) Исходные коды DalvikVM (предположительно портация на маемо 5) dalvikvm-0.8.zipработает, даже на JavaME компилится. запускать только на эмулях где есть консоль. __________________
знает толк Изменено vl@volk (13.11 / 02:25) (всего 1 раз)
Прикрепленные файлы: TestDVMMIDlet.jar (7.88 кб.) Скачано 102 раза |
13.11.2013 / 07:56 | |
ВитаминКО Супермодератор Сейчас: Offline
Имя: Василиус Откуда: RZN Регистрация: 20.04.2012
| vl@volk (13.11.2013/02:23) работает, даже на JavaME компилится.запускать только на эмулях где есть консоль.допустим, запустил. что дальше?
__________________
わからない!! |
13.11.2013 / 11:39 | |
samodelkin Пользователь Сейчас: Offline
Имя: Сергей Откуда: Липецк Регистрация: 05.11.2013
| moDorks, вот пример ограничения движения спрайта по правой и левой границе экрана: if (sprite.getX()<0) sprite.setPosition(0,sprite.getY()); if (sprite.getX()>getWidth()-sprite.getWidth()) sprite.setPosition(getWidth()-sprite.getWidth(),sprite.getY()); переводим на человеческий язык: "если спрайт зашел за левую границу экрана, то поставить его на место "если спрайт зашел за правую границу экрана, то поставить его на место". А по идее легче всего сначала написать на человечком языке общий принципе работы программы, а потом только переводить на машинный язык.
Изменено samodelkin (13.11 / 11:41) (всего 2 раза) |
13.11.2013 / 12:47 | |
HoldFast Пользователь Сейчас: Offline
Имя: Андрей Откуда: Великие Луки Регистрация: 18.04.2011
| samodelkin, Спасибо, пойду использую твой код в своих гонках! __________________
Да, детка, я - Король Ящериц!!! |
13.11.2013 / 15:01 | |
moDorks Пользователь Сейчас: Offline
Имя: moDorks Регистрация: 04.05.2013
| samodelkin, он не работает я вставлял его в свой код без результатно
|
13.11.2013 / 15:23 | |
samodelkin Пользователь Сейчас: Offline
Имя: Сергей Откуда: Липецк Регистрация: 05.11.2013
| moDorks, покажи код.
Изменено samodelkin (13.11 / 15:23) (всего 1 раз) |
13.11.2013 / 15:38 | |
Magatino Администратор Сейчас: Offline
Имя: Alexandr Откуда: Где Ленин родился. Simbirsk City Регистрация: 28.01.2011
| samodelkin (13.11.2013/11:39) moDorks, вот пример ограничения движения спрайта по правой и левой границе экрана:if (sprite.getX()<0) sprite.setPosition(0,sprite.getY());if (sprite.getX()>getWidth()-sprite.getWidth()) sprite.setPosКаждый раз получать размеры экрана , спрайтов и т.п. не кошерно , лучше заранее получить их в конструкторе w=getWidth();
h=getHeight();
sw=sprite.getWidth();
sh=sprite.getHeight();
Можно и так реализовать: x=sprite.getX();
y=sprite.getY();
x=(x<0)?0:(x>w-sw)?w-sw:x;
y=(y<0)?0:(y>h-sh)?h-sh:y;
sprite.setPosition(x,y);
Изменено Magatino (13.11 / 15:39) (всего 1 раз) |
13.11.2013 / 19:45 | |
moDorks Пользователь Сейчас: Offline
Имя: moDorks Регистрация: 04.05.2013
| Magatino, знаки вопроса ето пробелы или так должно быть?
|
13.11.2013 / 19:48 | |
SeTSeR Пользователь Сейчас: Offline
Имя: Сергей Откуда: Где-то возле Москвы Регистрация: 01.07.2012
| |