Comments added to Display.java
This commit is contained in:
parent
d9e4873741
commit
618add1c98
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user