2d游戏开发有哪些软件?(刚毕业自学)

高中刚毕业,自学C++到数组了,想提前了解了解有哪些开发软件,想做一款2d游戏,像素的那种。
如果有绘画软件的话也可以推荐一下。
非常感谢

2d游戏可以用 flash、director 之类的来制作,或者用 pygame(python语言),或者用 easyx(c语言)

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7743926
  • 这篇博客也不错, 你可以看下C++运算符重载(二)简单易懂的智能指针教程,指针类运算符重载。->运算符重载,*运算符重载,【】运算符重载。最后附带完整实现代码。
  • 除此之外, 这篇博客: 学习C++项目—— 搭建多线程网络服务框架,性能测试(并发性能测试,业务性能测试,客户端响应时间测试,网络带宽测试)中的 2.4 服务端业务性能测试 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

      服务端最大业务处理能力,即每秒可以处理的业务请求数量。注重客户端的数量不要太多。重视 CPU 和内存使用率的变化。
      这里对客户端程序改为,

    for(int ii = 0; ii < 2000; ii++){
       if(biz000() == false) break;
       usleep(100000);
     }
    

      把 sh 文件中客户端程序运行脚本改为,
    在这里插入图片描述
      运行结果如下,
    在这里插入图片描述
      可以看出 CPU 消耗和内存消耗,及其进程的情况。然后为了测试每秒接受信号情况,对接收进行抓包,使用 linux 语句为,

    grep "2021-10-30 22:11:19 接收" /tmp/ExitAndFreeServer.log|wc
    

      这是在运行过一段时间以后的了,有些客户端程序运行结束了,少了一些,所以运行结果如下,
    在这里插入图片描述
      这就是从日志里面抓取的数据接收情况,分析上面运行结果就能够知道,在当下 19 s 接收的情况,相当于 1s 有 60 条记录。可以看出,这样客户端的压力还不够,继续加压,把测试客户端程序改为,

    // 用 killall client 杀死所有相关进程
    for(int ii = 0; ii < 2000; ii++){
       if(biz000() == false) break;
       usleep(10000);
     }
    

      再运行 test.sh 脚本,在运行两次以后,观察到结果如下,
    在这里插入图片描述
      能够看到,这样测试时候,CPU 资源已经被占用的还剩 16% 多了,现在压力已经相当大了,也可以查看到相应的进程数和内存情况。在过一会后又恢复到了正常情况。
      为了能够看出处理业务情况,查看服务端数据报文,然后看 1 s 中报文情况,使用语句

    grep "2021-10-30 22:41:25 接收" /tmp/ExitAndFreeServer.log|wc
    grep "2021-10-30 22:41:21 接收" /tmp/ExitAndFreeServer.log|wc
    

      使用语句查看服务端报文情况结果如下
    在这里插入图片描述  可以看出,在 1s 中接收到 18107 报文,然后 CPU 还剩资源 10% 多,因此知道服务端压力差不多是 18107 。

  • 您还可以看一下 林男老师的小学生c++趣味编程入门视频教程 少儿C十十信息学奥赛竞赛网课课程中的 变量、表达式与赋值语句——教室面积小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    推荐使用Unity和Adobe Photoshop来开发像素的2D游戏和绘画软件。

    Unity是一款非常流行的跨平台游戏引擎,它支持2D和3D游戏开发,并且自带强大的物理引擎和图形引擎。在Unity中使用C#或JavaScript编写游戏逻辑,另外,Unity还内置了许多工具和插件,例如动画制作和粒子系统等,可以帮助你快速开发高质量的游戏。

    Adobe Photoshop则是一款专业的图形处理软件,可以用于绘制角色、地图、界面等素材,并且支持像素级的绘制和编辑,可以满足像素游戏开发的需求。此外,Photoshop还集成了精细的色彩调整工具和图层管理工具,可以让你轻松处理各种复杂的图形素材。

    如果你已经掌握了C++和数组,可以考虑使用C++配合OpenGL来开发2D游戏。OpenGL是一款跨平台的图形库,可以帮助你在不同平台上实现图形渲染,同时使用C++开发可以让你更好地掌握游戏开发的底层实现。

    代码示例:

    #include <GL/glut.h>
    void display(void)
    {
        glClear(GL_COLOR_BUFFER_BIT);
        glBegin(GL_POLYGON);  //绘制正方形
        glColor3f(1.0, 0.0, 0.0);
        glVertex2f(-0.5, -0.5);
        glVertex2f(-0.5, 0.5);
        glVertex2f(0.5, 0.5);
        glVertex2f(0.5, -0.5);
        glEnd();
        glFlush();
    }
    int main(int argc, char ** argv)
    {
        glutInit(&argc, argv);
        glutCreateWindow("OpenGL Setup Test");
        glutDisplayFunc(display);
        glutMainLoop();
        return 0;
    }
    

    这段代码使用OpenGL绘制了一个红色的正方形,并且可以在不同的平台上运行。使用OpenGL开发2D游戏需要一定的图形学基础和编程经验,如果你有需要,可以参考OpenGL的相关教程和书籍来学习。

    对于读取大容量数据的问题,可以使用C++标准库中的fstream和iostream来实现,可以通过压缩数据或者只读取指定的列来提高读取效率。对于忽略前几行的问题,可以先使用seekg方法将文件指针定位到需要读取的行数上,并使用getline方法读取每一行数据。代码示例:

    #include <fstream>
    #include <sstream>
    #include <vector>
    
    int main() {
        std::ifstream file("data.txt");
        if (!file.is_open()) {
            std::cout << "Unable to open file!" << std::endl;
            return 1;
        }
    
        std::string line;
        int line_count = 0;
        while (std::getline(file, line)) {
            ++line_count;
            if (line_count <= 2) {  //忽略前两行
                continue;
            }
    
            std::stringstream ss(line);
            double data1, data2, data3;
            ss >> data1 >> data2 >> data3;  //只读取前三列数据
            //处理读取到的数据
        }
    
        file.close();
        return 0;
    }
    

    这段代码实现了读取文件中的数据,并且可以忽略前两行和只读取前三列。同时,使用stringstream可以方便地进行数据类型的转换。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^