Заикание изображения в JavaJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Заикание изображения в Java

Сообщение Anonymous »


Мои Java-изображения тормозят, как вы можете видеть в клипе. Я перепробовал все, но ничего не помогло.

объект пакета; импортировать java.awt.Color; импортировать java.awt.Graphics2D; импортировать main.GamePanel; общественный класс Cop расширяет Entity { GamePanel gp; общественный полицейский (GamePanel gp) { this.gp = gp; установитьЗначения по умолчанию(); } недействительный setDefaultValues ​​() { скорость = 2; } общественное недействительное обновление () { int screenX = (int) (worldX - gp.player.worldX + gp.player.screenX); int screenY = (int) (worldY - gp.player.worldY + gp.player.screenY); if (Math.sqrt(Math.pow((gp.player.screenX - screenX), 2) + Math.pow((gp.player.screenY - screenY), 2)) > 200) { if (gp.player.screenX > screenX && gp.player.screenY > screenY) { worldX += скорость * Math.sqrt(0.5); worldY += скорость * Math.sqrt(0.5); } else if (gp.player.screenX > screenX && gp.player.screenY < screenY) { worldX += скорость * Math.sqrt(0.5); worldY -= скорость * Math.sqrt(0.5); } else if (gp.player.screenX < screenX && gp.player.screenY > screenY) { worldX -= скорость * Math.sqrt(0.5); worldY += скорость * Math.sqrt(0.5); } else if (gp.player.screenX < screenX && gp.player.screenY < screenY) { worldX -= скорость * Math.sqrt(0.5); worldY -= скорость * Math.sqrt(0.5); } else if (gp.player.screenX == screenX && gp.player.screenY > screenY) { мирX += скорость; } else if (gp.player.screenX == screenX && gp.player.screenY < screenY) { мирX -= скорость; } else if (gp.player.screenY == screenY && gp.player.screenX > screenX) { мирY += скорость; } else if (gp.player.screenY == screenY && gp.player.screenX < screenX) { worldY -= скорость; } } еще { стрелять(); } } общественная недействительная съемка () { gp.aSetter.spawnBullet(); } общественная недействительная ничья (Graphics2D g2) { int screenX = (int) (worldX - gp.player.worldX + gp.player.screenX); int screenY = (int) (worldY - gp.player.worldY + gp.player.screenY); //g2.drawLine((int) gp.player.screenX, (int) gp.player.screenY, screenX, screenY); if (worldX + gp.tileSize > gp.player.worldX - gp.player.screenX && worldX - gp.tileSize < gp.player.worldX + gp.player.screenX && worldY + gp.tileSize > gp.player.worldY - gp.player.screenY && worldY - gp.tileSize < gp.player.worldY + gp.player.screenY) { g2.setColor(Цвет.белый); g2.fillRect(screenX, screenY, gp.tileSize, gp.tileSize); } } } Возможно, это проблема с моим игровым циклом? Я понятия не имею, что происходит. Мой плеер двигается нормально, а два других изображения - нет.

https://imgur.com/a/2EG2BmI

Игровая панель:

пакет основной; импортировать java.awt.*; импортировать javax.sql.ConnectionPoolDataSource; импортировать javax.swing.JPanel; импортировать объект.Cop; импортировать объект.Player; импортировать объект.СуперОбъект; импортировать объект.Пуля; импортировать плитку.TileManager; публичный класс GamePanel расширяет JPanel и реализует Runnable { окончательный int originalTileSize = 16; окончательный масштаб int = 3; общественный окончательный int tileSize = originalTileSize * масштаб; публичный финал int maxScreenCol = 16; публичный финал int maxScreenRow = 12; публичный окончательный int screenWidth = tileSize * maxScreenCol; публичный окончательный int screenHeight = tileSize * maxScreenRow; публичный финал int maxWorldCol = 50; публичный финал int maxWorldRow = 50; публичный финал int worldWidth = tileSize * maxWorldCol; публичный финал int worldHeight = tileSize * maxWorldRow; интервал FPS = 60; TileManager tileM = новый TileManager(this); KeyHandler keyH = новый KeyHandler(); Поток игрыThread; публичный игрок Player = новый игрок (this, keyH); общественный AssetSetter aSetter = новый AssetSetter (это); публичный SuperObject obj[] = новый SuperObject[10]; публичный полицейский полицейский[] = новый полицейский[4]; public Bullet Bullet[] = новый Bullet[4]; общедоступная логическая играRunning; общественные int fps, кадры; общественная плавающая дельта; public int WantFPS = 60; общественная GamePanel() { this.setPreferredSize(new Dimension(screenWidth, screenHeight)); this.setBackground(Color.black); this.setDoubleBuffered(истина); this.addKeyListener(keyH); this.setFocusable(истина); } общественная недействительность setupGame() { aSetter.setObject(); aSetter.setCops(); } общественный недействительный startGameThread () { gameThread = новая тема (это); gameThread.start(); } @Override общественный недействительный запуск () { двойной drawInterval = 1000000000/FPS; двойная дельта = 0; longlastTime = System.nanoTime(); длинный currentTime; while (gameThread != null) { currentTime = System.nanoTime(); дельта += (currentTime - LastTime) / drawInterval; ПоследнееВремя = ТекущееВремя; если(дельта = 1) { обновлять(); перекрасить(); дельта —; } } } общественное недействительное обновление () { игрок.обновление(); копы[0].update(); } public voidpaintComponent(Graphics g) { супер.paintComponent(г); Графика2D g2 = (Graphics2D)g; tileM.draw(g2); for (int i = 0; i < Bullets.length; i++) { if (bullets != null) { пули.draw(g2, это); } } for (int i = 0; i
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Наблюдаю некоторое заикание даже при перемещении простого изображения.
    Anonymous » » в форуме JAVA
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Заикание при воспроизведении аудио с использованием NAudio и Opus только при прохождении через сеть
    Anonymous » » в форуме C#
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Увидеть какое -то заикание, даже когда я перемещаю простое изображение
    Anonymous » » в форуме JAVA
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Положение Lazyvstack или Lazyhstack в Scrollview вызывает заикание
    Anonymous » » в форуме IOS
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Заикание / мерцание эффекта на мой контекст OpenGL
    Anonymous » » в форуме C++
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»