- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我这里有一个类(class)项目,我必须制作一个可以运行的小行星游戏。现在我一直致力于让关键事件得到认可。我已经阅读和观看了教程并让它们发挥作用,但在这种环境中实现同样的事情并没有帮助。我希望也许有人可以引导我走向正确的方向。
这是使用关键操作方法实现 KeyListener 的主类,它创建了我的 Ship 对象并设置了一个“沙箱”。 “沙盒”是显示对象的 Jframe。 “Sandbox”是从我在类里面收到的外部 jar 以及“blobfx.jar”中的其他内容导入的。
package Asteroid;
import java.util.Random;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import blobfx.SandBox;
import blobfx.SandBoxMode;
public class AsteroidMain implements KeyListener{
// ^^^^^^^^^^^^ currently has error: "The type AsteroidMain must implement the inherited abstract method KeyListener.keyPressed(KeyEvent)"
private static Random random = new Random();
public static void main(String[] args) {
SandBox sb = new SandBox();
sb.setFrameRate(66);
// makes window for objects at frame rate of 15
Ship shipThing = new Ship();
sb.addBlob( shipThing );
// makes ship object then adds it to the window
SandBox.simulate(sb);
// draws the objects on screen
}
@Override
public void keyPressed(KeyEvent e, Ship shipThing) {
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ currently has error: "The method keyPressed(KeyEvent, Ship) of type AsteroidMain must override or implement a supertype method"
if(e.getKeyCode() == 38){
shipThing.moveForward();
System.out.println("KEY PRESSED");
}
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
}
这是我的 Ship 类,我希望在按下 UP 键时继续前进。
package Asteroid;
import java.lang.Math;
import blobfx.PolyBlob;
public class Ship extends PolyBlob{
private double angle = 0.0;
private final double delta = 0.15;
private final double speed = 5.0;
public Ship( ){
super(0,0,0);
int x[] = {10, -10, -5, -10};
int y[] = { 0, -7, 0, 7};
setPolygon( x, y );
// sets vertices that draws the ship polygon
setLoc( 200, 200 );
}
public void moveForward(){
System.out.println( "MOVING FORWARD");
setLoc( getLoc().x + (int) Math.round(speed * Math.cos(angle)),
getLoc().y + (int) Math.round(speed * Math.sin(angle))
);
}
public void turnLeft(){
}
public void turnRight(){
}
}
最佳答案
首先查看 KeyListener
的 JavaDocs
您未实现keyPressed(KeyEvent)
,从而违反了接口(interface)的契约(Contract)要求。
这个...
@Override
public void keyPressed(KeyEvent e, Ship shipThing) {
应该给你一个编译器错误,告诉你你没有重写一个方法,它应该是
@Override
public void keyPressed(KeyEvent e) {
您不能只是“发明”参数,接口(interface)描述了任何实现都必须满足的预期要求
话虽如此,我强烈建议不要使用 KeyListener
而是使用 Key Bindings API,请参阅 How to Use Key Bindings了解更多详情
关于java - 从外部 Jar 添加 KeyEventListener 到 JFrame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28847380/
我创建了一个用户可以添加测试的字段。这一切运行顺利我只希望当用户点击(添加另一个测试)然后上一个(添加另一个测试)删除并且这个显示在新字段中。 所有运行良好的唯一问题是点击(添加另一个字段)之前添加另
String[] option = {"Adlawan", "Angeles", "Arreza", "Benenoso", "Bermas", "Brebant
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在努力将 jQuery 滚动功能添加到 nav-tab (Bootstrap 3)。我希望用户能够选择他们想要的选项卡,并在选项卡内容中有一个可以平滑滚动到 anchor 的链接。这是我的代码,可
我正在尝试在用户登录后再添加 2 个 ui 选项卡。首先,我尝试做一个之后。 $('#slideshow').tabs('remove', '4'); $("#slideshow ul li:last
我有一个包含选择元素的表单,我想通过选择添加和删除其中一些元素。这是html代码(这里也有jsfiddle http://jsfiddle.net/txhajy2w/):
正在写这个: view.backgroundColor = UIColor.white.withAlphaComponent(0.9) 等同于: view.backgroundColor = UICo
好的,如果其中有任何信息,我想将这些列添加到一起。所以说我有 账户 1 2 3 . 有 4 个帐户空间,但只有 3 个帐户。我如何创建 java 脚本来添加它。 最佳答案 Live Example H
我想知道是否有一种有效的预制算法来确定一组数字的和/差是否可以等于不同的数字。示例: 5、8、10、2,使用 + 或 - 等于 9。5 - 8 = -3 + 10 = 7 + 2 = 9 如果有一个预
我似乎有一个卡住的 git repo。它卡在所有基本的添加、提交命令上,git push 返回所有内容为最新的。 从其他帖子我已经完成了 git gc 和 git fsck/ 我认为基本的调试步骤是
我的 Oracle SQL 查询如下- Q1- select hca.account_number, hca.attribute3, SUM(rcl.extended_amou
我正在阅读 http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingG
我正在尝试添加一个“加载更多”按钮并限制下面的结果,这样投资组合页面中就不会同时加载 1000 个内容,如下所示:http://typesetdesign.com/portfolio/ 我对 PHP
我遇到这个问题,我添加了 8 个文本框,它工作正常,但是当我添加更多文本框(如 16 个文本框)时,它不会添加最后一个文本框。有人遇到过这个问题吗?提前致谢。 Live Link: JAVASCRIP
add/remove clone first row default not delete 添加/删除克隆第一行默认不删除&并获取正确的SrNo(例如:添加3行并在看到问题后删除SrNo.2)
我编码this ,但删除按钮不起作用。我在控制台中没有任何错误.. var counter = 0; var dataList = document.getElementById('materi
我有一个类似数组的对象: [1:数组[10]、2:数组[2]、3:数组[2]、4:数组[2]、5:数组[3]、6:数组[1]] 我正在尝试删除前两个元素,执行一些操作,然后将它们再次插入到同一位置。
使用的 Delphi 版本:2007 你好, 我有一个 Tecord 数组 TInfo = Record Name : String; Price : Integer; end; var Info
我使用了基本的 gridster 代码,然后我声明了通过按钮添加和删除小部件的函数它工作正常但是当我将调整大小功能添加到上面的代码中时,它都不起作用(我的意思是调整大小,添加和删除小部件) 我的js代
title 323 323 323 title 323 323 323 title 323 323 323 JS $(document).keydown(function(e){
我是一名优秀的程序员,十分优秀!