/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* Arcier.java
*
* Created on 26-apr-2010, 15.34.33
*/
package arcier.graphics;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.border.LineBorder;
/**
*
* @author paolo
*/
public class Arcier
extends javax.
swing.
JFrame {
private class Palloncini
extends Thread {
@Override
public void run() {
boolean control=true;
while (control) {
for (int i = 0; i < 10; i++) {
if (palloncini[i].getLocation().y >= 700) {
palloncini[i].setLocation(palloncini[i].getLocation().x, -10);
}
palloncini[i].setLocation(palloncini[i].getLocation().x, palloncini[i].getLocation().y + 1);
checkImpact(palloncini[i]);
if(checkWinner()){
win.setVisible(true);
control=false;
}
}
try {
sleep(10);
}
}
}
}
private class Freccia
extends Thread {
@Override
public void run() {
for (int i = 0; i < 400; i++) {
Point loc
= freccia.
getLocation();
freccia.setLocation(loc.x + 2, loc.y);
try {
sleep(10);
}
}
freccia.setVisible(false);
freccia.setLocation(freccia.getLocation().x - 800, freccia.getLocation().y);
addMouseListener(new Mouse());
}
}
@Override
int y = e.getPoint().y;
arciere.setLocation(arciere.getLocation().x, y - arciere.getSize().height / 2);
}
@Override
arciere.
setIcon(new ImageIcon(getClass
().
getResource("/arcier/graphics/images/hero_armed.png")));
}
@Override
int y = e.getPoint().y;
freccia.setVisible(true);
arciere.
setIcon(new ImageIcon(getClass
().
getResource("/arcier/graphics/images/hero_without_arrow.png")));
freccia.setLocation(freccia.getLocation().x+30, (y - freccia.getSize().height / 2)-10);
Freccia f = new Freccia();
f.start();
removeMouseListener(getMouseListeners()[0]);
}
}
/** Creates new form Arcier */
public Arcier() {
initComponents();
this.win.setVisible(false);
this.freccia.setVisible(false);
initLabel();
this.addMouseMotionListener(new Mouse());
this.addMouseListener(new Mouse());
new Palloncini().start();
}
private void checkImpact
(JLabel pPalloncino
){
if(this.impact(pPalloncino)){
pPalloncino.setVisible(false);
}
}
private boolean checkWinner(){
int cont=0;
for(int i=0; i<10; i++){
if(!this.palloncini[i].isVisible()){
cont++;
}
}
return cont==10;
}
private boolean impact
(JLabel pPalloncino
){
Dimension palloncinoD
= pPalloncino.
getSize();
Point locFreccia
= this.
freccia.
getLocation();
Point locPalloncino
= pPalloncino.
getLocation();
return frecciaR.intersects(palloncinoR);
}
private void initLabel() {
this.
palloncini = new JLabel[10
];
for (int i = 0; i < 10; i++) {
this.
palloncini[i
] = new JLabel(new ImageIcon(getClass
().
getResource("/arcier/graphics/images/palloncino.png")));
this.palloncini[i].setVisible(true);
this.palloncini[i].setSize(50, 80);
this.palloncini[i].setLocation(270 + (i * 50), -80);
this.jPanel1.add(this.palloncini[i]);
}
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jPanel1
= new javax.
swing.
JPanel();
arciere
= new javax.
swing.
JLabel();
freccia
= new javax.
swing.
JLabel();
win
= new javax.
swing.
JLabel();
setTitle("Arcier - by Paolo Ricciuti");
setResizable(false);
jPanel1.
setBackground(new java.
awt.
Color(78, 204, 106
));
jPanel1.setLayout(null);
arciere.
setIcon(new javax.
swing.
ImageIcon(getClass
().
getResource("/arcier/graphics/images/hero_without_arrow.png"))); // NOI18N
arciere.
setBorder(javax.
swing.
BorderFactory.
createEmptyBorder(1, 1, 1, 1
));
arciere.setFocusable(false);
arciere.setRequestFocusEnabled(false);
jPanel1.add(arciere);
arciere.setBounds(12, 12, 96, 131);
freccia.
setIcon(new javax.
swing.
ImageIcon(getClass
().
getResource("/arcier/graphics/images/arrow.png"))); // NOI18N
freccia.
setBorder(javax.
swing.
BorderFactory.
createEmptyBorder(1, 1, 1, 1
));
jPanel1.add(freccia);
freccia.setBounds(12, 181, 75, 7);
win.
setIcon(new javax.
swing.
ImageIcon(getClass
().
getResource("/arcier/graphics/images/win.png"))); // NOI18N
win.
setBorder(javax.
swing.
BorderFactory.
createEmptyBorder(1, 1, 1, 1
));
jPanel1.add(win);
win.setBounds(280, 190, 310, 270);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.
addComponent(jPanel1, javax.
swing.
GroupLayout.
DEFAULT_SIZE, 793,
Short.
MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.
addComponent(jPanel1, javax.
swing.
GroupLayout.
DEFAULT_SIZE, 600,
Short.
MAX_VALUE)
);
pack();
}// </editor-fold>//GEN-END:initComponents
/**
* @param args the command line arguments
*/
public static void main
(String args
[]) {
public void run() {
Arcier a=new Arcier();
int x=(screen.width-a.getSize().width)/2;
int y=(screen.height-a.getSize().height)/2;
a.setLocation(x, y);
a.setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.
swing.
JLabel arciere
;
private javax.
swing.
JLabel freccia
;
private javax.
swing.
JPanel jPanel1
;
private javax.
swing.
JLabel win
;
// End of variables declaration//GEN-END:variables
}