《入门级-Cocos2d 4.0塔防游戏开发》---第二课:游戏加载界面开发

这篇具有很好参考价值的文章主要介绍了《入门级-Cocos2d 4.0塔防游戏开发》---第二课:游戏加载界面开发。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、开发环境介绍

二、开发内容

2.1 修改窗口的大小。

2.2 添加加载场景相关代码

2.3 添加资源

三、显示效果

四、知识点

 4.1 Sprite

4.2 定时器


一、开发环境介绍

操作系统:UOS1060专业版本。

cocos2dx:版本

环境搭建教程:

统信UOS下配置安装cocos2dx开发环境_三雷科技的博客-CSDN博客

二、开发内容

       游戏在开始时都需要加载大量的资源,为了让用户有等待时间,因此最先开发的场景为加载游戏资源场景,用于加载游戏资源,当然其中还可以处理升级等操作。

2.1 修改窗口的大小。

在AppDelegate.cpp文件中修改为以下内容:

static cocos2d::Size designResolutionSize = cocos2d::Size(960, 640);

2.2 添加加载场景相关代码

在Classes目录中创建Scene目录用于存储关于场景相关的代码。

mkdir Sence
touch LoadingScene.cpp
touch LoadingScene.h

在CMakeLists.txt文件中加入场景代码文件

《入门级-Cocos2d 4.0塔防游戏开发》---第二课:游戏加载界面开发,cosos,cocos2d,游戏,游戏引擎

2.3 代码内容如下:

  • LoadingScene.cpp
#include "LoadingScene.h"

USING_NS_CC;


Scene* LoadingScene::createScene()
{
    return LoadingScene::create();
}


// on "init" you need to initialize your instance
bool LoadingScene::init()
{
    //
    // 1. super init first
    if ( !Scene::init() )
    {
        return false;
    }
    numberOfLoadedRes = 0;
    auto visibleSize = Director::getInstance()->getVisibleSize();
    auto background = Sprite::create("Loadding.png");
    background->setRotation(-90.0f);
    background->setPosition(Point(visibleSize.width/2,visibleSize.height/2));
    addChild(background);
    // 定时更新,用于检测资源是否被加载完成,如果加载完成才跳入到正真的欢迎页面。
    schedule(CC_SCHEDULE_SELECTOR(LoadingScene::logic),1.0f);
    return true;

}
// 该代码处理加载资源的操作。
// 加载资源包括图片,声音等。
void LoadingScene::loadSource(){

}
void LoadingScene::logic(float dt)
{
     // 如果你愿意可以在这里通过监听numberOfLoadedRes的值来显示加载进度。
    if(0 == numberOfLoadedRes){
        loadSource();
    }else if(100 == numberOfLoadedRes){
        // 处理跳转动作。
    }
}
  • LoadingScene.h
#ifndef __LOADING_SCENE_H__
#define __LOADING_SCENE_H__

#include "cocos2d.h"

class LoadingScene : public cocos2d::Scene
{
public:
    static cocos2d::Scene* createScene();

    virtual bool init();
    
    
    // implement the "static create()" method manually
    CREATE_FUNC(LoadingScene)
        void loadSource();
        void logic(float dt);
        int numberOfLoadedRes;
};

#endif // __LOADING_SCENE_H__

2.3 添加资源

由于加载场景中需要使用到资源。因此我们需要将资源拷贝到Resources目录中。

注意:在使用QT调试的时候有可能出现无法找到资源的情况,需要手动将Resources目录内容拷贝的debug/bin/Resources目录中!!!!

三、显示效果

《入门级-Cocos2d 4.0塔防游戏开发》---第二课:游戏加载界面开发,cosos,cocos2d,游戏,游戏引擎

四、知识点

 4.1 Sprite

Sprite翻译成精灵,其实就是场景中的一个图片元素,我们可以通过控制这个图片元素移动来达到动画效果,从而完成功能。

创建精灵需要传递一个图片,图片需要存放在Resources目录内,

在 Cocos2d-x 中,你可以使用多种方式来创建 Sprite 精灵对象。以下是一些常见的创建方式:

1. 使用文件名创建:
   使用图像文件的路径来创建 Sprite。

   auto sprite = Sprite::create("image.png");

2. 使用精灵帧创建:
   如果你有一个精灵帧对象,可以使用它来创建 Sprite。

   auto frame = SpriteFrameCache::getInstance()->getSpriteFrameByName("frame_name");
   auto sprite = Sprite::createWithSpriteFrame(frame);

3. 使用纹理创建:
   使用纹理对象来创建 Sprite。

 auto texture = Director::getInstance()->getTextureCache()->addImage("image.png");
   auto sprite = Sprite::createWithTexture(texture);

4. 使用纹理矩形创建:
   使用纹理矩形来创建 Sprite。

auto texture = Director::getInstance()->getTextureCache()->addImage("image.png");
   auto rect = Rect(0, 0, width, height); // 纹理矩形的位置和尺寸
   auto sprite = Sprite::createWithTexture(texture, rect);

5. 使用图片帧缓存创建:
   如果你使用了图片帧缓存,可以根据帧名称来创建 Sprite。

 auto sprite = Sprite::createWithSpriteFrameName("frame_name");

6. 使用自定义纹理区域创建:
   可以使用自定义的纹理区域来创建 Sprite。

   auto sprite = Sprite::create("image.png", Rect(x, y, width, height));

以上只是一些常见的创建方式,根据你的需求和项目的情况,你可以选择适合的创建方式来生成 Sprite 精灵对象。

4.2 定时器

在 Cocos2d-x 中,定时器是一种常用的机制,用于周期性地执行某个函数或任务。定时器能够帮助你实现动画、更新游戏逻辑、执行定时任务等功能。以下是关于 Cocos2d-x 定时器的基本知识点:

1. 创建定时器:
   在 Cocos2d-x 中,你可以使用 `schedule` 函数来创建定时器。`schedule` 函数有几个重载形式,最常用的是:   

   schedule(CC_SCHEDULE_SELECTOR(YourClassName::YourFunctionName), intervalInSeconds);

   其中 `YourClassName` 是你的类名,`YourFunctionName` 是你要执行的函数名,`intervalInSeconds` 是定时器的触发间隔,以秒为单位。

2. 定时器回调函数:
   定时器的回调函数是你要在每次定时器触发时执行的函数。这个函数通常没有参数,但你可以根据需要自行添加。示例:

   void YourClassName::YourFunctionName(float dt) {
       // 在这里执行定时器触发时的操作
   }

dt:表示两次触发之间的间隔时间。

3. 启动和停止定时器:
   使用 `schedule` 函数创建定时器后,它会自动启动。你可以使用 `unschedule` 函数来停止定时器:

 unschedule(CC_SCHEDULE_SELECTOR(YourClassName::YourFunctionName));

4. 单次定时器:
   如果你只希望定时器触发一次,你可以使用 `scheduleOnce` 函数来创建单次定时器:

   scheduleOnce(CC_SCHEDULE_SELECTOR(YourClassName::YourFunctionName), delayInSeconds);

5.  帧定时器:
   Cocos2d-x 还提供了帧定时器,它会在每一帧都触发一次。你可以使用 `scheduleUpdate` 函数来创建帧定时器,然后在类中实现 `update` 函数: 

   scheduleUpdate();
   void YourClassName::update(float dt) {
       // 在每一帧执行的操作
   }

定时器在游戏开发中非常重要,可以用于管理游戏的时间相关逻辑、动画、物理模拟等。然而,使用过多的定时器可能会导致性能问题,因此要谨慎使用,并确保合理地管理和释放定时器。

上一节:统信UOS下配置安装cocos2dx开发环境_三雷科技的博客-CSDN博客

下一节:《入门级-Cocos2d 4.0塔防游戏开发》---第三课:欢迎界面开发(一)_

学习导航:《入门级-Cocos2d 4.0塔防游戏开发》---实战 文章来源地址https://www.toymoban.com/news/detail-614332.html

到了这里,关于《入门级-Cocos2d 4.0塔防游戏开发》---第二课:游戏加载界面开发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • win10 vs2022 搭建 cocos2d-x 3.17 开发环境

    https://cocos2d-x.org/download/ 也可以在 github 下载 https://github.com/cocos2d/cocos2d-x/tags https://docs.cocos2d-x.org/cocos2d-x/v3/zh/ https://docs.cocos2d-x.org/api-ref/cplusplus/v3x/index.html 需要 python2 , 安装后可以用 python2 的绝对路径运行 cocos 的 setup.py 如何没有把 python2 加入到环境变量, 可以修改引擎路径下

    2024年02月08日
    浏览(31)
  • Cocos2d-x实现文字颜色渐变

    更改CCLabel文件的updateColor()函数中的顶点颜色即可,代码如下: 效果图:  

    2024年02月12日
    浏览(28)
  • cocos2d-x C++与Lua交互

    Cocos版本: 3.10 Lua版本: 5.1.4 环境: window Visual Studio 2013 Lua 作为一种脚本语言, 它的运行需要有 宿主 的存在,通过 Lua虚拟栈 进行数据交互。 它的底层实现是 C 语言,C语言封装了很多的API接口,使得C/C++与Lua之间可以很方便的通信交互。 Lua的官网: https://www.lua.org/ 在coc

    2024年02月08日
    浏览(27)
  • cocos2d-x 3.17 推箱子 0.1

    此版本为推箱子游戏的基础版本, 后续添加如下功能 人物动画 TiledMap 解析 射线碰撞检测 下一步提示, C++算法解析 道具, 可以回退一步 通过 cocos 命令新建一个项目, 将本项目的 Reources 目录和 Classes 目录复制过去即可 使用图集绘制 Sprite , 然后手动处理碰撞检测 游戏学论著翻译

    2024年02月08日
    浏览(33)
  • cocos2d-x Android原生平台与Lua交互

    版本: cocos2d-x 语言: C++/Java/Lua cocos2d-x原生平台Android 接入第三方SDK, 需要了解 LuaJavaBridge 的使用。 它封装了用于 Java 和 Lua 的相互调用, 其调用通过 C++ 为中介,简要的流程: Lua调用Java: Lua - C++ - Java Java调用Lua: Java - C++ - Lua 以此方式来实现数据的交互, 接下来我们分别说下

    2024年02月08日
    浏览(29)
  • 使用“Cocos引擎”创建的cpp工程如何在VS中调试Cocos2d-x源码

    前段时间Cocos2d-x更新了一个Cocos引擎,这是一个集合源码,IDE,Studio这一家老小的整合包,我们可以使用这个Cocos引擎来创建我们的项目。 在Cocos2d-x被整合到Cocos引擎之前,我们可以不那么方便地在我们创建的工程里调试Cocos2d-x的代码,当我们使用了整合后的Cocos引擎,调试

    2024年02月12日
    浏览(39)
  • 如何将cocos2d-x js打包部署到ios上 Mac M1系统

    项目环境 cocos2d-x 3.13 xcode 12 mac m1 big sur 先找到你的项目 使用xcode软件打开上面这个文件 打开后应该是这个样子 执行编译运行就好了 可能会碰到的错误 在xcode11版本以上都会有这个错误,这是因为iOS11+废弃了system。 将上面代码修改为 解决方案地址 remove \\\"system\\\" usage by minggo ·

    2024年02月22日
    浏览(33)
  • 【用unity实现100个游戏之15】开发一个类保卫萝卜的Unity2D塔防游戏1(附项目源码)

    当今,塔防游戏已经成为游戏市场上备受欢迎的一类游戏类型。《保卫萝卜》作为其中的经典之作,深受玩家喜爱。本项目旨在基于《保卫萝卜》的玩法和特点,开发一个Unity2D塔防游戏,让玩家可以在游戏中体验到精彩的策略对抗与刺激的关卡挑战。 本项目将通过Unity引擎进

    2024年02月04日
    浏览(34)
  • 【用unity实现100个游戏之15】开发一个类保卫萝卜的Unity2D塔防游戏4(附项目源码)

    本期紧接着上一篇,本期主要内容是实现商店、购买、出售、升级等功能。 新增TurretSettings 配置不同炮塔参数 绘制商店UI 新增TurretCard,渲染商品数据,如果前面有绘制价格文本,还可以渲染价格文本,这里我就偷懒不弄了 挂载脚本,并配置 新增TurretShopManager,商店管理器

    2024年01月21日
    浏览(35)
  • 【cocos 2d微信小游戏开发教程】基础使用笔记分享(一)

    开发文档地址 https://docs.cocos.com/creator/2.4/manual/zh/ 挂载脚步 右键新建脚本 脚本解释 把类名和脚本名改为一致 允许其他脚本调用 text优先使用面板的值,property去掉则不在面板上显示 打印输出 生命周期函数解释 节点的使用 预设体 拖拽新增预设体 用代码渲染预设体 脚本内容

    2024年02月07日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包