1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- package com.rthoni.uqac.pigeon;
-
- import javax.swing.*;
- import javax.swing.Timer;
- import java.awt.*;
- import java.awt.event.*;
- import java.util.*;
- import java.util.List;
-
- /**
- * Created by ZHAJOR on 30/10/2016.
- */
- public class Game extends JPanel implements MouseListener, ActionListener
- {
-
- private List<Pigeon> pigeons;
- private List<Food> foods;
-
- /**
- * Initialize the game and create some pigeons
- */
- public Game(int nb){
- addMouseListener(this);
- this.pigeons = new ArrayList<Pigeon>();
- this.foods = new ArrayList<Food>();
- for(int i = 0; i < nb; ++i){
- Pigeon p = new Pigeon(""+i, this);
- this.pigeons.add(p);
- p.start();
- }
- this.createTimer();
- }
-
- /**
- * Paint the scene
- * @param g The graphics
- */
- @Override
- public void paint(Graphics g) {
- Graphics2D g2d = (Graphics2D) g;
- g2d.setColor(Color.RED);
- // Draw piegons
- for (Pigeon pigeon : this.pigeons) {
- g2d.fillOval(pigeon.getX(), pigeon.getY(), 30, 30);
- }
- g2d.setColor(Color.BLUE);
- // Draw foods
- synchronized (this) {
- for (Food food : this.foods) {
- g2d.fillRect(food.getX(), food.getY(), 15, 15);
- }
- }
- }
-
- @Override
- public void mouseClicked(MouseEvent e) {
-
- }
-
- @Override
- public synchronized void mousePressed(MouseEvent e) {
- this.foods.add(new Food(e.getX(), e.getY()));
- }
-
- @Override
- public void mouseReleased(MouseEvent e) {
-
- }
-
- @Override
- public void mouseEntered(MouseEvent e) {
-
- }
-
- @Override
- public void mouseExited(MouseEvent e) {
-
- }
-
- public List<Food> getFoods(){
- return this.foods;
- }
-
- public synchronized void removeFood(Food food){
- this.foods.remove(food);
- }
-
- private void createTimer(){
- new Timer(50, this).start();
- }
- @Override
- public void actionPerformed(ActionEvent e) {
- repaint();
- }
- }
|