问题标签 [greenfoot]

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 投票
2 回答
828 浏览

java - Getter 和 Setter 方法

我在 Greenfoot 做一个 Java 作业,我被一个关于 getter 和 setter 方法的问题困住了,我找不到答案。

我被要求为三个属性(名称、颜色、年龄)编写一个 getter 和 setter 方法,然后使用这些方法:

(a) 确保年龄不能小于 0,年龄不能大于 100

(b) 确保唯一有效的颜色是黑色、白色、棕色和灰色

关于如何解决这个问题的任何想法或建议?

提前致谢

0 投票
1 回答
69 浏览

java - Greenfoot - isKeyDown() 似乎保持其价值

这是一个游戏的冲刺功能,如果玩家剩余的弹力大于 0% 则可以冲刺,如果为 0% 则玩家不能冲刺。如果玩家没有冲刺,那么冲刺百分比将开始重新生成。

问题:当玩家达到 0% 冲刺时,玩家仍然可以冲刺。

0 投票
1 回答
495 浏览

java - Java:获取字符的坐标,从文件中读出

晚上好,

几个小时以来,我一直在寻找解决这个问题的方法,但没有成功,所以我想我会在这里问一个问题!我有一个关于从文本文件中读取字符/行的问题。我已经能够实现一个函数,它从文件中读取行。我正在使用 Greenfoot (Java) 创建一个使用 32x32 块的游戏。我想通过获取每个“块”/“字符”的 x/y 坐标并将其放置在世界中来从该文本文件中生成一个世界。使用数组会更容易吗?我当前的代码看起来像这样,但我不知道如何获取坐标。它可以通过使用它返回的哈希码来工作吗?

我的文件看起来有点像这样:

我看到我已经为 x 和 y 分配了值“0”,所以它当然不能像这样工作,但是我怎样才能得到那个位置呢?现在该函数能够读取行,在 (0, 0) 处生成块,并在控制台中显示带有哈希码的块。

PS对不起,如果我在某些事情上使用了错误的术语,我对编程还比较陌生!

谢谢你,朱利安

0 投票
1 回答
130 浏览

java - 我的 Greenfoot 程序作为 greenfoot 文件工作,但不是 jar 文件

我正在为学校制作一个充满词汇游戏的小街机。当我在 greenfoot 窗口中运行程序时,它运行良好。但是当我制作它的 jar 文件时,它会在使用 Greenfoot.ask() 提示时停止。这是代码:

如果您需要整个项目,请告诉我,我会分享。

0 投票
1 回答
219 浏览

java - 如何使用 GreenFoot API 使我的字体加粗?

我编写了这个字体构造函数来制作我想要的 BOLD 字体,但是每当我尝试编译时,它都会告诉我错误Cannot find symbol - variable BOLD

这些是我要导入的类:

如果有人知道可能的快速修复,将不胜感激。

0 投票
1 回答
823 浏览

java - 强制 Java 使用 double 而不是 int

我有以下代码:

最初,变量 sealY 是一个整数,如 sealX。然而,在下面的两个条件中,1 最终变得太小,而 2 太大。

该程序之前编译并运行良好。但是,一旦我将 sealY 更改为 double 并将在键盘输入上执行的操作更改为带小数(双精度)的数字,Java 就开始抛出错误 - 不兼容的类型:从 double 到 int 的可能有损转换

我以前曾见过这种情况,有时我不必要地使用双精度,而整数就足够了。但是,这里不是这种情况。一个整数是不够的。我发现这不是一个致命错误,更像是一个提示,但我的程序因此无法编译。

就个人而言,我认为编译器可以尝试提供帮助,但除此之外,无论我使用 double 还是 int,它都无关紧要。如果我坚持使用双精度,那么应该有一种方法可以覆盖编译器,特别是因为我不能使用整数来完成我在这里尝试做的事情。

我不认为铸造会解决这个问题。有没有办法手动覆盖编译器并声明我知道我在做什么并且我希望 sealY 是双精度的?

编辑: 在此处输入图像描述

还有一些文档:

setLocation public void setLocation(int x, int y) 为这个演员分配一个新的位置。这会将演员移动到指定位置。该位置被指定为世界中一个单元格的坐标。如果此方法被覆盖,重要的是从覆盖方法中将此方法称为“super.setLocation(x,y)”,以避免无限递归。参数: x - x 轴上的位置索引 y - y 轴上的位置索引 另见:move(int)

0 投票
1 回答
46 浏览

java - 为什么它在我的速度控制中增加了 1 以上?

这是来自 Greenfoot 的代码,因为我目前正在尝试学习编码。我不明白为什么当我执行程序并控制速度时,他将值改变了不止一个。我想这将是一个简单的问题。是否可以将速度的增加和减少放在一个带有两个字母的按钮上,如 >< 键?我没有在我的情况下工作。

0 投票
1 回答
115 浏览

java - Greenfoot (Java) 添加两个对象

我正在为 Greenfoot 的学校编写一个插件,我可以使用该插件对在田野上移动的漫游车进行编程......

我想添加两个带有“addObject”的对象。

这是不可能的。有没有办法完成这件事?我希望你明白我的意思:)

0 投票
1 回答
54 浏览

java - 我不确定为什么这会显示错误

我不确定为什么会在 greenfoot 上显示错误。它说这是不兼容的类型。如何修复它,如此处所示

0 投票
1 回答
26 浏览

java - 迭代同一类的对象内的相同方法

我正在使用 greenfoot 并试图迭代一些东西,这样它就更干净了。该cardsPile列表是弃牌堆中的当前牌。我正在尝试更加面向对象,并且正在努力解决如何将多个添加到 ArrayList 中。我也在尝试调用 Card 对象内部的方法。我正在尝试使以下过程可迭代。

由于 card1 等在上面定义为:

我还尝试通过按对象添加它们来将它们添加到 cardPile ArrayList 中,如下所示

任何关于如何迭代 Card 对象的调用方法的想法都值得赞赏。谢谢!