小编Jon*_*han的帖子

用于游戏编程的C与Java

我知道C++通常被认为比游戏更好(至少是大型游戏).为什么是这样?

是什么让Java在这个领域保持竞争力?反对使用Java进行游戏编程的原因最多,哪些是神话?

编辑:我对C/C++有点不熟悉,并没有想到在第1行区分两者.<

c java

23
推荐指数
4
解决办法
2万
查看次数

我是否需要删除析构函数中的基本数据类型?C++

如果我有一个看起来像这样的类:

class SomeClass {
    public:
        SomeClass(int size) {
                     arr = new int[size];
                     someInt = size / 10;
                    };
        ~SomeClass() {
                      delete [] arr;
                      //do I need to somehow delete the int value 'someInt'?
                     };
    private:
        int *arr; //pointer to dynamically allocated array
        int someInt;
}
Run Code Online (Sandbox Code Playgroud)

究竟应该包含在析构函数中以避免内存泄漏?

我知道我需要删除数组,因为它是动态分配的,但我是否需要对int值或其他基本数据类型做任何事情?

谢谢,乔纳森

c++ memory int destructor

6
推荐指数
2
解决办法
6581
查看次数

Eclipse - 导入您自己的库

好的,希望这很快捷.

我有两个独立的java项目,'Library'和'Project',我在'Project'中有一个类想要实现'Library'中的方法.我正在寻找某种"导入"调用,以便在我的"项目"类的顶部进行调用,以便在该项目中访问"库"中的方法.

我该怎么办?

另一方面,这个'Library'项目只存在,因为我想使用我自己的一些类来补充通常的java库(java.util,java.io等等).有没有办法将我的java项目添加到我的java库中?(即'import java.Library.className;')

谢谢,

乔纳森

java eclipse

5
推荐指数
1
解决办法
1万
查看次数

createImage(int width, int height) 的问题

我有以下代码,作为游戏的一部分每 10 毫秒运行一次:

private void gameRender()
{
    if(dbImage == null)
    {
        //createImage() returns null if GraphicsEnvironment.isHeadless()
        //returns true. (java.awt.GraphicsEnvironment)
        dbImage = createImage(PWIDTH, PHEIGHT);
        if(dbImage == null)
        {
            System.out.println("dbImage is null"); //Error recieved
            return;
        }
        else
        dbg = dbImage.getGraphics();
    }

    //clear the background
    dbg.setColor(Color.white);
    dbg.fillRect(0, 0, PWIDTH, PHEIGHT);

    //draw game elements...

    if(gameOver)
    {
        gameOverMessage(dbg);
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是它输入 if 语句来检查图像是否为空,即使在我尝试定义图像之后也是如此。我环顾四周,如果 GraphicsEnvironment.isHeadless() 返回 true,createImage() 似乎将返回 null。

我不太明白 isHeadless() 方法的用途是什么,但我认为它可能与编译器或 IDE 有关,所以我尝试了两个,两者都得到相同的错误(Eclipse 和 BlueJ)。任何人都知道错误的根源是什么,以及我如何解决它?

提前致谢

乔纳森

...................................................... ......................

编辑:我正在使用 java.awt.Component.createImage(int width, int height)。此方法的目的是确保创建和编辑包含游戏玩家视图的图像,稍后将通过 JPanel …

java image nullpointerexception image.createimage

3
推荐指数
1
解决办法
1万
查看次数

java.math.BigInteger的问题

我在方法的头部有以下代码:

BigInteger foo = BigInteger.valueOf(0);
BigInteger triNum = BigInteger.valueOf(0);

//set min value to 1*2*3*4*5*...*199*200.
BigInteger min = BigInteger.ONE;
BigInteger temp = BigInteger.ZERO;
for(int i=1; i<=200; i++)
{
    temp = BigInteger.valueOf(i);
    min = min.multiply(temp);
}
System.out.println(min);

while(triNum.compareTo(min) <= 0)
{
    foo.add(BigInteger.ONE);
    triNum = triNum.add(foo);
    System.out.println("triNum: "+triNum);
}
Run Code Online (Sandbox Code Playgroud)

这应该将min加载到一个值(1*2*3*...*199*200),然后将triNum设置为第一个*三角形数**,其值大于min.

问题是,当我运行该方法时,我得到的是一个终端窗口,其中"triNum:0"列表在屏幕上滚动...我的代码中没有看到任何内容(尽管我完全可以做到有些错误,我对math.BigInteger有些不熟悉,这似乎又指向了BigInteger类.有人看到我的代码中有错误吗?

.................................................. .................................................. ......................

*三角形数字是一个可以达到的数字:1 + 2 + 3 + 4 + 5 + 6 + 7 + ......

java biginteger

1
推荐指数
1
解决办法
781
查看次数

客户端如何找到服务器的端口号?

我目前正在学习java中的基本网络.我一直在玩两台计算机之间的服务器和客户端关系.但是,我无法弄清楚分布式程序(比如视频游戏)如何能够找到"主机"计算机,还能找到服务器运行的端口号,以便在两台计算机之间创建一个Socket.我真正看到创建套接字的唯一方法是使用已知的IP地址,并使用已知的端口号.

如何在LAN网络中搜索另一台搜索客户端的计算机(主机)?

如何在没有"ping"响应的所有可用端口的情况下确定服务器所在的端口(据我所知,这是一种糟糕的形式......关于'服务器攻击'......)?

在诸如视频游戏的情况下,在同一网络上可以存在任何数量的计算机,并且它们中的任何数量可能试图托管或以其他方式运行该应用程序.任何其他重要信息,或者可能参考比我正在使用的更详细的教程,关于在客户端上如此非常少的信息建立连接将是值得赞赏的.

非常感谢,

乔纳森

java client-server

0
推荐指数
1
解决办法
1982
查看次数