小编san*_*ixx的帖子

当我重新粉刷时,停止在秋千上闪烁

我正在制作一个带有tilemap的RPG.为了生成tilemap,我循环通过一个二维数组,但这意味着当我重新绘制时,我必须每次都这样做.如果我重画太多屏幕闪烁,我怎么能阻止这个.

package sexyCyborgFromAnOtherDimension;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Timer;
import java.util.TimerTask;

import javax.swing.JPanel;

@SuppressWarnings("serial")
public class Game extends JPanel
{
    KeyLis listener;
    int mapX = 20;
    int mapY = 20;
    boolean up = false;
    boolean down = false;
    boolean right = false;
    boolean left = false;
    String[][] map;

    public Game()
    {
        super();
        try 
        {
            map = load("/maps/map1.txt");
        } 

        catch (IOException e) 
        {
            // TODO Auto-generated catch …
Run Code Online (Sandbox Code Playgroud)

java concurrency swing repaint event-dispatch-thread

6
推荐指数
1
解决办法
1万
查看次数

Java将inputStream转换为URL

如何将inputStream转换为URL?这是我的代码:

InputStream song1 = this.getClass().getClassLoader().getResourceAsStream("/songs/BrokenAngel.mp3");
URL song1Url = song1.toUrl(); //<- pseudo code
MediaLocator ml = new MediaLocator(song1Url);
Player p;
try {
    p = Manager.createPlayer(ml);
    p.start();
} catch (NoPlayerException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

java swing jfxtras

5
推荐指数
1
解决办法
2万
查看次数

Java(swing)仅绘制屏幕上可见的内容

我正在用java制作一个基于平铺的平台游戏。我渲染一个存储在二维数组中的地图,但是当这个数组非常大时,我的游戏开始变得缓慢。我意识到我必须只渲染地图中可见的部分,我尝试这样做,但我编写了非常糟糕的代码,只能部分工作,所以我将其删除。我怎样才能正确地做到这一点?这是我的代码(没有黑客的东西)。另外我该如何使用System.nanoTime()而不是System.currentTimeMillis()?

package sexy_robot_from_another_dimension;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.RenderingHints;
import java.awt.TexturePaint;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Timer;
import java.util.TimerTask;

import javax.swing.JPanel;

@SuppressWarnings("serial")
public class Game extends JPanel
{
    int playerX = 50;
    int playerY = 50;
    static boolean up = false;
    static boolean down = false;
    static boolean right = false;
    static boolean left = false;
    int playerSpeed = 1;
    String[][] map;
    int blockSize = 20; …
Run Code Online (Sandbox Code Playgroud)

java arrays swing

2
推荐指数
1
解决办法
895
查看次数

2D Java地形生成器

如何在2D游戏中随机形成孤岛?我不知道怎么开始!

void generateMap()
{
    blocks.clear();
    for(int x = 0; x < 150; x++)
    {
        for(int y = 0; y < 150; y++)
        {
            if(Math.random() < 0.5)
                blocks.add(new Block(x * Block.blockSize, y * Block.blockSize, eBlockType.GRASS));
            else
                blocks.add(new Block(x * Block.blockSize, y * Block.blockSize, eBlockType.WATER));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

PIC

java 2d terrain

2
推荐指数
1
解决办法
2538
查看次数