C++小问题cocos2dx小问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++小问题cocos2dx小问题相关的知识,希望对你有一定的参考价值。

报了一个不能将cocos2d::CCLayer的值分配到GameLayer的实体的错误 下面注释那行
最好告诉我下为什么出的错 还有怎么改 谢谢啦 十分感谢

这是我头文件的代码
#pragma once
#include "f:\cocos2d\2.0.1\cocos2dx\layers_scenes_transitions_nodes\ccscene.h"
#include "cocos2d.h"
#include "GameLayer.h"
class GameScene : public cocos2d::CCScene


public:
GameScene(void);
~GameScene(void);
virtual bool init();
int CREATE_FUNC(GameScene);
GameLayer* _gameLayer;
;
这是cpp文件代码
#include "GameScene.h"
USING_NS_CC;
GameScene::GameScene(void)

this->_gameLayer = NULL;


GameScene::~GameScene(void)


bool GameScene::init()

if(!CCScene::init())
return false;

_gameLayer=GameLayer::create(); //这里报了一个 不能将cocos2d::CCLayer的值分配到GameLayer的实体 的错误 我的GameLayer 是继承CCLayer的

this->addChild(_gameLayer);
return true;

class GameLayer: public cocos2d::Layer

    
public:
    CREATE_FUNC(GameLayer);
;

class GameScene : public cocos2d::CCScene


public:
    GameScene(void);
    ~GameScene(void);
    virtual bool init();
    CREATE_FUNC(GameScene);
    GameLayer* _gameLayer;
;
//cpp
#include "GameScene.h"
USING_NS_CC;
GameScene::GameScene(void)

 this->_gameLayer = NULL;


GameScene::~GameScene(void)


bool GameScene::init()

 if(!CCScene::init())
  return false;
 
 _gameLayer=GameLayer::create();   //这里报了一个 不能将cocos2d::CCLayer的值分配到GameLayer的实体     的错误 我的GameLayer 是继承CCLayer的 

 this->addChild(_gameLayer);
 return true;

我跑了一下 木有问题呀~

追问

不能啊 你怎么跑起来的啊 你都没有CCLayer类啊

追答

有啊~你看最上面 我继承了 CCLayer

参考技术A int CREATE_FUNC(GameScene);
int去掉试一下,如果GameLayer是继承CCLayer的话代码应该没问题的。

关于c++中cin的一个小问题。请大家帮我解答一下

下面这个小程序中为什么我输入数字的时候程序没有问题,可以用switch捕捉的到。可以输入字母的时候却会死循环。请各位高手都来帮帮忙吧。不胜感激。

#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
#include<stdlib.h>
#define DELAY 9999999

int menu(void);
void delay(void);

void main(void)


while(1)
switch(menu())
case 0:
cout<<"\nExecuting choice 1..."<<endl;
delay();
break;

case 13:
cout<<"\nExecuting choice enter..."<<endl;
delay();
break;

case 65:
cout<<"\nExecuting choice enter..."<<endl;
delay();
break;

default:
cout<<"\nInvalid choice. Try again..."<<endl;
delay();
break;





int menu(void)

int select;
// char buffer_ch;
cout<<setw(40)<<"Enter A for task 1"<<endl;
cout<<setw(40)<<"Enter B for task 2"<<endl;
cout<<setw(40)<<"Enter C for task 3"<<endl;
cin>>select;
//select=getche();
return select;


void delay(void)

long i;
for(i=0;i<=DELAY;i++);

我在调试的时候也是发现select被赋值为0,很奇怪。cin>>应该是字符和数值都能接受的吧?既然是缓冲式输入,并且字符是以Ascii的形式放在缓冲区的,为什么select的值不能是字符的ascii值呢?我也试了将select定义成char就可以了。可是我想数字和字符都可以输入怎么办?为什么上面的程序将cin>>select; 换成select=getche(); 就可以输入字符数字都没有问题?哪位高手可以以这个例子跟我讲明一下这个缓冲式输入和非缓冲式输入的区别,我现在还是初学,迷糊的很。不胜感激。

参考技术A 我看了很久,还是没看出来有问题呀,郁闷. 参考技术B select 定义成 char select 参考技术C 我也不是很清楚,不过,我简单调试发现,当输入字母是,select被赋值为0,在此后的死循环中,它被赋以858993460。
这原因我就不知道了。
你可以对输入之进行一次判断,如果是字母就让重新输入,从而避免这种情况。

以上是关于C++小问题cocos2dx小问题的主要内容,如果未能解决你的问题,请参考以下文章

Cocos2dx 小技巧(十三)聊聊坐标系

Cocos2dx 小技巧(十四)ScrollView实现缩放效果

Cocos2dx 小技巧现成的粒子特效

初学者c++小问题

C++模数小程序问题

是否可以将 C++ 小部件嵌入到 PyQt 应用程序中?