平滑显示网格,而控制台上不会出现抖动

阿卜杜勒·贾巴尔(Abdul Jabbar)

我正在制作基于pacman控制台的游戏,其中有一个40x40的游戏板。董事会上有吃豆子和敌人在吃东西。pacman用0表示,敌人用#表示。每当位置发生变化时,都会调用显示功能,按照当前的逻辑,每秒都会清除整个控制台并重新打印板上的每个元素。但是,这样,每当显示整个板上时都会出现这些抖动。请告诉我一个更好的方式来实现吃豆人和敌人的平稳运动,理想情况下,我只应只更改吃豆人和敌人的位置,但我需要清除控制台才能在同一位置显示网格,否则它将保持向下滚动。显示功能的代码如下:

public static void display()
        {
            Console.Clear();
            for (int i = 0; i < 40; i++)
            {
                for (int j = 0; j < 40; j++)
                {
                    bool packFound = false;
                    bool enmFound = false;

                    foreach (Packman element in myVers.packmans)
                    {
                        if (element.x == i && element.y == j)
                        {
                            packFound = true;
                            break;
                        }
                    }
                    foreach (Packman element in myVers.enemys)
                    {
                        if (element.x == i && element.y == j)
                        {
                            enmFound = true;
                            break;
                        }
                    }

                    if (packFound == true)
                    {
                        Console.Write('0');
                        myVers.board[i, j] = ' ';
                    }
                    else if (enmFound == true)
                    {
                        myVers.board[i, j] = ' ';
                        Console.Write('#');
                    }
                    else
                    {
                        Console.Write(myVers.board[i, j]);
                    }
                }
                Console.Write('\n');
            }
            //Console.Write("\nFood Count " + myVers.foodCount + "\n");
        }
马尔科·朱万奇(MarkoJuvančič)

如果您只重绘真正改变的字符怎么办?也许使用Console.SetCursorPosition

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

锁定控制台输入而不会出现屏幕空白

来自分类Dev

显示$('a')的问题不是控制台上的函数

来自分类Dev

在控制台上显示秒表的时间

来自分类Dev

在 Gremlin 控制台上显示时间

来自分类Dev

R中的聚合不会返回控制台上显示的实际数据

来自分类Dev

我的Chrome浏览器不会在控制台上显示这些代码

来自分类Dev

Cookies不会出现在“ Chrome控制台资源”标签中

来自分类Dev

我的红色方块不会出现,因为:“未定义speedX和speedY”-控制台

来自分类Dev

使用功能时在控制台上出现白色区域?

来自分类Dev

Ansible 实例未出现在 AWS 控制台上

来自分类Dev

AWS Cognito:可以通过CognitoUserPool找到用户,但不会出现在AWS管理控制台中

来自分类Dev

在我的Rails DB上运行迁移,安静地添加列并随机删除表,而不会出现控制台错误

来自分类Dev

如何更改在控制台上显示的对象名称?

来自分类Dev

如何强制Eclipse在控制台上显示英语?

来自分类Dev

Firebase分析事件未显示在Firebase控制台上

来自分类Dev

Quarkus Hibernate验证异常未在控制台上显示

来自分类Dev

如何轻松获取指标并显示在Toit控制台上

来自分类Dev

如何在IDEA控制台上显示Play框架的“日志”

来自分类Dev

发送到日志并在控制台上显示

来自分类Dev

在Linux控制台上显示重音符号

来自分类Dev

如何在控制台上显示Redux注入的道具

来自分类Dev

没有输出,它在 Eclipse 控制台上显示 <terminated>

来自分类Dev

控制台上不显示 \b 字符的输出

来自分类Dev

使用C#从Unity中的REST Api检索数据而不会出现滞后或抖动

来自分类Dev

在控制台上打印阵列

来自分类Dev

在控制台上运行X

来自分类Dev

控制台上的陷阱退出

来自分类Dev

控制台上 liquibase 的输出

来自分类Dev

Gridsome插件-谷歌分析跟踪永远不会出现在GA平台上

Related 相关文章

  1. 1

    锁定控制台输入而不会出现屏幕空白

  2. 2

    显示$('a')的问题不是控制台上的函数

  3. 3

    在控制台上显示秒表的时间

  4. 4

    在 Gremlin 控制台上显示时间

  5. 5

    R中的聚合不会返回控制台上显示的实际数据

  6. 6

    我的Chrome浏览器不会在控制台上显示这些代码

  7. 7

    Cookies不会出现在“ Chrome控制台资源”标签中

  8. 8

    我的红色方块不会出现,因为:“未定义speedX和speedY”-控制台

  9. 9

    使用功能时在控制台上出现白色区域?

  10. 10

    Ansible 实例未出现在 AWS 控制台上

  11. 11

    AWS Cognito:可以通过CognitoUserPool找到用户,但不会出现在AWS管理控制台中

  12. 12

    在我的Rails DB上运行迁移,安静地添加列并随机删除表,而不会出现控制台错误

  13. 13

    如何更改在控制台上显示的对象名称?

  14. 14

    如何强制Eclipse在控制台上显示英语?

  15. 15

    Firebase分析事件未显示在Firebase控制台上

  16. 16

    Quarkus Hibernate验证异常未在控制台上显示

  17. 17

    如何轻松获取指标并显示在Toit控制台上

  18. 18

    如何在IDEA控制台上显示Play框架的“日志”

  19. 19

    发送到日志并在控制台上显示

  20. 20

    在Linux控制台上显示重音符号

  21. 21

    如何在控制台上显示Redux注入的道具

  22. 22

    没有输出,它在 Eclipse 控制台上显示 <terminated>

  23. 23

    控制台上不显示 \b 字符的输出

  24. 24

    使用C#从Unity中的REST Api检索数据而不会出现滞后或抖动

  25. 25

    在控制台上打印阵列

  26. 26

    在控制台上运行X

  27. 27

    控制台上的陷阱退出

  28. 28

    控制台上 liquibase 的输出

  29. 29

    Gridsome插件-谷歌分析跟踪永远不会出现在GA平台上

热门标签

归档