Дипломная работа

от 20 дней
от 9999 рублей

Заказать

Курсовая работа

от 10 дней
от 1999 рублей

Заказать

Реферат

от 3 дней
от 699 рублей

Заказать

Контрольная работа

от 3 дней
от 99 рублей
за задачу

Заказать

Диссертация

Сроки и стоимость индивидуальные

Заказать

Главная - Информатика - Методы хранения и обработки информации

Методы хранения и обработки информации Информатика. Курсовая

  • Тема: Методы хранения и обработки информации
  • Автор: Юлия
  • Тип работы: Курсовая
  • Предмет: Информатика
  • Страниц: 7
  • Год сдачи: 2008
  • ВУЗ, город: МГИУ
  • Цена(руб.): 1500 рублей

Заказать персональную работу

Выдержка

Согласно варианту задания нам необходимо добавить возможность перемещения лопатки при помощи мыши.
MovableSprite (подвижный спрайт)- это спрайт, способный изменять свое местоположение. В нашем проекте подвижными спрайтами являются шайба(Puck) и лопатка (Puddle). По сути, нам надо только модернизировать класс лопатки Puddle.
Как видно из рис.1, на диаграмме вариантов использования, вариант использования «Двигать лопатку» в нашем случае расширяется двумя возможными вариантами: «Двигать лопатку клавиатурой» и «Двигать лопатку мышью».

Рис.1. Диаграмма вариантов использования проекта JBriks

После всех внесенных изменений, диаграмма всех классов, сгенерированная с помощью средства Enterprise Architect на базе исходных java файлов, выглядит вот так:

Рис.2. Диаграмма всех классов проекта JBriks

Рис.3. Диаграмма класса Puddle
Рассмотрим конкретно сделанные изменения в классе Pudle. Основные изменения, которые были сделаны это обработка событий мыши посредством реализации методов интерфейса MouseListener.
Событие объект, который описывает изменение состояния источника (нажатие кнопки, выбор пункта меню, разворачивание, сворачивание окошка, нажатие клавиши и т.д.). Источник это объект, генерирующий события.
В обработке событий учувствуют 2 объекта: источник (source) и блок прослушивания (listener- интерфейс для перехода конкретного вида события от конкретного компонента)
Источник объект, генерирующий событие.
Блок прослушивания объект, получающий уведомление о возникновении события, но которое он зарегистрирован одним или несколькими источниками, путем вызова одного из его методов (методов блока прослушивания) для приема и обработки этих уведомлений.
Методы обработки событий находятся в пакете java.awt.event.
Событие MouseEvent генерируется, когда объект перетащен мышью (dragged), перемещен (moved ), произошел щелчок (clicked ), нажата (pressed ) или отпущена (released ) кнопка мыши, указатель мыши входит или выходит в/за границы компонента.
Существует семь типов Mouse-событий, которые идентифицируются семью константами:
MOUSE_CLICKED пользователь щелкнул кнопкой мыши;
MOUSE_DRAGGED пользователь перетащил мышь;
MOUSE_ENTERED указатель мыши введен в компонент;
MOUSE_EXITED указатель мыши выведен из компонента;
MOUSE_MOVED мышь передвинута;
MOUSE_PRESSED кнопка мыши нажата;
MOUSE_RELEASED кнопка мыши освобождена.
Модель делегирования событий содержит две части: источник событий и блоки прослушивания событий. Блоки прослушивания событий создаются путем реализации одного или нескольких интерфейсов прослушивания событий. Эти интерфейсы определены в пакете java.awt.event. Когда событие происходит, источник события вызывает соответствующий метод, определенный блоком прослушивания, и передает ему объект события в качестве параметра.
Интерфейс MouseListener определяет пять методов, распознающих события щелчка, входа в границы компонента, выхода из границ, нажатия/ отпускания клавиши мыши.
В нашем случаем мы реально закодировали только два метода:
1) метод mouseClicked, который вызывается при клике мышью;
2) метод mouseMoved, который вызывается при движении мыши.
Также внутри класса Puddle была объявлена дополнительная переменная isMovingByMouse типа bool, для того, чтобы отслеживать, нужно ли двигать лопатку при помощи мыши или нет.
В итоге были сделаны вот такие изменения в программном коде:
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

class Puddle extends MovableSprite implements KeyListener,MouseListener {
static final int LEFT = 37;
static final int RIGHT = 39;
static final int alpha = 10;

boolean isMovingByMouse = false;//статус возможностиуправления лопаткой с помощью мыши

public Puddle(PlayField p, Image pic) {
super(
p,
pic,
new Rectangle(
p.getWidth() / 2,
p.getHeight() - 20,
pic.getWidth(p),
pic.getHeight(p)),
0,
10);
_pf.addKeyListener(this);
_pf.addMouseListener(this);
}

public void move() {
if (_isMoving) {
Rectangle b = _pf.getBoundary();
_pos.x += _v.getSpeedX();
if (_pos.x < b.x)
_pos.x = b.x;
else if (_pos.x + _pos.width > b.x + b.width)
_pos.x = b.x + b.width - _pos.width;
}
}

public void hitBy(Puck p) {
if ( p.getDirection() == 90 ) {
p.setDirection(270 + alpha);
} else {
int px = p.getBounds().x + p.getBounds().width/2;
int l = (int) (_pos.x +_pos.width*(1.0/3));
int r = (int) (_pos.x +_pos.width*(2.0/3));

if ( px < l || px > r ) {
p.getVelocity().reverse();
} else {
p.getVelocity().reverseY();
}
}
}

/* Обработчик нажатия клавиш */
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == LEFT) {
startMoving();
_v.setDirection(180);
} else if (e.getKeyCode() == RIGHT) {
startMoving();
_v.setDirection(0);
}
}

/* Обработчик отпускания клавиш */
public void keyReleased(KeyEvent e) {
stopMoving();
}
public void keyTyped(KeyEvent e) {
;
}

/* Обрабатываем перемещении мыши.
При перемещении мыши, двигаем лопатку, вместе с курсором мыши,
если активизирована возможность движения лопаткой с помощью мыши */
public void mouseMoved (MouseEvent me) //получить событие mouseMoved
{
if(isMovingByMouse)
{
Rectangle b = _pf.getBoundary();
//если хотим управлять лопаткой по левому краю относительно курсора мыши
//_pos.x = me.getX();
//если хотим управлять лопаткой по центру относительно курсора мыши
_pos.x = me.getX()-_pos.width/2;
if (_pos.x < b.x)
_pos.x = b.x;
else if (_pos.x + _pos.width > b.x + b.width)
_pos.x = b.x + b.width - _pos.width;
}
}

public void mouseExited(MouseEvent me)
{}
public void mousePressed(MouseEvent me)
{}
public void mouseReleased(MouseEvent me)
{}
public void mouseEntered(MouseEvent me)
{}
/*При клике мышью над курсором мыши,
активизируем или деактивизируем возможность перемещения лопатки мышью*/
public void mouseClicked(MouseEvent me)
{
//Если хотим, чтобы возможность управлять курсором мыши активизировалась или деактивировалась

//только при прямом клике мышкой на лопатке
//if(_pos.contains(me.getX(),me.getY()))

// при клике мышкой над лопаткой
if(_pos.contains(me.getX(),_pos.getY()))

isMovingByMouse=!isMovingByMouse;//смена статуса
if(isMovingByMouse)
System.out.println("Moving by mouse is possible!");
else
System.out.println("Moving by mouse is impossible!");
}

}

Содержание

нет

Литература

нет

Форма заказа

Заполните, пожалуйста, форму заказа, чтобы менеджер смог оценить вашу работу и сообщил вам цену и сроки. Все ваши контактные данные будут использованы только для связи с вами, и не будут переданы третьим лицам.

Тип работы *
Предмет *
Название *
Дата Сдачи *
Количество Листов*
уточните задание
Ваши Пожелания
Загрузить Файлы

загрузить еще одно дополнение
Страна
Город
Ваше имя *
Эл. Почта *
Телефон *
  

Название Тип Год сдачи Страниц Цена
Обзор возможностей интернета Курсовая 2008 20 1500
Компьютерный учет на предприятии (ресторан) с использованием RAD технологий проектирования и пакета Microsoft Access, в основе которого лежит концепция б Курсовая 2008 32 1000
Разработать программу, которая форматирует текст в файле, на языке программирования VisualC++. Курсовая 2008 20 1000
Система управления базами данных Oracle Курсовая 2008 42 1500
Бизнес-процессы в существующей системе Курсовая 2008 26 1500
Программа которая форматирует текст в файле, на языке программирования VisualC++ Курсовая 2008 21 1500
Постановка задачи и описание рабочего набора исходных данных Курсовая 2008 16 1500
Информационные системы управления персоналом Курсовая 2008 41 1500
Преступление в сфере компьютерной информации Курсовая 2008 29 1500
Обеспечение безошибочности передачи данных Курсовая 2008 42 1000
курсовые, дипломные, контрольные на заказ скидки на курсовые, дипломные, контрольные на заказ

© 2010-2016, Все права защищены. Принимаем заказы по всей России.