重新启动游戏并重新实例化对象

2023-12-14

介绍

我正在用 C++ 创建一个小游戏,并想创建一个重新启动游戏的函数。

首先我创建对象player。然后我有一个 if 语句来确定何时按下某个键来调用New()方法。

My goal

在该方法中,我想重新实例化 Player 类的对象,因此所有变量都将被重置。

My code:

Player player;

//New game method
Game::New()
{
    player = new Player();
}

//Game loop
Game::Loop()
{
    if(keyispressed(key))
    {
        Game.New();
    }
}

有什么建议么?


您混淆了指针变量和非指针变量。new Player()返回动态分配的地址Player目的。不能将此地址分配给非指针变量player;你需要声明player作为指针:

Player* player = new Player();

您还需要记住释放先前用匹配的内存分配的内存delete:

// player starts out pointing to nothing
Player* player = 0;

//New game method
Game::New()
{
    // If player already points to something, release that memory
    if (player)
        delete player;

    player = new Player();
}

现在player是一个指针,您必须更新您编写的使用播放器的任何其他代码,才能使用-> 成员访问操作符。例如,player.name()会变成player->name()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

重新启动游戏并重新实例化对象 的相关文章

随机推荐

  • 如何暂停和恢复 javascript 计时器 [重复]

    这个问题在这里已经有答案了 我有一个工作正常的计时器 但我需要能够暂停并在那之后恢复它 如果有人能帮助我 我将不胜感激
  • getUserMedia 在 Android Chrome 上冻结在第一帧

    我在桌面浏览器上有一个支持 getUserMedia Api 的工作代码 我可以在 div 中正确地看到网络摄像头的视频预览videoPreview 然而 当在 Android 设备上运行时 当我接受在 Chrome 浏览器中共享照片时 相
  • 在 JavaScript 中使用 JSON 将数组存储在 localStorage 中

    我已经参考了这个问题并为我工作 so q1 现在的问题是我使用 JSON stringify 和 JSON parse 将数组存储在 localStorage 中 但是 当我再次运行代码并尝试在 localStorage 上使用 JSON
  • JSF 2:未为错误页面呈现 Facelets 组合(模板)

    我在 Java EE 6 应用程序服务器 GlassFish v3 中使用 JSF 2 0 和 Facelets 我在 web xml 中配置了一个异常错误页面
  • Javascript Fullcalendar - 复制事件

    我在我的项目中使用 Fullcalendar http arshaw com fullcalendar 它通过 json 源获取事件 我想为用户提供将日历上的一个事件复制到另一天的选项 并且我想使用拖动来实现这一点 嗯 这是客户的要求 但拖
  • gmaps4rails 单标记自动缩放

    我正在尝试遵循答案here当地图上显示单个标记时缩小一点 默认情况下 我已经尝试了下面的代码 并生成了工作地图 但是更改 setZoom 没有效果 另外 我从 firebug 收到以下错误 下面的代码
  • 如何将 void* 转换为函数指针?

    我在 FreeRTOS 中使用 xTaskCreate 其第四个参数 void const 是传递给新线程调用的函数的参数 void connect to foo void const task params void on connect
  • 我如何知道 `git gc --auto` 是否做了什么?

    我在跑git gc auto作为自动保存脚本的一部分 我想进行进一步的清理 如果git gc auto已经做了一些事情 但我想避免麻烦 如果git gc auto感觉不需要做某事 有没有办法检查返回值git gc auto 或者事先检查是否
  • 如何将wav文件中的数据读取到数组

    我需要将 wav 文件的所有样本放入一个数组 或者两个 如果您需要这样做以保持立体声 以便我可以对它们进行一些修改 我想知道这是否容易完成 最好没有外部库 我没有阅读声音文件的经验 所以我对这个主题了解不多 这段代码应该可以解决问题 它将波
  • 未通过 Smart Lock API 在应用程序中检索到关联网站的密码

    I ve 关联我的 https 网站和应用程序以共享存储的凭据并收到了该协会已上线的确认信息 但是当我致电CredentialsApi request 方法在我的应用程序中 我无法从我的网站检索使用 Chrome 密码管理器保存的任何凭据
  • 处理我的 Android 应用程序中的文本视图链接单击

    我目前正在 TextView 中渲染 HTML 输入 如下所示 tv setText Html fromHtml a href test test a 显示的 HTML 是通过外部资源提供给我的 因此我无法随意更改内容 但我当然可以对 HT
  • 片段中的函数使模拟器崩溃

    当我将函数放入其中时发生错误onCreateView in menu1 Fragment java 提前抱歉 因为我也会放置我的日志 所以这可能会使我的帖子有点大 所以我会告诉你布局 我是新来的 很抱歉有很多问题 如果我不添加该函数 代码就
  • 记录有共同的基类吗?

    在 NET 类型系统中 所有引用类型都派生自System Object 所有值类型来自System ValueType我认为 是否也有一个共同的基类 record类型源自 如果没有 为什么不呢 是否还有一个所有记录类型派生自的公共基类 不
  • 投射给孩子

    我实际上想做的是投射一个构造的moneypunct to the punct facet in 这个问题无需编写复制构造函数 如下所示这个答案 但为了写一个最小 完整 可验证的示例假设我有这两个课程 class Parent public
  • Android Admob 空间不足,无法展示广告

    使用中提供的代码AdMob 网站 这是我的 xml
  • php 字符串像 python 的“””“””一样转义?

    你好 我想知道是否有一种简单的方法来转义 php 中的字符串 在Python中我使用 并且它们之间的所有内容都被转义 所以当使用特殊字符时它会被忽略 我有一些文本需要回显 手动转义所有内容都需要很长时间 php有内置类似的功能吗 thank
  • 尝试访问 Android 中的 SQLite 数据库时,如何修复 SQLiteOpenHelper.getDatabaseLocked 错误?

    我正在尝试从 Sqlite 数据库检索一些数据 但是当我尝试使用 getTaskSent 方法检索数据时 出现以下错误 谁能建议我解决以下错误 E AndroidRuntime 23159 at android database sqlit
  • Django AND .htaccess 重写/重定向,这可能吗?

    是否可以让 Apache htaccess 重写在到达 django 之前生效 我希望能够指定RewriteRules在优先于 django 的 htaccess 文件中 如果没有匹配的内容 则将其分派到 mod wsgi django 我
  • C 中 const 和 volatile 限定符的用法区别?

    我已经回答了问题 C 中 const 指针和 volatile 指针有什么区别 我理解的解释是 const 修饰符意味着此代码不能更改变量的值 但这并不意味着不能通过此代码之外的方式更改该值 然而 易失性表示 此数据可能会被其他人更改 因此
  • 重新启动游戏并重新实例化对象

    介绍 我正在用 C 创建一个小游戏 并想创建一个重新启动游戏的函数 首先我创建对象player 然后我有一个 if 语句来确定何时按下某个键来调用New 方法 My goal 在该方法中 我想重新实例化 Player 类的对象 因此所有变量