- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个简单的 flappy bird 游戏作为 Java Applet。我遇到的问题是图形极度无响应,通常在按下键后需要 5-10 秒才能响应。此外,它仅在按键被按下一定次数(大约 6 或 7 次)时才会响应。我认为这不是我电脑的问题,因为我在高规范 MacBook Pro(8 GB RAM)上运行它, i5 处理器)。这是我使用的两个主要类:
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
//The main class I use to run the game
public class Flap extends Applet implements Runnable, KeyListener
{
final int WIDTH = 700, HEIGHT = 500;
Thread thread;
Bird b;
boolean beenPressed = false;
public void init()
{
this.resize(WIDTH, HEIGHT);
this.addKeyListener(this);
b = new Bird();
thread = new Thread(this);
thread.start();
}
public void paint(Graphics g)
{
g.setColor(Color.CYAN);
g.fillRect(0, 0, WIDTH, HEIGHT - 100);
g.setColor(Color.green);
g.fillRect(0, 400, WIDTH, HEIGHT);
b.draw(g);
}
public void update(Graphics g)
{
paint(g);
}
@Override
public void run()
{
for(;;)
{
//Pillar upPillar = new Pillar()
b.move();
repaint();
try
{
Thread.sleep(500);
}
catch(InterruptedException e)
{
e.printStackTrace();
}
}
}
@Override
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode() == KeyEvent.VK_UP)
{
if(!beenPressed)
{
b.setUp(true);
}
beenPressed = true;
}
else
{
b.setDown(true);
}
}
@Override
public void keyReleased(KeyEvent e)
{
if(e.getKeyCode() == KeyEvent.VK_UP)
{
beenPressed = false;
b.setUp(false);
}
else
{
b.setDown(false);
}
}
@Override
public void keyTyped(KeyEvent arg0)
{
}
}
import java.awt.Color;
import java.awt.Graphics;
//The Bird class, which has the methods for the player to move
public class Bird
{
int x, y, yvel;
boolean goingUp, goingDown;
public Bird()
{
x = 200;
y = 200;
}
public void draw(Graphics g)
{
g.setColor(Color.yellow);
g.fillRect(x, y, 60, 25);
}
public void move()
{
if(goingUp)
{
yvel -= 50;
}
else if(goingDown)
{
yvel += 50;
}
y += yvel;
}
public int getX()
{
return x;
}
public int getY()
{
return y;
}
public void setUp(boolean b)
{
goingUp = b;
}
public void setDown(boolean b)
{
goingDown = b;
}
}
虽然还没有完成,但在这个阶段,我觉得至少鸟儿应该动起来了。
最佳答案
图形并不慢,更新之间的时间太长了。它基本上允许在更新周期发生之前按下和释放键。
我会将 Thread.sleep(500);
减少到更像 Thread.sleep(10);
并将移动增量更改为更像...
public void move()
{
if(goingUp)
{
yvel -= 1;
}
else if(goingDown)
{
yvel += 1;
}
y += yvel;
}
作为起点。
使用小程序,坏主意。 Applet 已被弃用,是一项已死的技术。 Applet 也不是双缓冲的,因此您可能最终会遇到一些可怕的闪烁。 KeyListener 因存在问题(不响应)而闻名,虽然它是使用 AWT 时的唯一解决方案,但使用 Swing 时,ket 绑定(bind) API 是更好的解决方案
我建议的第一件事是看一下使用 JPanel 作为基础组件,然后看一下 Performing Custom Painting和 Painting in Swing更好地理解绘画的工作原理
如果您“真的”需要高性能(或者只是想更好地控制绘画过程),您还应该看看 BufferStrategy and BufferCapabilities
我还建议您查看 JavaFX对于这种事情,它有更好的 API
关于java - Flappy Bird 图形慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48573682/
本文实例为大家分享了python实现flappy bird的简单代码,供大家参考,具体内容如下 ?
一些想法 自学python已经有快三个月了 最近这段时间没有怎么写过python 很多东西反而又遗忘了 准备翻以前的笔记复习一下在博客上记录下来 自己也没能够做出什么厉害的东西 小鸟游戏算是目前自
大一,上学期学完了C,写了几个控制台游戏 这学期自学C++,由于学校课程第七周才有C++ 边学边写了这个小游戏,SDL 图形库完成的图形绘画 时间匆忙,BUG也有,代码效率比较低 和原作品还是很大
我正在尝试编写一个简单的 flappy bird 游戏作为 Java Applet。我遇到的问题是图形极度无响应,通常在按下键后需要 5-10 秒才能响应。此外,它仅在按键被按下一定次数(大约 6 或
我正在尝试创建一种遗传算法来学习玩飞扬的小鸟。我的游戏正在运行,这是我的 Bird 类: public class Bird extends Player { public NNetwork netw
第一个python文件,flappybirdmain.py ,程序中已经有详细注释.。 程序大概流程:1.加载图片素材文件 2.绘画开始界面,等待程序开始(按空格) 3 .程序刷新,不断while
这是this的延续 我的新 pig 脚本是: register /usr/hdp/current/pig-client/lib/piggybank.jar register /opt/elephant
如果记录采用以下格式,则可以使用Elephantbird JsonLoader加载数据: {"disknum":36,"disksum":136.401,"disk_rate":1872.0,"dis
目前,我正在尝试将消息鸟 API 集成到我的自动化应用程序 ( https://developers.messagebird.com/ ) 中。 我正在尝试使用消息鸟 API 上传文件,正如文档所述,
目前,我正在尝试将消息鸟 API 集成到我的自动化应用程序 ( https://developers.messagebird.com/ ) 中。 我正在尝试使用消息鸟 API 上传文件,正如文档所述,
所以,我正在制作一只飞翔的小鸟克隆。问题是我是使用 java 和 libgdx 编程的新手,我想请求您的帮助。我想在特定区域(只是一个简单的矩形形状)进行触摸检测,而不是在整个屏幕上单击。 这是我当前
好的,我有 Game、Bird 和 Board 类。我的 Game 类中有管道创建、删除和移动代码。有人建议我不要创建 Pipe 类并创建一个管道对象。没有管道代码,我的游戏运行流畅,尽管没有管道出现
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 6 年前。 Improve this qu
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 9
请不要告诉我使用 bool 值 ! 来检查它。因为我想使用 jquery 插件在我的函数中做一些事情。我只想修复它的正则表达式部分...这可能吗? 最佳答案 更好,海事组织: preg_match('
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 9年前关闭。 Improve this que
我正在尝试按照此处的指南学习 LibGdx。 http://www.kilobolt.com/day-4-gameworld-and-gamerenderer-and-the-orthographic
为了熟悉强化学习,我正在实现基本的 RL 算法来玩游戏 Flappy Bird 。我已完成所有设置,唯一遇到的问题是实现奖励功能。我希望能够处理屏幕并识别是否已得分或鸟是否已死亡。 处理屏幕是使用 m
这里是新手...我正在学习 Brent 的 Flappy Bird 教程,尽管我正在制作类似 Icy Tower 的游戏,但开始屏幕等内容也是如此。 事实是,布伦特使用了: public static
我想弄清楚鸟 SVG 动画,它的动画 body 像鸟,但拍打距离太大了! 这是代码 .st0 { fill: #242427; } @keyframes flyb { 0%, 100% {
我是一名优秀的程序员,十分优秀!