Interaktywność gier, Rozne

[ Pobierz całość w formacie PDF ]
Interaktywność gier komputerowych
Interaktywność gier komputerowych
Wstęp
1. Obsługa programowa zdarzeń myszy
2. Elementy sterujące interfejsu użytkownika
3. Obsługa zdarzeń elementów sterujących interfejsu użytkownika
4. Implementacja obsługi zdarzeń myszy w grze komputerowej
5. Implementacja obsługi zdarzeń elementów sterujących w grze komputerowej
Słownik
Bibliografia
Interaktywność gier komputerowych
Wstęp
Człowiek, który korzysta z komputera chciałby mieć możliwość wpływania na kształt pro-
gramów — prowadzenia dialogu z urządzeniem. Dlatego z jednej strony interfejs użyt-
kownika wyposażony jest w różne przyciski, pokrętła czy suwaki (w programowaniu na-
zywane elementami sterującymi), a z drugiej strony programuje się odpowiednie scena-
riusze, które mają za zadanie kierować reakcjami komputera w odpowiedzi na działanie
człowieka. Zaprogramowane zachowanie komputera nazywa się
interakcją
. Języki pro-
gramowania muszą być więc wyposażone w biblioteki komponentów interfejsu użytkow-
nika GUI (ang.
Graphical User Interface
). Obecnie w Javie istnieje biblioteka JFC (ang.
Java Foundation Classes
), której część dotycząca GUI nazywana jest Swing, oraz dotych-
czasowe GUI nazywane AWT (ang.
Abstract Windowing Toolkit
). Interaktywność aplikacji
to umiejętność reakcji na zdarzenia, czyli oddziaływania człowieka na elementy interfejsu
użytkownika. By zaprogramować reakcje komputera, wprowadzono w Javie interfejsy i
adaptery programistyczne, dzięki którym zdarzenia kojarzy się
z obsługującymi je właściwymi kodami.
Interaktywność gier komputerowych
1. Obsługa programowa zdarzeń myszy
Użytkownik programów chce nie tylko oglądać obrazki, rysunki i tekst, ale również od-
działywać na obiekty znajdujące się w interfejsie użytkownika. Do interakcji z tym,
co widzi na ekranie, wykorzystuje różne środki techniczne, takie jak: mysz, klawiatura,
ekran dotykowy, pen, joystick i inne. Rozwinięte metody interakcji są szczególnie ważne
w przypadku gier komputerowych i mobilnych urządzeń komunikacyjnych.
Zdarzenie
w inżynierii oprogramowania to możliwość reakcji na akcję użytkownika pro-
gramu. Gdy porusza on myszą, reakcja Javy polega na generowaniu zdarzenia, które
programista może obsłużyć w metodzie
mouseMoved()
,
odziedziczonej z interfejsu Javy
java.awt.event.MouseMotionListener
(przykład 1). Metoda
mouseMoved()
zawiera
scenariusz zapisany przez specjalistę, który „uczy” komputer, co ma zrobić, gdy użyt-
kownik programu poruszy myszą.
Przykład 1
. Program demonstrujący obsługę zdarzenia ruchu myszy
import java.awt.Graphics;
import java.applet.Applet;
import java.awt.Point;
public class MyszPoz extends Applet implements java.awt.event.
MouseMotionListener {
Point p = new Point(1,1);
public void init() {
this.addMouseMotionListener(this);
}
public void mouseDragged(java.awt.event.MouseEvent evt) {}
public void mouseMoved(java.awt.event.MouseEvent evt) {
p.x=evt.getX();p.y=evt.getY();
repaint();
}
public void paint(Graphics g) {
g.drawString("Porusz myszą w oknie apletu", 50, 60 );
Interaktywność gier komputerowych
g.drawString("Współrzędne wskaźnika myszy: "+p.x+";"+p.y, 10,
90);
}
}
Ważne jest wyjaśnienie, czym jest
interfejs Javy
. Najprościej można powiedzieć, że jest
to specyficzna klasa, której wszystkie metody są abstrakcyjne. Klasy-interfejsy są dzie-
dziczone (wykorzystywane) przez program, ale umieszcza się je po słowie kluczowym
implements
, a nie, jak klasy, po
extends.
Tak wynika ze składni Javy. Drugą właściwo-
ścią interfejsów Javy jest konieczność podania w programie scenariuszy wszystkich me-
tod, które w nich występują.
Z dokumentacji Java 2 Platform API Specification
java.awt.event.MouseMotionListener
(rys. 1) dowiedzieć się można, że w interfejsie
tym są dwie metody. Metoda
mouseDragged()
nie będzie w programie używana, jednak
jej ciało należy zdefiniować jako puste. Biblioteki Javy dostarczają klasę
java.awt.Point
,
która może być wykorzystana jako kontener dla punktów w przestrzeni dwuwymiarowej.
Należy stworzyć obiekt reprezentowany przez referencję
p
. Wywołanie konstruktora
Po-
int(1,1)
z operatorem
new
powoduje przydzielenie pamięci dla obiektu klasy
Point
i zainicjowanie jego pól
x
i
y
. Informacji o położeniu kursora myszy dostarcza obiekt
evt
klasy
java.awt.event.MouseEvent
. Ostatnim nowym elementem w tym programie jest
składowa
repaint()
,
należąca do klasy
Applet
. Ponieważ metody
paint()
nie można
bezpośrednio wywołać w programie, wykorzystujemy metodę
repaint()
, która polega na
poinformowaniu maszyny wirtualnej Javy o konieczności odświeżenia wyglądu okna aple-
tu.
Interaktywność gier komputerowych
Rysunek 1.
Dokumentacja interfejsu Javy MouseMotionListener z opisem metod
W programie można wykorzystywać różne interfejsy obsługujące pewne grupy zdarzeń.
Za przykład niech posłuży program do rysowania kółek w miejscu, gdzie kliknie się myszą
(przykład 2). Interfejs do obsługi innej grupy zdarzeń związanych z myszą to
java.awt.event.MouseListener
.
Słowo kluczowe
this
przy wywołaniu metody
this.repaint();
oznacza, że jest ona wywoływana dla obiektu tej klasy, w której obec-
nie jesteśmy, czyli dla obiektu apletu. Jego kody źródłowe znajdują się w folderze
Ry-
sMyszka
. Zdarzenia związane z myszą można zapamiętywać w tablicach (przykład 3)
i wykorzystywać do odświeżania okna apletu po jego zasłonięciu przez inne okno aplika-
cji.
Przykład 2
. Aplet do rysowania kółek w miejscu, gdzie kliknie się myszą
import java.awt.*;
import java.applet.*;
public class Rys extends Applet implements java.awt.event.MouseListener
{
[ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • queen1991.htw.pl