cocos2dx 的Hello world的简单分析

cocos2dx 的Hello world的简单分析

Node之间的关系:

cocos2dx 的Hello world的简单分析

场景AppDelegate.cpp又要由导演去调用然后进行表演:

    // create a scene. it's an autorelease object
    auto scene = HelloWorld::createScene();

    // run
    director->runWithScene(scene);

这里层里面的场景HelloWorldScene.cpp里面的内容:

#include "HelloWorldScene.h"

USING_NS_CC;

Scene* HelloWorld::createScene()
{
    // 'scene' is an autorelease object
    auto scene = Scene::create();
    
    // 'layer' is an autorelease object
    auto layer = HelloWorld::create();

    // add layer as a child to scene
    scene->addChild(layer);

    // return the scene
    return scene;
}

// on "init" you need to initialize your instance
bool HelloWorld::init()
{
    //
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }
    
    Size visibleSize = Director::getInstance()->getVisibleSize();
    Vec2 origin = Director::getInstance()->getVisibleOrigin();

    /////
    // 2. add a menu item with "X" image, which is clicked to quit the program
    //    you may modify it.
    //每一个addChild会创建出一个添加的层
    // add a "close" icon to exit the progress. it's an autorelease object
    auto closeItem = MenuItemImage::create(
                                           "CloseNormal.png",
                                           "CloseSelected.png",
                                           CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));
    
    closeItem->setPosition(Vec2(origin.x + visibleSize.width - closeItem->getContentSize().width/2 ,
                                origin.y + closeItem->getContentSize().height/2));

    // create menu, it's an autorelease object
    auto menu = Menu::create(closeItem, NULL);
    menu->setPosition(Vec2::ZERO);
    this->addChild(menu, 1);

    /////
    // 3. add your codes below...

    // add a label shows "Hello World"
    // create and initialize a label
    
    auto label = Label::createWithTTF("Hello sunzhiyan", "fonts/arial.ttf", 24);
    
    // position the label on the center of the screen
    label->setPosition(Vec2(origin.x + visibleSize.width/2,
                            origin.y + visibleSize.height - label->getContentSize().height));

    // add the label as a child to this layer
    this->addChild(label, 1);

    auto label1= Label::createWithTTF("88888888888888", "fonts/arial.ttf", 40);

    // position the label on the center of the screen
    label1->setPosition(Vec2(origin.x + visibleSize.width / 3,
        origin.y + visibleSize.height - label1->getContentSize().height));

    // add the label as a child to this layer
    this->addChild(label1, 1);

    //创建一个精灵
    auto sprite = Sprite::create("sun.jpg");

    //设置精灵的显示位置
    sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));

    // 将精灵添加到层里面
    this->addChild(sprite, 0);
    
    return true;
}


void HelloWorld::menuCloseCallback(Ref* pSender)
{
    Director::getInstance()->end();

#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
    exit(0);
#endif
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/109300.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 什么是宿主机?_esxi宿主机

    什么是宿主机?_esxi宿主机就是主机,这个概念是相对于子机而言的,比如你安装有虚拟机的话,那么相对于虚拟机而言,你正在使用的计算机就是宿主机,虚拟机是安装在主机上的,必须在主机上才能运行,主机就是一个“宿主”。…

  • oracle amm和asmm,AMM与ASMM

    oracle amm和asmm,AMM与ASMM一、AMM相关知识:1.从oracle11.1开始oracle提供了通过MEMORY_TARGET参数实现自动SGA和PGA自动管理的功能,从此版本开始不再需要明确设置SGA_TARGET及PGA_AGGREGATE_TARGET,这个被支持在linux、windows、solaris、hpux、aix。2.在使用MEMORY_TARGET参数的linux机器上,在oracle启动时遇到ORA-…

  • SQL的default_sql default

    SQL的default_sql default在IF中如果我们定义一个变量的话他的作用直到IF结束为止,IF外是不识别这个变量,else都不能使用IF(true){int32i=1;Console.WriteLine(I);}这种情况要是在SQL里就要使用DECLARE了BEGINDECLARE@testVARCHAR;如果要使用默认值:DECLARE@testVARCHAR(5)DEFAULT’a’;进行赋值:DECLAREVar1INTEGER…

  • 单片机的现状及其发展前景_单片机就业方向

    单片机的现状及其发展前景_单片机就业方向我想对了学习单片机的人而言,肯定都想知道单片机目前的发展现状啊,据此来给自己指定学习目标吧,今天我搜集了一些单片机的发展现状,希望对大家有帮助,^^.计算机系统的发展已明显地朝三个方向发展;这三个方向就是:巨型化,单片化,网络化。以解决复杂系统计算和高速数据处理的仍然是巨型机在起作用,故而,巨型机在目前在朝高速及处理能力的方向努力。单片机在出现时,Intel公司就给其单片机取名为嵌入式微控

    2022年10月21日
  • opencv videocapture参数_opencv显示图像

    opencv videocapture参数_opencv显示图像importcv2ascvcapture=cv.VideoCapture(0)whileTrue: ret,frame=capture.read() cv.imshow(“Video”,frame) c=cv.waitKey(1) ifc==27: break capture.release() cv.destroyAllWindows()VideoCapture()中参数是0,表示打开笔记本的内置摄像头cap.read()按帧读取视频,re

    2022年10月26日
  • 在使用vagrant访问PHP文件是报错“file not found”,好像是最新的NGINX不能识别document_root,只能改为自己的项目目录/vagrant_data…[通俗易懂]

    在使用vagrant访问PHP文件是报错“file not found”,好像是最新的NGINX不能识别document_root,只能改为自己的项目目录/vagrant_data…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号