Создаем игровое окно
package jgames1;
import javax.swing.*;
public class Main
{
public static void main(String[] args)
{
JFrame f = new JFrame("JGames");// создаем окно с названием
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// закрытие окна при клике крестика
f.setSize(1100,600); // размер окна
f.setVisible(true); // окно видимо
}
}
#######################################################################
Создаем класс Дорога помещаем на панель и добавляем в фрейм.
package jgames1;
import javax.swing.*;
/**
* Created by nikelen on 2017-01-29.
*/
public class Main
{
public static void main(String[] args)
{
JFrame f = new JFrame("JGames");// создаем окно с названием
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// закрытие окна при клике крестика
f.setSize(1100,600); // размер окна
f.add(new Road());// добавляем в фрейм дорогу(класс)
f.setVisible(true); // окно видимо
}
}
------------------------------------------------------------- ---------------------------------------------
package jgames1;
import javax.swing.*;
import java.awt.*;
/**
* Created by nikelen on 2017-01-29.
*/
public class Road extends JPanel { // класс дорога наследует класс панель
Image img = new ImageIcon("res/dor.jpg").getImage();//загрузка картинки дороги
public void paint(Graphics g) { // метод перерисовывает панель
g = (Graphics2D) g;// приведение типов(рисует Graphics2D)
g.drawImage(img, 0, 0, null); //рисуем(что,где,...)
}
}
###########################################################################
На дорогу установим машинку и переместим слой 1 дороги с скоростью по умолчанию
package jgames1;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* Created by nikelen on 2017-01-29.
*/
public class Road extends JPanel implements ActionListener { // класс дорога помещаем на панель
Timer mainTimer = new Timer(20,this);// Таймер(класс) будет каждые 20мс запускать функцию actionPerformed(this)
Image img = new ImageIcon("res/dor.jpg").getImage();//загрузка картинки дороги
Player p = new Player();// инициализ класс плеер
public Road(){// конструктор
mainTimer.start();// запуск Таймера
}
public void paint(Graphics g) { // метод перерисовывает панель
g = (Graphics2D) g;// приведение типов(рисует Graphics2D)
g.drawImage(img, p.layer1, 0, null); //рисуем(что,x-слой1 и у не изменяем,...)
g.drawImage(p.img, p.x, p.y, null);//рисуем(для плеер метод имж,х-плеер и у-плеер,...)
}
public void actionPerformed(ActionEvent e){
p.move(); //плеер перемещается
repaint(); //перерисовывет всё
}
}
----------------------------------------------------- ----------------------------------------------------------
package jgames1;
import javax.swing.*;
import java.awt.*;
/**
* Created by nikelen on 2017-01-29.
*/
public class Player {
Image img = new ImageIcon("res/f_r1.jpg").getImage();//загрузка картинки
int v = 4; // скорость
int dv = 0; // ускорение
int s = 0; //путь
int x = 30; // нач координаты
int y = 100;
int layer1 = 0; // первый слой(дорога)
public void move() { // метод движения
s+= v; // путь увеличивается
layer1 -= v;//слой уменьшается
}
}
###################################################################
Зацикливаем перемещение картинки дороги
package jgames1;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* Created by nikelen on 2017-01-29.
*/
public class Road extends JPanel implements ActionListener { // класс дорога помещаем на панель
Timer mainTimer = new Timer(20,this);// Таймер(класс) будет каждые 20мс запускать функцию actionPerformed(this)
Image img = new ImageIcon("res/dor.jpg").getImage();//загрузка картинки дороги
Player p = new Player();// инициализ класс плеер
public Road(){// конструктор
mainTimer.start();// запуск Таймера
}
public void paint(Graphics g) { // метод перерисовывает панель
g = (Graphics2D) g;// приведение типов(рисует Graphics2D)
g.drawImage(img, p.layer1, 0, null); //рисуем(что,x-слой1 и у не изменяем,...)
g.drawImage(img, p.layer2, 0, null);
g.drawImage(p.img, p.x, p.y, null);//рисуем(для плеер метод имж,х-плеер и у-плеер,...)
}
public void actionPerformed(ActionEvent e){
p.move(); //плеер перемещается
repaint(); //перерисовывет всё
}
}
------------------------------------------------------- -------------------------------------------------------
package jgames1;
import javax.swing.*;
import java.awt.*;
/**
* Created by nikelen on 2017-01-29.
*/
public class Player {
Image img = new ImageIcon("res/f_l1.png").getImage();//загрузка картинки
int v = 4; // скорость
int dv = 0; // ускорение
int s = 0; //путь
int x = 30; // нач координаты
int y = 100;
int layer1 = 0; // первый слой(дорога)
int layer2 = 1200;// второй слой(дорога)
public void move() { // метод движения
s+= v; // путь увеличивается
if (layer2 -v <= 0){
layer1 = 0;
layer2 = 1200;
}
else{
layer1 -= v;//слой уменьшается
layer2 -= v;
}
}
}
####################################################################
|