Вниз  Java-программирование (1-ые посты)
- 12.11.2013 / 23:48
vl@volk
  Пользователь

vl@volk 
Сейчас: Offline
В классе спрайт есть две приватные числовые переменные x и y, тоесть позиция спрайта, их мы можем получить с помощью методов getX() и getY() соотвественно.
Метод move(int tx, int ty); увеличивает или уменьшает(зависит от значения tx и ty) эти переменные:
  1. public void move(int tx, int ty) {
  2.     x += tx; // если tx будет значением меньше нуля, тоесть минусовое, то x станет меньше на tx (математика 5 или 6 класс), так же и для y;
  3.     y += ty;
  4. }
Метод setPosition(int x, int y) изменит значения x и y на новые:
  1. public void setPosition(int x, int y) {
  2.     this.x = x;
  3.     this.y = y;
  4. // this - это объктная ссылка на экземпляр даного класса, тоесть если мы создадим в методе локальную переменную с таким же именем как у нас есть глобальная, то в первую очередь будет использоватся локальная и чтоб получить глобальную переменную мы используем ключевое слово this
  5. }

__________________
 знает толк
- 13.11.2013 / 02:23
vl@volk
  Пользователь

vl@volk 
Сейчас: Offline
ВитаминКО (12.11.2013/00:48)
Исходные коды DalvikVM :gg: (предположительно портация на маемо 5)
dalvikvm-0.8.zip
работает, даже на JavaME компилится.
запускать только на эмулях где есть консоль.
__________________
 знает толк

Изменено vl@volk (13.11 / 02:25) (всего 1 раз)


Прикрепленные файлы:
TestDVMMIDlet.jar (7.88 кб.) Скачано 103 раза
- 13.11.2013 / 07:56
ВитаминКО
  Супермодератор

ВитаминКО 
Сейчас: Offline
vl@volk (13.11.2013/02:23)
работает, даже на JavaME компилится.запускать только на эмулях где есть консоль.
допустим, запустил. что дальше?
__________________
 わからない!!
- 13.11.2013 / 11:39
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
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
  Пользователь

HoldFast 
Сейчас: Offline
samodelkin, Спасибо, пойду использую твой код в своих гонках! :)
__________________
 Да, детка, я - Король Ящериц!!!
- 13.11.2013 / 15:01
moDorks
  Пользователь

moDorks 
Сейчас: Offline
samodelkin, он не работает я вставлял его в свой код без результатно
- 13.11.2013 / 15:23
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
moDorks, покажи код.

Изменено samodelkin (13.11 / 15:23) (всего 1 раз)
- 13.11.2013 / 15:38
Magatino
  Администратор

Magatino 
Сейчас: Offline
samodelkin (13.11.2013/11:39)
moDorks, вот пример ограничения движения спрайта по правой и левой границе экрана:if (sprite.getX()<0) sprite.setPosition(0,sprite.getY());if (sprite.getX()>getWidth()-sprite.getWidth()) sprite.setPos
Каждый раз получать размеры экрана , спрайтов и т.п. не кошерно , лучше заранее получить их в конструкторе :gg:

  1. w=getWidth();
  2. h=getHeight();
  3.  
  4. sw=sprite.getWidth();
  5. sh=sprite.getHeight();

Можно и так реализовать:
  1. x=sprite.getX();
  2. y=sprite.getY();
  3.  
  4. x=(x<0)?0:(x>w-sw)?w-sw:x;
  5. y=(y<0)?0:(y>h-sh)?h-sh:y;
  6.  
  7. sprite.setPosition(x,y);


Изменено Magatino (13.11 / 15:39) (всего 1 раз)
- 13.11.2013 / 19:45
moDorks
  Пользователь

moDorks 
Сейчас: Offline
Magatino, знаки вопроса ето пробелы или так должно быть?
- 13.11.2013 / 19:48
SeTSeR
  Пользователь

SeTSeR 
Сейчас: Offline
Наверх  Всего сообщений: 16875
Фильтровать сообщения
Поиск по теме
Файлы топика (794)