//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;
}
运行时界面:
打断点之后看到无法读取函数:
完全照着视频里的写,但我的就是报错了。
按照第二,第三张图来看,他这个错误好像是函数指向问题,不仅仅是m_sprite 函数,本页面中所有的函数指向似乎都有问题,但我就是不知道该怎么改。请各位指点一下,谢谢了。