孤星1213 2022-05-28 06:43 采纳率: 0%
浏览 41
已结题

[cocos2dx] 定义的函数无法读取内存

//Monster.h 代码
#pragma once
#include "cocos2d.h"
USING_NS_CC;
class Monster : public Layer
{
public:
//此处没有静态场景
virtual bool init();
CREATE_FUNC(Monster);

private:
Sprite* m_Sprite; //创建一只精灵(怪物)
};

//Monster.cpp 代码
#include "Monster.h"
bool Monster::init()
{
if (!Layer::init())
return false;

auto size = Director::getInstance()->getVisibleSize();   //获取窗口大小

 m_Sprite = Sprite::createWithSpriteFrameName("Enemy1.png");

//用随机函数定义敌人出现的位置
 m_Sprite->setPosition(Vec2(size.width / 2, size.height / 2));
auto Ani = Animation::create();
auto pChace = SpriteFrameCache::getInstance();  //定义精灵框架文件
char szName[32];
for (int i = 0; i < 2; i++)
{
    Ani->addSpriteFrame(pChace->getSpriteFrameByName(szName));  //得到精灵框架
}
Ani->setDelayPerUnit(0.2f);   //设置过渡时间为0.2秒
Ani->setRestoreOriginalFrame(true);   //动画播放完后,是否回到第一张
auto action = Animate::create(Ani);       //开始创建动画
m_Sprite->runAction(RepeatForever::create(action));   //无限执行动画
this->addChild(m_Sprite);

    return true;

}

运行时界面:

img

打断点之后看到无法读取函数:

img

完全照着视频里的写,但我的就是报错了。
按照第二,第三张图来看,他这个错误好像是函数指向问题,不仅仅是m_sprite 函数,本页面中所有的函数指向似乎都有问题,但我就是不知道该怎么改。请各位指点一下,谢谢了。

  • 写回答

2条回答 默认 最新

  • 歇歇 2022-06-03 23:33
    关注

    你是文件打开后没关闭吗?重新启动电脑试试,记得代码加上关闭文件

    评论

报告相同问题?

问题事件

  • 系统已结题 6月5日
  • 修改了问题 6月4日
  • 赞助了问题酬金20元 5月30日
  • 创建了问题 5月28日

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器