小编Jor*_*rdi的帖子

Java pong游戏图形或geom 2D

我的第一个项目是用Java制作游戏Pong.因为我需要计算我的x位置和y位置的delta ,我认为最好的方法是使用双变量(对不起,如果我错了).但是你不能使用double来填充lib中的形状java.awt.*.

在这里我计算球击球后的角度

int c = (int) Math.atan2(ball.getPosY(), ball.getPosX());
int delta_x = (int) (1 * Math.cos(c));

    int delta_y = (int) (1 * Math.sin(c));
    this.dx += delta_x;
    this.dy += delta_y;
Run Code Online (Sandbox Code Playgroud)

dxdy我改变的位置xy乓球.我在这里画我的乒乓球.

g.setColor(Color.WHITE);
g.fillOval(this.posX, this.posY, 25, 25);
Run Code Online (Sandbox Code Playgroud)

如果我想要dx并且dy更准确,我必须改变类型delta_ydelta_x加倍.但fillOval()不适用于双变量.所以我必须改为使用我的图形geom.Point2D.Double吗?

java awt pong

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

JPanel中的JPanel不会监听KeyListener

目前我正在用Java编写一个关卡编辑器.级别在JPanel中.在这个JPanel里面我把游戏元素(英雄,敌人,树,墙......)用于我使用class.GameElement的每个元素.

public class GameElement extends JPanel
 {
protected int posX, posY;
private Color color;


public GameElement(int x, int y, Color color)
{
    this.posX = x;
    this.posY = y;
    this.color = color;

}

public void paintComponent(Graphics g)
{
    super.paintComponent(g);
    g.setColor(color);
    g.fillRect(0, 0, 50, 50);
}

}
Run Code Online (Sandbox Code Playgroud)

GameElement类也是一个JPanel.我希望使用KeyListener可以移动游戏元素英雄.

import java.awt.Color;
import java.awt.event.*;

public class Hero extends Entity implements KeyListener
{
public Hero(int x, int y, Color color)
{
    super(x, y, color);


    this.setFocusable(true);
    this.addKeyListener(this);
}

public void keyPressed(KeyEvent k)
{
    if(k.getKeyCode() == KeyEvent.VK_UP) …
Run Code Online (Sandbox Code Playgroud)

java swing keylistener key-bindings jpanel

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

标签 统计

java ×2

awt ×1

jpanel ×1

key-bindings ×1

keylistener ×1

pong ×1

swing ×1