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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нарды, надо картинки двигать по картинке 
V
    Опции темы
inohodec
Дата 1.12.2004, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Ребята помогите пожалуйста smile

Есть алгоритм игры , есть куча идей что сделать дальше , но проблема :

Нужно вставить картинку (доска) , на неё поместить другие картинки (фишки) , и что бы фишки можно было передвигать по доске , по идее ето ДНД , но как с ним работать smile

Я видел пример для дерева , но ... надо картинки двигать по картинке

Помогите пожалуйста , на дайте пропасть smile

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


Эксперт
****


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

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



Рисуется сначалa 1 картинка (фон), затем все остальные. Вешаешь на панель маус листенер, слушаешь mousePressed. Если она нажата - смотриshь гдe, еслi на на картинкe (не на фоне) - начинаешь слушать mouseDragged и одновременно двигать картинку и все перерисовывaть, poка не будет mouseReleased.


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

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


Бывалый
*


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

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



Спасибо smile

Но все куда как хуже (ето о себе) , я знаю про мышу , знаю что определяю по координатам , ворпос несколько иной

Если я помещаю много картинок , то проблема их двигать , не умею работать с ДНД
Кроме того они помешаются не на моём фоне ....
А типа ГРИДА ну или в зависимости от компоновщика

Если не затруднит , можно код или кусок кода ?

Так что бы одна картинка накладывалась на другую и верхнюю можно было двигать smile

Верю что лень возится , но может помжете ? smile
PM MAIL   Вверх
Domestic Cat
Дата 1.12.2004, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Код

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

public class SimpleClass extends JFrame
{  
   public SimpleClass()
   {
       setSize(400, 400);
       ImagePanel panel = new ImagePanel();
       getContentPane().add(panel, BorderLayout.CENTER);
       setDefaultCloseOperation(EXIT_ON_CLOSE);
       setVisible(true);
   }
   public static void main(String [] args)
   {
       new SimpleClass();
   }
}

class ImagePanel extends JPanel implements MouseListener, MouseMotionListener
{
   Image background = new ImageIcon("bg.jpg").getImage();
   Image image = new ImageIcon("image.gif").getImage();
   int x, y;
   boolean isDragging = false;
   int prevX, prevY;
   
   public ImagePanel()
   {
       addMouseListener(this);
       addMouseMotionListener(this);
   }
   
   public void paintComponent(Graphics g)
   {
       g.drawImage(background, 0, 0, 400, 400, null);
       g.drawImage(image, x, y, image.getWidth(null), image.getHeight(null), null);
   }
   
   public void mouseClicked(MouseEvent me)
   {
   
   }
   public void mouseEntered(MouseEvent me)
   {
   
   }
   public void mouseExited(MouseEvent me)
   {
   
   }
   public void mousePressed(MouseEvent me)
   {
       int x1 = me.getX();
       int y1 = me.getY();
       if ( x1 < x || x1 > (x + image.getWidth(null)) || y1 < y || y1 > (y + image.getHeight(null)) )
       {
           return;
       }
       isDragging = true;
       prevX = x;
       prevY = y;
   }
   public void mouseReleased(MouseEvent me)
   {
       isDragging = false;
   }
   public void mouseDragged(MouseEvent me)
   {
       if (isDragging)
       {
           int deltaX = me.getX() - prevX;
           int deltaY = me.getY() - prevY;
           x += deltaX;
           y += deltaY;
           prevX = x;
           prevY = y;
           repaint();
       }
   }
   public void mouseMoved(MouseEvent me)
   {
   
   }
}



файл и рисункi в аттачменте

Это сообщение отредактировал(а) Domestic Cat - 1.12.2004, 23:04

Присоединённый файл ( Кол-во скачиваний: 20 )
Присоединённый файл  Archive.zip


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

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


Бывалый
*


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

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



Спасибо smile

Ошибок не выдает но и делать ничего не делает smile
Появляется пустое белое окошко и все ...

Я не знаю может так и должно быть ?
Может ето не рабочий фрагмент ...

И еще Вы не пользовались ДНД (import java.awt.dnd.*;), мне говорили что более правильно использовать ето

Но в любом случае СПАСИБО smile
PM MAIL   Вверх
Domestic Cat
Дата 1.12.2004, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



А рисунки где лежат? Должны быть в той же директории, и из нее же запускать нужно


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

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


Бывалый
*


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

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



Рисунков в архиве не хватает ... проверьте
Я свой сделал , с нужным именем .... но не помогло smile
PM MAIL   Вверх
Domestic Cat
Дата 1.12.2004, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Ну я приаттачил сюда этот рисунок, но работать должно. Как ты ее запускаеш' и где все это лежит?

Это сообщение отредактировал(а) Domestic Cat - 1.12.2004, 23:24

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  bg.jpg.zip


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

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


Бывалый
*


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

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



ЗАРАБОТАЛО !!!!!!!!!!!!!!!!!

Спасибо smile

Собственно действительно ВСЁ и СПАСИБО , но есть последний вопрос smile

Про - import java.awt.dnd.*;

Не подскажете где можно посмотреть примеры работы с етой библиотечкой ?
Я много копался , но кроме 3-4 примеров , которые работают с текстами smile ничего не нашел smile
Ето что то новое в Джаве ?
И если да , то не могли бы Вы немножко описать ето ...

Ну а мой первый вопрос снимается с повестки smile

Пошел строить , СПАСИБО
PM MAIL   Вверх
Domestic Cat
Дата 1.12.2004, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



dnd не для этого предназначен, оn нужен для трансфера дaнных из одногo компонента в другой, напримеr из текстфилда в editor pane.

Цитата
Пошел строить , СПАСИБО


Пожалуйста smile


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

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


Бывалый
*


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

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



Даже так smile
А мне рассказывали что ето для игр для графики ну типа как пасьянс где карты двигают ...
Я повелся и поетому спрашивал именно про ДНД smile

И за ето спасибо smile
PM MAIL   Вверх
XClan
Дата 2.12.2004, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: нет
Всего: 3



Интересно! Попробовал ! Но у меня что-то с рисунками!
Лежат в папке /img текущего каталога, где классы лежат...
Код

Image background = new ImageIcon("/img/bg.jpg").getImage();

или
Код

Image background = new ImageIcon("img/bg.jpg").getImage();

Но не находят!!!
Попробовал поменять на
Код

ImageIcon  background;
...
background = new javax.swing.ImageIcon(getClass().getResource("/img/bg.jpg"));
... //ошибка


Но все без успешно!! Как пути прописываются???


--------------------
rm -rf /bin/laden
PM MAIL WWW   Вверх
inohodec
Дата 2.12.2004, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



А почему бы тебе не попробовать так как написанно в данном примере ?
Положи свои рисунки туда же где классы , без лишней папки smile

У меня работало , со второй попытки smile
PM MAIL   Вверх
Domestic Cat
Дата 2.12.2004, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Попробуй
Код

Image background = new ImageIcon(System.getProperty("user.dir") +
                                System.getProperty("file.separator")+ "img" +   
                                System.getProperty("file.separator") + "bg.jpg").getImage();


Папка img должна быть в директории, из которой ты запускаешь программу.

Это сообщение отредактировал(а) Domestic Cat - 2.12.2004, 16:13


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

PM   Вверх
XClan
Дата 3.12.2004, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: нет
Всего: 3



Никак!!! ,((



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

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

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


 




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


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

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