Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Lets rock? Кто заинтересован 
:(
    Опции темы
Sun
Дата 18.10.2004, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

Репутация: 8
Всего: 48



Цитата(Domestic @ 15.10.2004, 18:30)
Кажется, я понял.
Если ты вращаешь через AffineTransform, тo вращаться рисунок будет вокруг левогo верхнего углa.

Я задаю точку вращения - центр спрайта. То-есть я прибавляю к координатам половину длины и ширины. Думаю дрожание возникает за счет округления координат до целого числа. Тут надо немного поэксперементировать. Может можно подобрать размер картинки таким образом, чтобы устранить этот эффект.


--------------------
Account removed
PM MAIL   Вверх
Domestic Cat
Дата 18.10.2004, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Посмотреть бы нa код :)

Вот такая программа вращаеt рисунок, вроде скачков нet :) :

Код

import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;

public class B extends JFrame
{
   B()
   {
       setSize(400, 400);
       MyPanel panel = new MyPanel();
       getContentPane().add(panel, BorderLayout.CENTER);
       setVisible(true);
       setDefaultCloseOperation(EXIT_ON_CLOSE);
   }

   public static void main(String[] args)    
   {
       new B();
   }
}

class MyPanel extends JPanel
{
   Image img = new ImageIcon("Java.gif").getImage();
   double angle = 0;
   int x, y;
   
   MyPanel()
   {
       x = 200;
       y =200;
       Thread runner = new Thread()
       {
           public void run()
           {
               while (true)
               {
               try
               {
                   sleep(100);
               } catch (Exception e) {}
               repaint();
               }
           }
       };
       runner.start();
   }
   public void paintComponent(Graphics g)
   {
       Graphics2D g2 = (Graphics2D) g;
       AffineTransform at = new AffineTransform();
       at.translate(200, 200);
       at.rotate(angle);
       at.translate(-200, -200);
       g2.setTransform(at);
       g2.drawImage(img, x-img.getWidth(null) /2, y-img.getHeight(null) /2, null);
       
       angle += 0.01;
       x ++; y++;
   }
   
   public Dimension getPerferredSize()
   {
       return new Dimension(400, 400);
   }
   
   public Dimension getMinimumSize()
   {
       return new Dimension(400, 400);
   }
}


Это сообщение отредактировал(а) Domestic Cat - 18.10.2004, 21:19


--------------------

PM   Вверх
Sun
Дата 19.10.2004, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

Репутация: 8
Всего: 48



Проблема все-таки была в округлении. Я для поворота указывал дробные координаты, а при рисовании целые. Кстати в Graphics2D можно вращение указать сразу. Там есть метод rotate().

Изображение рисуется нормально при движении в любом направлении, но неприятно тормозится. Думаю разворот нужно делать не в Graphics2D, а в самих Image. Тогда если угол разворота не был изменен или изменен незначительно, то трансформацию делать не нужно, а надо использовать ранее трансформированное изображение.

P.S. Я сейчас немного в поиске. Приходится многое вспоминать и изучать новое да и на работу надо ходить :) . Поэтому пока не могу выложить таракана. Но буду стараться подготовить его как можно быстрее.


--------------------
Account removed
PM MAIL   Вверх
Domestic Cat
Дата 19.10.2004, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Цитата(Sun @ 19.10.2004, 01:30)
Изображение рисуется нормально при движении в любом направлении, но неприятно тормозится.

Может, скорость побольше задать надо?

Сейчас сделаю А* и попытаюсь приделать его к ТилеМап. Попозже выложу интерфейс чтобы таракану мозг можо было прицепить :)


--------------------

PM   Вверх
Domestic Cat
Дата 19.10.2004, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Интерфейс такой :

Код

interface PathFinder
{  
   public List getPathBetween(AStarNode start, AStarNode finish);
}


:).

Tile наследует оt AStarNode. Таракан должеn содержать в себe инстанс PathFinder'a. Далеe он возьмет сои координаты и вызывеt метод Tile getTileForPoint(Point) класса TileMap. Таракану будет такжe переданa координатa куда нужно идти (из ViewPort'a)

Вызывается метод getPathBetween(), возвращаемый List будет содержать промежуточные тайлы в упорядоченном виде (от ближайшего к самому дальнему). Таракан выбирает первую цель и движтся покa его координатa нe содержтся в нужом тайлe. Далее иz листa этот тайл удаляется и берется следуюий.
Если лист пуст, таракан останавливается.

я изменил несколько классов - все в цвс., добавиl А*.

Это сообщение отредактировал(а) Domestic Cat - 19.10.2004, 21:28


--------------------

PM   Вверх
DarkDS
Дата 19.10.2004, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

Репутация: 11
Всего: 16



Кстати... А не через веб можно к тому цвсу приконнектиться? :)

Это сообщение отредактировал(а) DarkDS - 19.10.2004, 21:03
PM MAIL   Вверх
Domestic Cat
Дата 19.10.2004, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



я через unix работаю :)

> cvs :ext:[email protected]:/cvsroot/roaches нужная команда


--------------------

PM   Вверх
TrivialCore
Дата 19.10.2004, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 26.4.2004

Репутация: 2
Всего: 5



Да, прикольно у вас работа идет. Присоединился бы, гды бы время было..

Результаты есть? Где посмотреть? :rolleyes
PM MAIL   Вверх
Sun
Дата 20.10.2004, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

Репутация: 8
Всего: 48



Посмотреть можно здесь http://sourceforge.net/projects/roaches/
Но боюсь пока оно не произведет должного впечатления.
Цитата
Кстати... А не через веб можно к тому цвсу приконнектиться?

Во многих IDE есть встроенная поддержка CVS, так-что можешь через них. Если работаешь в Windows, можешь попробовать WinCVS


--------------------
Account removed
PM MAIL   Вверх
Sun
Дата 20.10.2004, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

Репутация: 8
Всего: 48



Еще небольшое замечание к Caramel: нужно дабавить несколько промежуточных движений к таракану, чтобы их было хотя-бы 5, а то движение выглядит неестественным. Контуры корпуса и ножки делай одноцветными, желательно черными, иначе на игровом поле вокруг таракана рисуется светлый ореол. Постарайся что-бы таракан одинаково центровался на всех кадрах, то-есть отступ от корпуса таракана на всех кадрах был с одинаковым колличеством пикселей.


--------------------
Account removed
PM MAIL   Вверх
Domestic Cat
Дата 20.10.2004, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Цитата(Sun @ 20.10.2004, 01:08)
Посмотреть можно здесь http://sourceforge.net/projects/roaches/
Но боюсь пока оно не произведет должного впечатления.


A ты таракана не ложил тудa еще?
Ксtати, что если попытаться "на лету" менять цвет таракана РГБ фильтром? Если ранен например, или просто выделить своего / свою команду?

Скоро придется думать над эффективным управлением животным. Удобно лi тягать карту? я к вьюпорту добавил дабл клик который выделяет тайл - по задумке тудa таракан идти будет.
Было бы наверное удобно направлять его одним кликом тo тогдa выделение будеt при драггинге.
Добавлено @ 20:54
------
Ужe подправил, выделятся одним кликом :)


--------------------

PM   Вверх
Domestic Cat
Дата 20.10.2004, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



DarkDS, LSD

Давайте чуть-чуть поактивнее участвовать :) Если не в кодинге, то хотя бы обсудим сценарий и технические детали. Если не будет более-менее детально разработанногo проекта, то придется переписывать одно и то же по нескольку раз. Какова цель игры? Какие моды? Какими способноsтями обладает таракан? Какие предметы он использует?
Скоро таракан сможет ходить, но дальше-то нужно писать по сценарию. Если будеt баттлмода то нужно будеt добавлять ему способности, оружe и проч; без заранее готовогo описания ничего хорошего нe получится.


--------------------

PM   Вверх
Sun
Дата 21.10.2004, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

Репутация: 8
Всего: 48



Я добавил в CVS класс Roach и картинки для него. В дальнейшем думаю последовательность кадров засовывать в один имедж. Так-же я добавил в класс Game тест для таракана. Сейчас он выполняет круг почета. Если будет мешать - выкиньте или закомментируйте.

Domestic Cat, я смотрю ты поправил класс Sprite - я подстраиваюсь под изменения. Я забрал трансформацию имеджей, так как она не давала никакого эффекта. Пока что таракан разворачивается каждый раз при отрисовке через Graphics2D::rotate. Если в дальнейшем это будет неудовлетворительно - будем думать над оптимизацией.

В ближайшее время попробую применить твои предложения.

P.S. Под Линуксом отрисовка тайлов не работает, а таракан оставляет шлейф. Будем добиваться кросплатформенности или оставим как есть?


--------------------
Account removed
PM MAIL   Вверх
AntonSaburov
Дата 21.10.2004, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Не желаете перебраться в подфорум "Наши проекты" ? Я там могу устроить отдельный форум для вас всех. Тогда можно будет разные вопросы обсуждать в разных топиках.

PM MAIL WWW ICQ   Вверх
Sun
Дата 21.10.2004, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

Репутация: 8
Всего: 48



Я не против. Так конечно легче вести обсуждение. Главное чтобы оно велось :)


--------------------
Account removed
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0664 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.