Главная » Статьи » Игры на java

конструкор для создания игр ч1.

Любая игра или приложение отображается в окне, которое можно реализовать следующими файлами:



Первый файл
запускает наше игровое окно с параметрами.
Окно создаётся с помощью класса JFrame.

Файл GameStart.java
package kuzma;

import javax.swing.JFrame;


public class GameStart {


 public static void main(String[] args) {
 GamePanel panel = new GamePanel();// создаём объект панель
 JFrame startFrame = new JFrame("game");// создаем окно с названием
 startFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// закрытие окна при клике крестика
 startFrame.setContentPane(panel); // перенос в фрейм панели с GamePanel
 startFrame.setLocationRelativeTo(null);//положение фрейма по центру
 startFrame.pack();//размер фрейма как и размер его компонентов

 panel.start();// заускаем поток панели
// окно видемо
 startFrame.setVisible(true);

 }

}

 

Второй необходимый файл -панель на которой происходят все действия...

Файл GamePanel.java

package kuzma;

import java.awt.*;
import java.awt.image.BufferedImage;
import javax.swing.*;


public class GamePanel extends JPanel implements Runnable {
 // задаём размер панели
 public static int WIDTH = 400;//
 public static int HEIGHT = 400;//


 private Thread thread; // Создаем поток- ссылка на обьект класса Thread
 private BufferedImage image; // ссылка на обьект класса
 private Graphics2D g; // ссылка на обьект класса
 private GameBack background;

 // конструктор
 public GamePanel() {
 super(); // активируем консруктор родителя
 setPreferredSize(new Dimension(WIDTH, HEIGHT)); // размер передаем в обьект класса Измерения

 setFocusable(true); //передаем фокус
 requestFocus(); // акивируем

 }

 // запуск потока
 public void start() {
 thread = new Thread((Runnable) this);
 thread.start();// запускаем поток

 }

 //метод от интерфейса Runnable (потока)
 @Override
 public void run() {
 image = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
 g = (Graphics2D) image.getGraphics();
 background = new GameBack();

 while (true) { // игровой цикл
 gameUpdate(); //обновление

 gameRender(); //перерисовка
 gameDraw(); ////перенос изображения на панель

 try {
 thread.sleep(33); //засыпаем на ... мс
 } catch (InterruptedException ex) { //если не удается заснуть- исключение
 ex.printStackTrace();
 }
 }
 }

 //обновление
 public void gameUpdate() { //обновление
 background.update();// вызов метода для заднего плана
 }

 //рисуем задний план в виртуальном окне
 public void gameRender() { //перерисовка
 background.draw(g);// вызов метода для заднего плана

 }

 //перенос изображения на панель
 private void gameDraw() {
 Graphics g2 = this.getGraphics();// переоппред Graphics2d на Graphics
 g2.drawImage(image, 0, 0, null);// рисуем
 g2.dispose();// команда для уборщщика мусора
 }


}

Файл GameBack.java

package kuzma;

/**
 Задний фон игровой панели
 */
import javax.swing.*;
import java.awt.*;

public class GameBack {

 private Color color;

 Image img = new ImageIcon("res/dieta.jpg").getImage();//загрузка картинки

 public GameBack() {
 color = Color.BLUE;

 }

 public void update() { //обновление

 }

 public void draw(Graphics2D g) { //прорисовка в Graphics2D

 g.setColor(color);//передаём цвет граф объекту
 g.fillRect(0, 0, GamePanel.WIDTH, GamePanel.HEIGHT);//рисуем прямоугольную область

 Color newColor = new Color(200, 200, 0);//созд обьект клсса цвет
 g.setColor(newColor);// передаём цвет граф объекту
 g.fillRect(0, 0, GamePanel.WIDTH, 10);//рисуем прямоугольную область

 g.drawImage(img, 40, 40, null);//рисуем картинку
 }
}
Категория: Игры на java | Добавил: kuzma (15.02.2017)
Просмотров: 507 | Рейтинг: 0.0/0
Всего комментариев: 0
avatar

Программирование игр на Python

Django - создание сайтов с нуля

Javascript - просто используем готовые решения