在java中有没有办法创建一个方法,期待两种不同的变量?我知道,由于编译器不知道从哪里开始或结束,因此使用相同的对象类型是不可能的.但为什么它也不可能与不同的对象类型?
例如:
public void doSomething(String... s, int... i){
//...
//...
}
Run Code Online (Sandbox Code Playgroud)
有没有办法创建这样的方法?谢谢!
如果我想从arraylist中删除一个集合,最好使用什么?我认为ArrayList中的removeAll方法是为这个任务编写的,但是在我写的一个测试中,只是迭代遍历对象并删除它们个人的速度要快几秒.
你为此目的使用了什么?
编辑:
我在grepcode上找到的removeAll代码调用batchRemove(c,false):
private boolean更多... batchRemove(Collection c,boolean complement){
700 final Object[] elementData = this.elementData;
701 int r = 0, w = 0;
702 boolean modified = false;
703 try {
704 for (; r < size; r++)
705 if (c.contains(elementData[r]) == complement)
706 elementData[w++] = elementData[r];
707 } finally {
708 // Preserve behavioral compatibility with AbstractCollection,
709 // even if c.contains() throws.
710 if (r != size) {
711 System.arraycopy(elementData, r,
712 elementData, w,
713 size - r); …Run Code Online (Sandbox Code Playgroud) 我在OpenGL中实现了一个高度图.现在它只是一个正弦/余弦弯曲的地形.此刻,我在白色"冰"和深色"石头"纹理之间进行插值.这样做是这样的:
color = mix(texture2D(ice_layer_tex, texcoord), texture2D(stone_layer_tex, texcoord), (vertex.y + amplitude) / (amplitude * 2))
Run Code Online (Sandbox Code Playgroud)
结果:


它工作正常,但如果我想添加更多纹理(例如草纹理),插值顺序为"冰,石头,草",我该怎么办?我想,有没有这样的功能mix(sampler2D[], percentages[])?我怎么能按照这个逻辑写一个GLSL方法?
我开始用java编写游戏.我有Enemys和一个玩家,一个基本的2D游戏,这是第一次获得经验.
现在我想让Enemys走一条路,我可以把它画进一个"关卡编辑器".我有一个JPanel,一个mouseMoveListener,然后单击Path2D开始将mouseMove点保存到Path2D.Double对象.
之后,我实现了以下方法来使enemys遵循这条路径:
public void forward(){
if(!pathIterator.isDone()){
pathIterator.currentSegment(current);
x = current[0];
y = current[1];
pathIterator.next();
}
else {
dead = true;
}
}
Run Code Online (Sandbox Code Playgroud)
我认为它清楚现在发生了什么:敌人跟随,但速度是我移动鼠标.因此,如果我快速移动鼠标,敌人只会......从一个点"跳跃"到另一个点.慢下来,它"偷偷摸摸"了这一点.(因为我不是机器人,我不能以相同的速度移动鼠标^^)
谈论机器人:是的,我可以让一个awt.Robot移动我的鼠标.但这也不可能,因为我必须绘制复杂的路径,这些路径没有任何可见的数学背后.
所以,我想让这个Enemys以相同的速度在这条路上前进.我的问题:我不知道在哪里实施"修复".我有2个想法:
也许我可以在路径创建上工作:不仅可以将点添加到Path2D,也许我可以计算我移动到快速的点之间的点,或者删除彼此靠近的点.但是:首先,我不知道如何计算这个,(有没有数学逻辑来实现这个?)第二,当我这样做时,我可能无法改变敌人游戏的速度,那会很糟糕的
我的第二个想法是计算(跳过点之外的点)之间的点,这应该发生在每一帧,相对于实际速度.但是在这里我没有足够的数学经验.
那么,这种方式是否可能,如果是的话,有人知道如何计算这个吗?而且,如果没有,我有什么其他可能性来实现这一目标?
谢谢你,对不起英语不好意思!
我有一个普遍的问题:是否可以创建一个类,它是另一个类的原始副本,但包含其他变量?
例如,我知道这可以通过JPanel实现:
public class CustomPanel extends JPanel{
int exampleVariable = 0;
}
Run Code Online (Sandbox Code Playgroud)
这是可能的,没有任何问题.但我也可以和其他课程一起做吗?在我的情况下,我想用Image- 但这似乎不可能,当我添加extends Image我必须实现所需的方法,这意味着我必须编写一个新的Image类.有可能以另一种方式吗?
编辑:我的目的是添加一个方法来设置图像名称...
java ×5
performance ×2
arraylist ×1
arrays ×1
collections ×1
extends ×1
game-physics ×1
heightmap ×1
lwjgl ×1
opengl ×1
path-2d ×1
removeall ×1
superclass ×1