我有一个必须有一些静态方法的类.在这些静态方法中,我需要调用方法getClass()来进行以下调用:
public static void startMusic() {
URL songPath = getClass().getClassLoader().getResource("background.midi");
}
Run Code Online (Sandbox Code Playgroud)
然而Eclipse告诉我:
Cannot make a static reference to the non-static method getClass()
from the type Object
Run Code Online (Sandbox Code Playgroud)
修复此编译时错误的适当方法是什么?
我正在使用Java进行项目,有时我的所有图像都随机地从项目的bin文件夹中消失.它变得非常烦人,因为每次发生时我都必须再次放置所有东西.有人告诉我,我不应该把我的额外文件放在bin中,而是放在src中.但是如果我将它们放在src中,eclipse就不会读取我的图像,好像它们不存在一样.为什么会这样?谢谢.
我正在用像Bomberman(我的第一个游戏)编写一个基于Java平铺的Java游戏.
我使用2D数组来表示我跟踪墙壁,步行空间等的地图.到现在为止,我能够让玩家根据他按下的方向键(但不与背景/地图交互)平滑地交换精灵,它可以随机走动并走出屏幕).
当我想跟踪玩家在阵列中的位置时,我的问题出现了.从逻辑上讲,角色总是只属于一个瓷砖,但在图形上它可以在两个瓷砖之间.我该如何解决这个问题?
我已经尝试过了:
currentTileArrayX = x/tileWidth;
currentTileArrayY = y/tileHeight;
其中x和y是精灵的左上角坐标.但是一切都变得非常多,因为玩家的精灵与瓷砖的尺寸不同.
我有另一个选项可以解决上一个问题:当玩家按下一个方向键时,将该角色移动到下一个方块,就像动画一样.这不会让玩家停在两块瓷砖的中间......但是如果他用另一台按键打断它呢?如何在动画执行时停止用户的操作?我认为这是最简单的解决方案,但我不知道如何实现它.
我已经尝试在其他问题中找到解决方案,但我没有运气.我希望你能帮助我.
非常感谢.
我正在按照教程编写一个用Java 编写的炸弹人(这是我的第一个游戏).本教程建议使用以下代码检测冲突.
for (int p=0; p<entities.size(); p++) {
for (int s=p+1; s<entities.size(); s++) {
Entity me = (Entity) entities.get(p);
Entity him = (Entity) entities.get(s);
if (me.collidesWith(him)) {
me.collidedWith(him);
him.collidedWith(me);
}
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,实体是一个包含敌人和玩家的数组列表.因为我还想检测玩家与墙壁发生碰撞,我是否应该将每个墙壁或砖块放入实体arraylist中?如果是这样,这个算法效率不高吗?这些瓷砖不会与其他瓷砖碰撞,所以我想在不同的列表中管理游戏实体.你有什么建议?有没有更有效的算法呢?
注意:我已经阅读了与2D游戏中的碰撞有关的其他问题.非常感谢.
我试着这样做:
local
condition: BOOLEAN
condition := true
do
Run Code Online (Sandbox Code Playgroud)
这样的事情:
local
condition: BOOLEAN := true
do
Run Code Online (Sandbox Code Playgroud)
显然既不起作用,但我需要在声明中初始化变量,因为如果执行重试指令,我不希望变量重新初始化.我查看了Eiffel的官方文档和教程,但它们始终将操作体中的变量初始化.
我希望我的计时器在5秒的时间内只执行一次actionPerformed方法,但它在控制台"Hello"中写了很多次:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;
public class X{
public static void main(String args[]) {
ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
System.out.println( "Hello" );
}
};
Timer timer = new Timer( 5000, actionListener );
timer.start();
}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能达到我想要的效果?谢谢
我开始学习汇编程序,我在Unix工作.我想打开一个文件并在上面写上"Hello world".
section.data
textoutput db 'Hello world!', 10
lentext equ $ - textoutput
filetoopen db 'hi.txt'
section .text
global _start
_start:
mov eax, 5 ;open
mov ebx, filetoopen
mov ecx, 2 ;read and write mode
int 80h
mov eax, 4
mov ebx, filetoopen ;I'm not sure what do i have to put here, what is the "file descriptor"?
mov ecx, textoutput
mov edx, lentext
mov eax, 1
mov ebx, 0
int 80h ; finish without errors
Run Code Online (Sandbox Code Playgroud)
但是当我编译它时,它什么也没做.我究竟做错了什么?当我打开一个文件描述符值返回的文件?
我即将用Java编写Mario的副本.我正在考虑关于级别的2个表示/数据结构,但我不确定应该选择哪一个:
它的优点和缺点是什么?
我正在用Java制作游戏.游戏中的每个敌人都是一个线程,他们不断循环游戏的数据结构(我总是使用Vector类).
最近我得到了"ConcurrentModificationException",因为当一个Thread循环遍历Vector时,正在向Vector添加/删除元素.我知道有一些策略可以避免添加/删除问题(我实际上使用了一些来避免删除问题,但我仍然遇到"添加"问题).
我听说java支持一个避免ConcurrentModificationException的Vector/List.
你知道这个结构可能是什么吗?谢谢.
我必须用 C 语言做一个项目,我必须不断地为大数据结构分配内存,然后释放它。是否存在一个带有有助于跟踪内存使用情况的函数的库,以便我可以确定我是否正确地做事?(我是 C 新手)
例如,一个函数返回:A) 程序当前使用的内存总量,或 B) 剩余的内存总量,可以完成这项工作。我已经用谷歌搜索并搜索了其他答案。
谢谢!