Tag: 2d

Java代码需要一个system.out.println语句来运行

我想知道是否有其他人遇到过这个问题。 我游戏中的这部分代码依赖于system.out.println语句来工作。 没有它,它将无法正常运作 while(isladder){ t = Map.tiles[(int) (Player.x + 15 + ScrollManager.xoffset) / 32][(int) ((Player.y ) + ScrollManager.yoffset) / 32]; if(t.row == 3 && t.col == 5){ ScrollManager.dy = -.5; System.out.println(t.row); }else{ ScrollManager.nogravity = false; } } 这是在有人点击向上键时启动的线程。 这是我正在制作的2D游戏的阶梯。 没有system.out.println代码,播放器将继续悬浮在空中。 有了它,玩家将像往常一样停在梯子顶部 (更新)我通过添加Thread.sleep(1)来修复它,使其运行更顺畅

又一个KeyListener / KeyBinding问题

唉,我很抱歉MadProgrammer,但我无法让KeyBinding以我想要的方式工作:(。但是我会继续看一些教程,直到我弄明白。现在虽然我已经卡住了到了一个KeyListener并且它可以正常工作。但是现在我遇到了一个问题,其中p.move();实际上没有移动播放器。除了p.move()之外,我放入的所有其他代码都工作正常。我可能不应该问这么多问题,所以如果你想让我停下来就这么说,但整个SO社区真的很好。再次,我会发布代码。 主要课程: import javax.swing.*; public class Game extends JFrame{ public static void main(String[] args){ new Game(); } public Game(){ add(new Board()); setTitle(“Hi mom”); setSize(555,330); setResizable(false); setLocationRelativeTo(null); setDefaultCloseOperation(3); setVisible(true); } } 董事会成员: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Board extends JPanel implements ActionListener { Image background; Player p; boolean moving; public Board() { setFocusable(true); […]

Java 2D碰撞?

嘿家伙我正在制作一个2D java游戏,我正在试图弄清楚如何制作一个好的碰撞代码。 我目前正在使用以下代码: public void checkCollision() { Rectangle player_rectangle = new Rectangle(player.getX(),player.getY(),32,32); for(Wall wall : walls) { Rectangle wall_rectangle = new Rectangle(wall.getX(), wall.getY(), 32,32); if (player_rectangle.intersects(wall_rectangle)) { Rectangle intersection = (Rectangle) player_rectangle.createIntersection(wall_rectangle); if (player.xspeed > 0) { player.x -= intersection.getWidth(); } if (player.yspeed > 0) { player.y -= intersection.getHeight(); } if (player.xspeed < 0) { […]

在2D数组中查找有效的邻居

所以,我有一个4×4 2Darrays(它总是这些尺寸)。 从数组上的某个位置开始,一些行和列,我想找到它的所有有效邻居。 到目前为止,我有一个非常笨重的实现。 //add row if ( !((row + 1) > 3)) { //do stuff } //sub row if ( !((row – 1) 3)) { //do stuff } //sub col if ( !((col – 1) < 0)) { //do stuff } … and so on 这是残酷的。 当我开始知道元素的位置时,我觉得我不需要检查每个邻居。 有任何想法吗?

在网格中旋转对象(GUI,JAVA SWING)

好的,所以我正在尝试这个教程: http : //mathcs.slu.edu/~fritts/cse131/labs/lab9/index.html 但我不知道如何旋转物体 synchronized void moveDown() { } 是否有任何已定义的方法或我是否必须实现自己的代码? 我想改变对象的形状,但这意味着我每次都要改变我当前的对象,这可能有点复杂。 调用moveDown的方法: public void keyPressed(KeyEvent event) { int key = event.getKeyCode(); switch (key) { case KeyEvent.VK_UP: // up arrow case KeyEvent.VK_KP_UP: currentPiece.rotateCounterclockwise(); break; case KeyEvent.VK_DOWN: // down arrow case KeyEvent.VK_KP_DOWN: currentPiece.rotateClockwise(); break; case KeyEvent.VK_LEFT: // left arrow case KeyEvent.VK_KP_LEFT: currentPiece.moveLeft(); break; case KeyEvent.VK_RIGHT: // […]

Java 2D ArrayList和排序

我需要通过项目所在的过道对购物清单进行排序,例如: [面包] [1] [牛奶] [2] [谷物] [3] 我打算用ArrayList做这个,并想知道如何制作2D ArrayList奖金问题:关于如何按过道号排序的任何想法?

2D数组,输出不在接近正确的位置

import java.util.Scanner; public class Maze { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int rows = 0; int cols = 0; String arrayLine = “”; int counter = 0; rows = sc.nextInt(); cols = sc.nextInt(); arrayLine = sc.next(); char[][] array = new char[rows][cols]; for(int r=0; r<rows; r++){ for (int c=0; c<cols; […]

Java:按指定的度数值旋转另一个

我试图在java中围绕另一个具有指定度数值的2D点旋转,在这种情况下简单地围绕点(0,0)在90度。 方法: public void rotateAround(Point center, double angle) { x = center.x + (Math.cos(Math.toRadians(angle)) * (x – center.x) – Math.sin(Math.toRadians(angle)) * (y – center.y)); y = center.y + (Math.sin(Math.toRadians(angle)) * (x – center.x) + Math.cos(Math.toRadians(angle)) * (y – center.y)); } 预期为(3,0):X = 0,Y = -3 返回(3,0):X = 1.8369701987210297E-16,Y = 1.8369701987210297E-16 预期为(0,-10):X = -10,Y = 0 […]

绘制线 – 最大点

我画了一条基于滑块的角度线。 我试图让线的末端Y坐标一定数量(比如300),即使它是一个角度。 关于如何做到这一点的任何想法? 到目前为止,这是我的工作: double angle = intAngle; angle = angle * Math.PI / 180; double length = 300; graphics.setColor(Color.RED); double startX = 300; double startY = 100; double endX = startX + length * Math.cos(angle); double endY = startY + length * Math.sin(angle); double end2X; double end2Y; double dblAngle; double angle2; int intAngle2; double […]

如何在2D数组中更改数组元素的值?

假设我打印出这张地图: 00000 00000 00000 如何将[0] [0]中的元素更改为X? 换句话说,如何使用Screen输入使其看起来像这样: X0000 00000 00000