Почему мой windows экземпляр не распознается в классе Game. java? - PullRequest
0 голосов
/ 19 января 2020

Я использую этот учебник YouTube: https://www.youtube.com/watch?v=1gir2R7G9ws

Вот ошибка компилятора:

Игра. java: 18: ошибка: не могу найти символ нового окна (ШИРИНА, ВЫСОТА, «Давайте построим игру!», это); ^ символ: класс Расположение окна: класс Игра

Вот моя игра. java код:

package com.tutorial.main;

import java.awt.Graphics;
import java.awt.Color;
import java.awt.Canvas;
import java.awt.image.BufferStrategy;

public class Game extends Canvas implements Runnable {

        private static final long serialVersionUID = 8073316534757788976L;

        public static final int WIDTH = 640, HEIGHT = WIDTH/12*9;

        private Thread thread;
        private boolean running = false;

        public Game(){
                new Window(WIDTH, HEIGHT, "Let's Build A Game!", this);
        }

        public synchronized void start() {
                thread = new Thread(this);
                thread.start();
                running = true;
        }

        public synchronized void stop(){
                try{
                        thread.join();
                        running = false;
                }catch(Exception e) {
                        e.printStackTrace();
                }
        }

        public void run(){
                long lastTime = System.nanoTime();
                double amountOfTicks = 60.0;
                double ns = 100000000 / amountOfTicks;
                double delta = 0;
                long timer = System.currentTimeMillis();
                int frames = 0;
                while(running){
                        long now = System.nanoTime();
                        delta += (now - lastTime) /ns;
                        lastTime = now;
                        while(delta >= 1){
                                tick();
                                delta--;
                        }
                        if(running){
                                render();
                        }
                        frames++;

                        if(System.currentTimeMillis() - timer > 1000){
                                timer+=1000;
                                System.out.println("FPS: " + frames);
                                frames = 0;
                        }
                }
                stop();
        }

        public static void main(String args[]){
                new Game();
        }

        private void tick(){

        }
        private void render(){
                BufferStrategy bs = this.getBufferStrategy();
                if(bs==null){
                        this.createBufferStrategy(3);
                        return;
                }

                Graphics g = bs.getDrawGraphics();

                g.setColor(Color.black);
                g.fillRect(0,0,WIDTH,HEIGHT);

                g.dispose();
                bs.show();

        }
}

Вот мое окно. java:

package com.tutorial.main;

import java.awt.Canvas;
import java.awt.Dimension;
import javax.swing.JFrame;


public class Window extends Canvas{

    private static final long serialVersionUID = -3359827712233484029L;

    public Window(int width, int height, String title, Game game){
        JFrame frame = new JFrame(title);

        frame.setPreferredSize(new Dimension(width, height));
        frame.setMaximumSize(new Dimension(width, height));
        frame.setMinimumSize(new Dimension(width, height));

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);
        frame.setLocationRelativeTo(null);
        frame.add(game);
        frame.setVisible(true);
        game.start();


    }
}

Почему экземпляр не распознан?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...