Comments added to Display.java

This commit is contained in:
Siket Melinda Tekla 2016-05-16 20:47:05 +02:00
parent d9e4873741
commit 618add1c98
1 changed files with 52 additions and 1 deletions

View File

@ -12,20 +12,44 @@ import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip; import javax.sound.sampled.Clip;
import javax.swing.*; import javax.swing.*;
/**
* A játék megjelenítéséért felelős osztály.
*/
public class Display extends JPanel{ public class Display extends JPanel{
/**
* Az egyes rajzolandó elemeket tartalmazó lista.
*/
private List<Drawer> visuals; private List<Drawer> visuals;
/**
* A játék háttérzenéje.
*/
private Clip clip; private Clip clip;
/**
* Az osztály konstruktora. Inicializáláskor nem látható
* a panel.
*/
public Display() { public Display() {
visuals = new ArrayList<>(); visuals = new ArrayList<>();
setVisible(false); setVisible(false);
} }
/**
* Egy új rajzolandó elem felvétele a listába.
*
* @param visual új elem
*/
public void addVisual(Drawer visual) { public void addVisual(Drawer visual) {
visuals.add(visual); visuals.add(visual);
} }
/**
* A rajzolandó elemek tényleges kirajzolása. A rajzvászon frissítése,
* a panel láthatóvá tétele.
*
* @throws IOException Ha nem találhatóak a képek.
* @see Drawer#draw()
*/
public void drawVisuals() throws IOException { public void drawVisuals() throws IOException {
for(Drawer visual : visuals) for(Drawer visual : visuals)
visual.draw(); visual.draw();
@ -33,6 +57,10 @@ public class Display extends JPanel{
setVisible(true); setVisible(true);
} }
/**
* A játék háttérzenéjének elindítása URL-ból. Amennyiben nem elérhető
* a zene, úgy azt egy felugró ablak formájában jelzi a felhasználónak.
*/
public void startMusic() { public void startMusic() {
try(AudioInputStream ais = try(AudioInputStream ais =
AudioSystem.getAudioInputStream(new URL("http://users.hszk.bme.hu/~bb1376/tomboy.wav"))) { AudioSystem.getAudioInputStream(new URL("http://users.hszk.bme.hu/~bb1376/tomboy.wav"))) {
@ -45,6 +73,9 @@ public class Display extends JPanel{
} }
} }
/**
* A játék háttérzenéjének megállítása.
*/
public void stopMusic() { public void stopMusic() {
try { try {
clip.stop(); clip.stop();
@ -53,6 +84,12 @@ public class Display extends JPanel{
{} {}
} }
/**
* A rajzvászonra való rajzolása a képeknek.
*
* @param g egy <code>Graphics</code> objektum, amelyre
* a rajzolófüggvény meg van hívva
*/
@Override @Override
protected void paintComponent(Graphics g) { protected void paintComponent(Graphics g) {
super.paintComponent(g); super.paintComponent(g);
@ -60,6 +97,14 @@ public class Display extends JPanel{
g.drawImage(visual.getImage(), visual.getTileX() * 64, visual.getTileY() * 64, null); g.drawImage(visual.getImage(), visual.getTileX() * 64, visual.getTileY() * 64, null);
} }
/**
* A kapott szakadék helyét a kapott mező veszi át a kapott helyen.
*
* @param gap kapott szakadék
* @param field kapott mező
* @param mapwidth kapott hely
* @see Control#ioErrorMessage()
*/
public void gapMagic(Gap gap, Field field, int mapwidth) { public void gapMagic(Gap gap, Field field, int mapwidth) {
try { try {
visuals.set((gap.getY()*mapwidth)+gap.getX(), new FieldDrawer(field)); visuals.set((gap.getY()*mapwidth)+gap.getX(), new FieldDrawer(field));
@ -69,6 +114,12 @@ public class Display extends JPanel{
} }
} }
/**
* A kapott értékekkel arányos méreteket állít be a térképnek.
*
* @param width kapott szélesség
* @param height kapott magasság
*/
public void setMapSize(int width, int height) { public void setMapSize(int width, int height) {
Dimension dimension = new Dimension(width * 64, height * 64); Dimension dimension = new Dimension(width * 64, height * 64);
setPreferredSize(dimension); setPreferredSize(dimension);