问题标签 [jsfml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
49 浏览

java - jsfml, poolEvents() 方法

我最近使用该JSFML库在 java 中启动了项目。我的代码片段如下所示:

我的问题是,当我第一次使用时KeyboardListenerMouseListener它不起作用,反之亦然。有人可以解释这种行为吗?我搜索了一些信息,但没有足够的解释。

0 投票
1 回答
56 浏览

java - 在 sfml 中打印块

我正在用java做一个程序,当我单击按钮时我想在新窗口中传递,但是当我运行程序时,如果我不按下按钮,它也会自动打开2个视图。我能做什么解决这个问题?

主要的:

视图1:

视图 2:

actionListener 类:

0 投票
1 回答
1601 浏览

c++ - Linux SFML - 无法打开共享对象文件

使用 Linux Mint 18 Cinnamon 64 位

我在尝试让 SFML 工作时遇到问题。我正在尝试使用 g++ 从命令行编译。

我的文件是/home/joe/Desktop/SFML/test/main.cpp

我的 SFML 文件夹位于/usr/lib/SFML-2.4.1

如果我运行g++ -c main.cpp -I/usr/lib/SFML-2.4.1/include它编译得很好。然后我运行g++ main.o -o sfml-app -L/usr/lib/SFML-2.4.1/lib -lsfml-graphics -lsfml-system -lsfml-window -lsfml-audio这之前有问题,但是在使用 -L 命令之后它现在可以正常工作了。

但是,当我跑步时,./sfml-app我得到了错误./sfml-app: error while loading shared libraries: libsfml-graphics.so.2.4: cannot open shared object file: No such file or directory

现在/usr/lib/SFML-2.4.1/lib目录 libsfml-graphics.so.2.4 是一个符号链接,带有以下链(该目录中的所有文件。

libsfml-graphics.so -> libsfml-graphics.so.2.4 -> libsfml-graphics.so.2.4.1

那么谁能向我解释为什么找不到目标文件?谢谢

0 投票
2 回答
529 浏览

java - 如何解耦事件驱动模块?

可能需要一点背景知识,但如果您有信心,请跳至问题。希望总结能说明问题。

概括

我有一个InputDispatcher将事件(鼠标、键盘等)分派给一个Game对象。

我想InputDispatcher独立扩展GameInputDispatcher应该能够支持更多的事件类型,但Game不应该被迫使用所有这些。

背景

本项目使用 JSFML。

输入事件通过Window类通过pollEvents() : List<Event>. 您必须自己进行调度。

我创建了一个GameInputDispatcher类来将事件处理与处理窗口框架等事情分离。

此示例的循环已被简化

问题

在 ( ) 正上方的代码中,我可以通过在默认情况下创建和调用GameInputDispatcher来分派事件。GameGame#onEvent(Event)game.onEvent(event)

但这将强制Game编写用于排序和调度鼠标和键盘事件的实现:

问题

如果我想从InputDispacherinto提供事件Game,我怎么能这样做,同时避免违反接口隔离原则?(通过声明所有监听方法:onKeyPressed,onMouseMoved , etc.. inside ofGame`,即使它们可能不会被使用)。

Game应该能够选择它想要使用的输入形式。支持的输入类型(如鼠标、键、操纵杆...)应该通过 缩放InputDispatcher,但Game不应强制支持所有这些输入。

我的尝试

我建立:

Game将扩展此接口,允许InputDispatcher依赖InputListener并调用该registerUsing方法:

Game子类型现在可以实现任何支持的侦听器,然后注册自己:

尝试问题

尽管这允许Game子类型只实现它们想要的行为,但它强制任何Game声明registerUsing,即使它们没有实现任何侦听器。

这可以通过创建registerUsing一个default方法来解决,让所有侦听器扩展InputListener以重新声明该方法:

但这对于我选择创建的每个听众来说都是非常乏味的,违反了 DRY。

0 投票
1 回答
64 浏览

game-physics - 不能在 SFML 中一起移动和旋转两个 CirclarShape 对象

我已经定义了一个名为 car 的 CircularShape 具有 3 个点(显示为三角形)和 Circular shape 场,它是圆形的,我希望场保持在汽车的顶端并随着汽车的顶端移动,但问题是当我运行程序,它们不会一起移动,是否存在一些模棱两可的行为我认为两种形状的位置和原点都有问题,请纠正我,汽车的原点不能改变,但为了将来的一些目的。也有人可以建议我如何确保我的车+场不会移出窗口边界这是代码

http://codepad.org/CJ0JR6Qc

当然它不会在 codepad.org 中运行我发布链接只是为了方便目的

0 投票
1 回答
77 浏览

java - 使用 java.nio.file.Paths & jsfml loadFromFile 时发生死锁

我一直在尝试使用 Paths.get() 和 loadFromFile() 的组合使用 java.nio.file.Paths 导入从文件(.ttf 文件)加载字体时遇到的问题,但似乎无法找到解决方案。

这是问题代码:

程序到达第一个打印语句,但从未到达第二个。

我做了一个线程转储,发现代码本身似乎出现了死锁:

我不确定如何从这里开始。如果不加载这些字体,我的程序将无法按我想要的方式运行。我尝试加载其他类型的字体,但问题仍然存在。

奇怪的是,过去加载其他文件时并没有出现问题,例如以下代码:

它只有在我开始尝试加载这些字体时才开始。

理想情况下,我想找到一个仍然允许我使用这个包的解决方案,因为否则我有相当多的代码要重写。不是最大的交易,但建议只是使用另一个包应该是最后的手段。

任何想法表示赞赏。

编辑:有趣的是,这个问题不会发生在 Windows 机器上,只有我的 ubuntu-linux 一个。我在 Windows 上的其他团队没有任何问题。显然,一种解决方案是转而使用 Windows,但谁愿意这样做:p

编辑#2:事实证明,即使从 JSFML 中的 Texture 类加载,我现在也遇到了这个错误。当我最近更新我的 ubuntu 时,我感觉我更新了我的 JVM,这突然引入了问题。我不能肯定地说,因为我不记得最近更新了,但似乎从 2021 年 2 月 21 日开始,使用 JSFML 从文件加载会导致死锁:/

0 投票
0 回答
108 浏览

java - 如果我的角色在地面或平台上,如何让我的角色跳跃相同的高度?(JSFML)

这是我的代码:

}

正如您在图像中看到的(如果我可以发布视频,idk),当角色从地面跳跃时,它比从平台跳跃时更高。我的方法是恒定的跳跃高度,但我被卡住了:/

从地面跳 https://imgur.com/unzBtys

从平台跳转 https://imgur.com/6L4UaDK

比较 https://imgur.com/tBD3jIW

0 投票
1 回答
33 浏览

java - 两个物体都在移动,而不是在 2d 游戏中只有一个

我正在制作 java 2d 游戏库,使用 JSFML 作为基础。

最近发现了一个大问题。我在游戏中的所有对象都在扩展抽象类GameObject,其中包含对象的位置、速度、大小和名称等内容。

所有加载的对象都存储在Game处理游戏的类实例中。

现在的问题是:每次玩家移动时,随之而来的一切都会移动。

例如,如果我用 w、a、s、d 键移动玩家,它不会只移动玩家,但地板也会移动。

这是从用户的角度来看的代码:

以下是球员和场地课程:

这是游戏类:

如果您需要更多信息,整个代码都在 GitHub 上:https ://github.com/FilipeeX/GamerLibrary

这是我已经尝试过的:

  • 我尝试检查渲染一段代码,但没有任何问题。
  • 我还删除了半个库只是为了尽可能简化事情,但即使它很简单,一切都应该正常工作,仍然......什么都没有。

在这一点上,我完全被卡住了,我不知道该怎么办。

0 投票
0 回答
9 浏览

java - 为什么我的图像没有加载到已编译的 .jar 文件中?

说明: 我目前正在使用 IntelliJ IDEA 社区版在 java 中编写游戏库。我使用jSFML作为多媒体库。我尝试使用 jsfml 的 wiki 页面渲染一个精灵,一切似乎都运行良好,所以我继续前进。

问题: 后来我尝试用一​​个测试游戏编译库,发现无法加载玩家的精灵。当它从编辑器运行时,一切都很好,但如果我在编辑器之外运行它,它就不起作用。它给了我这个错误,我认为这意味着该文件不存在,我不知道:

这是加载纹理并将其渲染到窗口的代码:

以及方法本身:

我已经:

  • 搜索了很多类似的问题,
  • 从他们那里尝试了所有可能的解决方案,包括将目录添加到工件,但没有奏效。