Обычная версия
Java форум JavaTalks
форум программистов

Поиск   Пользователи   Группы   Регистрация 
 Профиль   Личные сообщения 

 Вход 

Задать направление
Список форумов
 ->  Java 2D и Java 3D


 
Начать новую тему 
Предыдущая тема :: Следующая тема  
Автор Сообщение
dajver1 : 42
Новичок

СообщениеЯнв 12, 2012 21:45 
Ответить с цитатой
Сопсно вопрос вот в чем, пишу игру под андроид, нужно задать направление полета пули. Когда перехватываю координату касания я должен передать направление полета, а я передаю саму координату где коснулись палцем и получается что пуля не летит туда, а вылетает оттуда, что посоветуете? Как решить эту делему два дня пытаюсь сделать, и никак не могу додуматься как.
К началу Посмотреть профиль Отправить личное сообщение
Xcam : 155
Новичок

СообщениеЯнв 13, 2012 10:22 
Ответить с цитатой
Посоветую выложить кусок кода и сказать в какой строке проблема.
К началу Посмотреть профиль Отправить личное сообщение
dajver1 : 42
Новичок

СообщениеЯнв 13, 2012 13:44 
Ответить с цитатой
Xcam писал(а):
Посоветую выложить кусок кода и сказать в какой строке проблема.


Не могу выложить кусок кода, могу но это займет три монитора, там три класса взаимодействующих вместе. Мне всего лишь нужно понять как задать направление полета пуле.

Есть метод onTouch(), он вызывает событие нажатия на экран, в виндовс это можно назвать онКлик событие. И когда я передаю координаты Х, У я передаю позицию, а нужно направление к этой позиции. Как это сделать?
К началу Посмотреть профиль Отправить личное сообщение
Xcam : 155
Новичок

СообщениеЯнв 13, 2012 13:53 
Ответить с цитатой
Для задания направления вам необходимо знать 2 точки. Т.е. первым нажатием на экран пользователь задает положение пули, вторым направление. Дальше уже смотрите по логике вашей программы. Вы можете хранить либо шаг по оси X и шаг по оси Y в единицу времени, либо хранить значение угла между направлением вектора движения и осью X например.

А вообще посмотрите описание доступных эвентов в спецификации андроида. Скорее всего, там есть реакция на перемещение пальца по экрану.
К началу Посмотреть профиль Отправить личное сообщение
dajver1 : 42
Новичок

СообщениеЯнв 13, 2012 13:55 
Ответить с цитатой
Xcam писал(а):
Для задания направления вам необходимо знать 2 точки. Т.е. первым нажатием на экран пользователь задает положение пули, вторым направление. Дальше уже смотрите по логике вашей программы. Вы можете хранить либо шаг по оси X и шаг по оси Y в единицу времени, либо хранить значение угла между направлением вектора движения и осью X например.

Спасибо за ответ!

А можно это привести не большим участком кода? Так я понял, но с трудом.
К началу Посмотреть профиль Отправить личное сообщение
Xcam : 155
Новичок

СообщениеЯнв 13, 2012 14:06 
Ответить с цитатой
Например как-то так.

Код:
import java.awt.Point;

public class Bullet
{
    private int    x;
    private int    y;
    private double angle;
    private int    speed;
   
    public Bullet(Point pointStart, Point pointTo, int speed)
    {
        x = pointStart.x;
        y = pointStart.y;
        angle = Math.atan((y - pointTo.y) / (x - pointTo.x));
        this.speed = speed;
    }
   
    public void step()
    {
        x = (int)(x + speed * Math.cos(angle));
        y = (int)(y + speed * Math.sin(angle));
    }
}
К началу Посмотреть профиль Отправить личное сообщение
dajver1 : 42
Новичок

СообщениеЯнв 13, 2012 14:07 
Ответить с цитатой
Xcam писал(а):
Например как-то так.

Код:
import java.awt.Point;

public class Bullet
{
    private int    x;
    private int    y;
    private double angle;
    private int    speed;
   
    public Bullet(Point pointStart, Point pointTo, int speed)
    {
        x = pointStart.x;
        y = pointStart.y;
        angle = Math.atan((y - pointTo.y) / (x - pointTo.x));
        this.speed = speed;
    }
   
    public void step()
    {
        x = (int)(x + speed * Math.cos(angle));
        y = (int)(y + speed * Math.sin(angle));
    }
}


Спасибо огромное за помощь!! Буду разбираться!
К началу Посмотреть профиль Отправить личное сообщение
dajver1 : 42
Новичок

СообщениеЯнв 15, 2012 21:21 
Ответить с цитатой
Что то я бьюсь в конвульсиях бьюсь и ничего не получается, получается только (видео) вот такое, дальше никак не получается дойти. код немного модифицировал но суть не поменялась. Он почти один в один как код выше. Что-то там нужно рассчитать что бы летело в любую точку, а что не знаю... Помогите пожалуйста.
К началу Посмотреть профиль Отправить личное сообщение
 
Начать новую тему  Ответить на тему
Страница 1 из 1
Список форумов
 -> Java 2D и Java 3D


 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Java and all Java-related trademarks and logos are trademarks or registered trademarks of Oracle Corporation in the United States and other countries.
Это сайт не относится к фирме Oracle Corporation и не поддерживается ею.

© 2006-2010 www.javatalks.ru: форум java программистов
Используется скрипт phpBB © 2001, 2010 phpBB Group

Хостинг от bizname.ru