小编tom*_*ker的帖子

Java:Pacman与墙的碰撞检测

我一直在尽力解决Pacman与墙壁之间的碰撞检测问题,但是我的实现似乎无法正常工作

  • 碰撞检测完全起作用吗?是
  • 行为是否正确?没有
  • 目前的表现如何?碰到墙时,它会阻止Pacman移动,这是可以的,但是任何新的按键移动只会改变图像的轴(取决于按键的向上,向右,向下或向左),它不会将Pacman移至当前位置之外撞墙后。

任何帮助将不胜感激。提前致谢

GamePanel.java

package pacman;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JPanel;

public class GamePanel extends JPanel implements Runnable{
    private Thread animator;
    private boolean isRunning;  
    private Map map = new Map();


    public GamePanel(){
        this.setBackground(Color.BLACK);
        this.setDoubleBuffered(true);
        addKeyListener(new TAdapter());
        setFocusable(true);
    }

    @Override
    public void run() {
        isRunning = true;
        System.out.println("Is running? "+isRunning);
        long startTime, timeDiff, sleepTime; 
        startTime = System.currentTimeMillis();

        while(isRunning){
            repaint();
            gameUpdate();


             timeDiff = System.currentTimeMillis() -  startTime;
             sleepTime …
Run Code Online (Sandbox Code Playgroud)

java swing collision-detection game-physics custom-painting

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

为javascript游戏创建计时器会产生不良结果

我正在使用Canvas/JavaScript设计HTML5游戏.我的目标是创建一个计时器,在你需要射击尽可能多的敌人时,从一定的分钟倒数到零.我一直在忙着寻找有效的计时器,但是一些实现导致了浏览器崩溃的问题(可能是无限循环)或者(timeInSeconds)倒计时的速度变慢了.

这是我最近实现的代码,试图让它工作

function setTimerCountdown(){
timeInSeconds = timeInSeconds - 1;
    ctx.fillText(timeInSeconds, 200,180);
}
Run Code Online (Sandbox Code Playgroud)

我已经有了一个用于更新游戏的setInterval,这里是代码,这段代码位于js文件的底部

var main = function () {

var now = Date.now();
var delta = now - then;
update(delta / 1000);
render();
then = now;
};

// Let's play this game!
reset();
var then = Date.now();
var fps = 60;
setInterval(main, 1000/fps); // Execute as fast as possible
Run Code Online (Sandbox Code Playgroud)

然后我有额外的代码,如渲染功能,将图片呈现到屏幕和文本,这里是代码

var render = function () {

returnKillsNeeded(stageNum);
            ctx.drawImage(startGameImg, 0,0);
            ctx.font = "24px Helvetica";
            ctx.textAlign = 'center';
            ctx.textBaseline = "top";
            ctx.fillText("press …
Run Code Online (Sandbox Code Playgroud)

javascript html5 canvas timer

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