Cocos2dx游戏教程(十四):“见缝插针”,点击事件

微信小游戏实战--cocos creator实现wordle游戏(二) 根据上篇教程:微信小游戏实战--cocos creator实现wordle游戏(一)我们已经完成了开发环境的搭建并创建了一个项目,接下来就可以正式山寨,哦不对,应该是正式开发wordle这款小游戏了。 熟悉Cocos Creator 工欲善其事必先利其器,首先我们需要熟悉一下开发工具的使用。打开Cocos Creator进入到我们之前创建的项目,新建的2D项目大概如下图所示: 1、层级管理器:创建和管理游戏的内容节点。在Cocos Creator中所有的控件都被视为节点(node),在层级管理器中 阅读详情

Cocos的事件分为大概6种,分别为屏幕点击事件、键盘输入、鼠标点击、加速度事件、focus、自定义事件,对事件的操作施行的是监听机制,就是每种事件都有一个监听者类型。
本节主要介绍屏幕/按键点击事件,其他不做详细说明,使用方式类似。

一、屏幕点击事件

我们首先来看屏幕点击事件的函数原型,屏幕点击事件分为单点触摸和多点触摸

1、单点触摸

    std::function<bool(Touch*, Event*)> onTouchBegan;
    std::function<void(Touch*, Event*)> onTouchMoved;
    std::function<void(Touch*, Event*)> onTouchEnded;
    std::function<void(Touch*, Event*)> onTouchCancelled;

2、多点触摸

    std::function<void(const std::vector<Touch*>&, Event*)> onTouchesBegan;
    std::function<void(const std::vector<Touch*>&, Event*)> onTouchesMoved;
    std::function<void(const std::vector<Touch*>&, Event*)> onTouchesEnded;
    std::function<void(const std::vector<Touch*>&, Event*)> onTouchesCancelled;

该教程的的游戏涉及到的为单点触摸,章节主要介绍单点触摸的实现,多点类似哦
在前面介绍到主场景实现是时候,在主场景头文件中我们可以看到如下方法

	//触摸开始方法
    bool onTouchBegan(Touch* touch, Event* event);
    //触摸移动方法 
    void onTouchMoved(Touch* touch, Event* event);
    //触摸结束方法
    void onTouchEnded(Touch* touch, Event* event);

在类文件中有如下实现,详细请参考
Cocos2dx游戏教程(十一):“见缝插针”,主场景实现这一节的具体实现

//触摸开始方法
bool GameScene::onTouchBegan(Touch* touch, Event* event) {
	return true;
}

//触摸移动方法 
void GameScene::onTouchMoved(Touch* touch, Event* event) {
}

//触摸结束方法
void GameScene::onTouchEnded(Touch* touch, Event* event) {
}

在init方法中,我们可以看到这里面注册了监听EventListenerTouchOneByOne

	//创建一个触摸监听 
	auto touchListener = EventListenerTouchOneByOne::create();   
	//向下传递触摸事件
	touchListener->setSwallowTouches(false);
	touchListener->onTouchBegan = CC_CALLBACK_2(GameScene::onTouchBegan, this);
	touchListener->onTouchMoved = CC_CALLBACK_2(GameScene::onTouchMoved, this);
	touchListener->onTouchEnded = CC_CALLBACK_2(GameScene::onTouchEnded, this);
	touchListener->onTouchCancelled = CC_CALLBACK_2(GameScene::onTouchCancelled, this);
	_eventDispatcher->addEventListenerWithSceneGraphPriority(touchListener, this);

二、按键点击事件

按键事件和点击实现实现很相似啊,首先我们先声明方法

//按键点击事件
void onKeyReleased(EventKeyboard::KeyCode keycode, Event* event);

然后我们实现下监听函数

void GameScene::onKeyReleased(EventKeyboard::KeyCode keycode, Event* event) {
	if (keycode == EventKeyboard::KeyCode::KEY_ESCAPE) {
		Director::getInstance()->replaceScene(GameMenuScene::createScene());
	} else if (keycode == EventKeyboard::KeyCode::KEY_MENU) {

	}
}

最后在init中创建监听对象

//注册捕捉监听
auto listenerkeyPad = EventListenerKeyboard::create();
listenerkeyPad->onKeyReleased = CC_CALLBACK_2(GameScene::onKeyReleased, this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(listenerkeyPad, this);

是不是很相似啊。
教程到这儿游戏的整体玩法和实现已经全部完成了,有兴趣的小伙伴们可以参考代码自己实现一下哦。教程包括全部的源代码,大家替换一下自己的资源哈。

后续还会有相关教程,大家可以持续关注啊。

在强调一下,资源来源于网络,仅供教学使用,如有侵权请联系删除。

基于ROS2 Humble和VGR数据集完整部署GADEN气体分散仿真环境及模型替换实践 文章摘要 本文详细介绍了基于ROS2 Humble和VGR数据集部署GADEN气体分散仿真环境的方法。GADEN是一款专为移动机器人嗅觉研究设计的3D仿真框架,能够精确模拟气体扩散过程并集成多种环境传感器。文章从系统配置开始,逐步指导读者完成ROS2 Humble环境的搭建、GADEN框架的编译部署,以及VGR数据集的使用。VGR数据集包含120个基于真实房屋模型的CFD仿真案例,为研究提供高度真实的测试环境。教程涵盖了常见问题的解决方案,并深入探讨了气体扩散模型参数的修改方法,为机器人嗅觉算法的开发和验证 阅读详情

相关推荐

清华开源GPGPU“承影Ventus”初体验:用RISC-V RVV指令集跑通第一个OpenCL程序

本文详细介绍了清华大学开源GPGPU“承影Ventus”的开发实践,展示了如何基于RISC-V RVV指令集运行首个OpenCL程序。从环境配置、内核开发到性能优化,全面解析了这一创新架构的开发流程,为开发者提供了在RISC-V生态中进行通用GPU计算的实用指南。

weixin_30415113的博客 489

cocos creator 3.0见缝插针(口红机)

cocos creator3.0 见缝插针效果展示实现思路关键代码试玩地址(加载慢,自己服务器带宽低)下载地址开源不易,仅学习使用 效果展示 ## gif 帧率较低 实际体验效果更好 实现思路 1、中间一个节点 里面有两个node 分别放背景橘子node,存放刀的node 然后只旋转这个中间节点让刀和背景一块旋转就行了 2、碰撞检测给每一把刀放上碰撞检测 3、下边放一把假的刀 用来做动画执行,刀子到达位置 将假的刀放回原来的位置,将复制新的刀到中间存刀的节点 4、判断下一关 将中间节点存刀的node判

张无忌的博客 1368

某二级支行网络的设计与实现——配置脚本(1)

【代码】某二级支行网络的设计与实现——配置脚本(1)

u010311846的博客 577

Cocos2dx游戏教程(十二):“见缝插针”,游戏结算界面和音效

前面游戏主场景已经可以试玩了吧,但是是不是感觉很单调呢,如何进入下一关呢?要不要配置些音乐呢,在我的BGM中是不是有些无敌的感觉呢 首先我们来看一下需要添加的文件 我们可以看到,在这一节新增了GameFailedLayer,GameSuccessLayer,GameMusic,GameLevel四个类。 我们都知道如何创建一个层,我们首先来看一下胜利失败的界面吧 下面带领大家看看下如何实现界...

小白的专栏 922

AD9176 双通道高速DAC调试记录

AD9176是一款高性能双通道16位数模转换器,支持高达12.6GSPS采样率,专为多频段无线应用设计。该器件集成8通道15.4Gbps JESD204B接口,支持复数/实数数据输入,每通道最大输入速率达3.08GSPS。关键特性包括:48位高精度NCO、灵活的插值滤波器(最高12倍)、优异的动态性能(SFDR达-83dBc@1.84GHz)以及多芯片同步功能。硬件调试需重点关注时钟配置(建议250M基准时钟)、JESD参数匹配及交流耦合设计。测试指标要求SFDR>55dBc@312MHz,实测值可达65d

universaldata的博客 1487

Mac上Ollama服务IP访问失败的3种修复方法(含永久生效配置)

本文详细介绍了Mac上Ollama服务IP访问失败的3种修复方法,包括临时环境变量覆盖、永久Shell配置修改及进阶排查技巧。重点解析了OLLAMA_HOST环境变量的配置原理,帮助开发者解决Connection refused问题,实现局域网IP访问Ollama服务的需求。

weixin_29209805的博客 206

Cocos2dx游戏教程(十一):“见缝插针”,主场景实现

前面是节介绍了Cocos2dx的相关知识,也实现了相关场景,这一节设计的游戏的具体实现啦,我们看一下新增的类,主要有小球类ball,定义类define,全局方法类GlobalManage,主场景类GameScene 这一节完成后大家就可以初步进行游戏啦,前介绍过的相关功能在本章节中都有体现哦,这章节主要就上代码吧。 下面我们看下文件列表,可以看到红框中新增的文件,下面介绍文件的具体实现。 大家将第...

小白的专栏 747

实战指南!基于STM32的智能环境监测系统(代码+硬件设计+云端控制)

本文详细介绍了基于STM32的智能环境监测系统的设计与实现,包括硬件选型、电路设计、软件架构和云端控制。系统通过DHT11温湿度传感器和MQ-2烟雾传感器实时监测环境数据,STM32F103C8T6主控芯片处理数据并通过ESP8266上传至中国移动物联网平台,支持手机APP远程监控。项目成本低、稳定性高,适合智能家居和环境监测应用。

weixin_29194817的博客 432

【CocosCreator入门】CocosCreator组件 | Button(按钮)组件

Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中的Button组件可以通过设置按钮的状态和点击事件,实现在游戏中添加按钮交互的功能。

看世界,也找自己 6466

SIMATIC WINCC V8.0安装教程(Win11系统)

SIMATIC WINCC V8.0安装教程(Win11系统)

Robot_PLC_HMI_Automation 9023

【华为OD机试真题】459、小扇和小船的数字游戏、数字游戏 | 机试真题+思路参考+代码解析(CD卷)(C++、Java、Py)

### 🎃题目描述 >小扇和小船今天又玩起来了数字游戏,小船给小扇一个正整数 n(1  现在求 m 的最小值

KJ.JK 1717

Cocos2dx游戏教程(一):“见缝插针”,游戏项目的搭建

前篇文章展示了“见缝插针”的游戏截图,下面带领大家一步一步完成自己的小游戏吧,前提是cocos2dx环境已经搭好了哦,官网有搭建的详细教程,这里不多说啦 cocos2dx 英文官网:http://www.cocos2d-x.org/ cocos2dx 中文社区:http://www.cocos.com/ 先说说自己,其实最开始根本没想到会走游戏这条路。曾经总是认为自己是小说里面的主角,最后才发现自...

小白的专栏 1589

DC/DC开关电源学习笔记(一)开关电源技术概述

开关模式电源(Switch Mode Power Supply,简称SMPS),又称交换式电源、开关变换器,是一种高频化电能转换装置,是电源供应器的一种。其功能是将一个位准的电压,透过不同形式的架构转换为用户端所需求的电压或电流。开关电源的输入多半是交流电源(例如市电)或是直流电源,而输出多半是需要直流电源的设备,例如个人电脑,而开关电源就进行两者之间电压及电流的转换。【百度百科】

小幽余生不加糖 1619

Cocos2dx游戏教程(四):“见缝插针”,第一个场景的建立

从这一篇开始就正是进入游戏具体实现啦,前面都了解了核心类的基本操作,那么现在我们开始具体实现吧 一、见缝插针的玩法 简单的说,玩家有一些小球,将这些小球弹射到大球上且不能碰到大球上的小球哦,前面介绍的“口红机”就是这样的玩法,只不过我们把小球换成了口红而已。 看看广告词,说的还是很清楚的么 又是一款简单而不简略的游戏,游戏画面简略但玩法新颖。玩家手中有一定数量的针头,必须把所有的针头都插进旋转的球...

小白的专栏 736

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Cocos2dx游戏教程(二):“见缝插针”,从添加一幅图开始

前面的教程中我们已经完美的运行起了游戏工程,Cocos2dx是C/C++编写的呢,一个面向对象编程的游戏引擎哦,是不是有些心动呢,那么一起共勉吧! 错了,下面才是 一、认识工程目录结构 前面的教程已经认识了工程的目录结构,默认的目录有两个类 AppDelegate.cpp //程序入口文件 HelloWorldScene.cpp //默认场景文件 1.AppDelegate类 我们可以仔细看...

小白的专栏 1114

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Cocos2dx游戏教程(六):“见缝插针”,菜单Menu与C++11新特性

上一节我们已经实现了第二个场景界面,最后按下按钮发现没有反应是不是,这一节将会给大家介绍下Cocos2dx另一个重要的对象,菜单Menu。 一、Menu介绍 提到Menu,不得不提到MenuItem,MenuItem继承自Node,所以它的子类菜单项都可以使用Node的相关操作。 MenuItem是所有菜单项的父类,建议不要直接使用该类,因为它并不包含具体显示的功能。 作为其它菜单项的父类,主要提...

小白的专栏 886

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Cocos2dx游戏教程(三):“见缝插针”,Cocos2dx核心类介绍

前面给大家介绍了图片精灵的加载和相关核心类的描述,聪明的小伙伴们应该都已经了解了相关的使用方式吧,这次呢就详细的介绍下几个核心类的作用,使用方式和框架结构,巩固一下。 序、框架结构图 我们看一下将要实现的游戏的示意图,能看出哪些是场景,哪些是精灵么,还有文字和菜单按钮哦(后面介绍) 如下图所示,上章的Director,Node,Scene,Layer,Sprite结构图如下。 Node类是绝大部...

小白的专栏 633

Cocos2dx游戏教程(十三):“见缝插针”,更新函数Update

在前两个教程中是不是都出现了update方法呢?那么这个方法的左右时什么呢?本节将会给大家介绍下cocos2dx update方法以及定时器的运用。 相信大家在一看是创建空工程的时候应该就已经接触到了吧,运行工程后在屏幕的左下角有一个不停变换的数字,就在实时刷新哦,有一个方法 pDirector->setDisplayStats(true); pDirector->setAnimati...

小白的专栏 1383

Cocos2dx游戏教程(十):“见缝插针”,动作篇Action

一个成功的游戏如果只是一堆静态图片,那么和一幅画有什么区别呢?所以动静结合才是王道~~ 动作体系对于一款游戏的成功与否是有着非常重要的影响的。在这一节中将会带大家简单的认识动作体系。 常见的动作 我们在上节中发现场景的切换方式还可以采用runAction的方式使用 //跳转场景 this->runAction(Sequence::create( DelayTime::create(2.5f...

小白的专栏 744

Cocos2dx游戏教程(五):“见缝插针”,第二个场景的建立

上一篇中我们建立了第一个场景,下面我们着手建立第二个场景哦,第二个场景比较复杂了,我们先看一下实现的效果吧,在本节中将会带大家一起实现第二场景。 场景的将会涉及到文件标签,菜单按钮等操作,下两节将会分别介绍文字标签和菜单的实现,现在可以先带着问题做下去哦。 看下对比图,是不是很有感觉了, 好像当时上数学课的样子~~ 开始准备今天的场景吧。 一、准备场景素材 场景中存在的元素有哪些呢? 对,有背...

小白的专栏 528

Cocos2dx游戏教程(九):“见缝插针”,场景切换效果介绍

他来了,他来了,他带着炫酷的效果来了,前面我们一直想知道场景怎么切换,效果是什么,在这一节中将会给大家介绍Cocos2dx场景切换的效果。 一、游戏代码实现 前面我们已经介绍了游戏场景的跳转,现在结合游戏逻辑具体介绍下 1、将AppDelegate中的场景跳转还原到WelcomeScene auto scene = WelcomeScene::createScene(); 2、在welcomeS...

小白的专栏 492

Cocos2dx游戏教程(七):“见缝插针”,Label标签的使用

在创建第二场景中我们不仅看到了Menu的创建,其中是不是还有如下的创建方式啊? //关卡数字 auto levelTTF = Label::createWithCharMap("fonts/label/label_ball.png", 14, 20, '0'); levelTTF->setString(StringUtils::format("%d", 1)); levelTTF-&g...

小白的专栏 629

Cocos2dx游戏教程(八):“见缝插针”,UserDefault数据存储与读取

前面已经介绍了前两个场景使用,中间涉及到了几个核心类,菜单,label标签等,同样我们也实现了两个场景的切换和关卡数字的显示。那么我们怎么记录游戏相关的信息呢? 下面我们将走进cocos2dx的数据存储,UserDefault。 一、UserDefault介绍 cocos2dx提供了一个数据存储类UserDefault,可以作为一个轻量级的数据库来使用。它支持五种基本数据bool、int、floa...

小白的专栏 669

Cocos2dx游戏教程(十五):“见缝插针”,愿你走出半生,归来仍是少年

从决定写这个教程到第一个有戏教程结束也经历了好长时间,有的地方可能写的不好,也请大家多多包涵。决定写这个教程也是对自己学习的一个总结吧,写教程的过程也是自己学的过程。 一个小游戏所涉及到的知识点毕竟不是很全面,后续还是会继续写相关的内容介绍其他功能的使用,大家可以继续关注哦。 开篇 还记得夕阳下的奔跑,那是我逝去青春 2020年开春,一场突如其来的疫情打乱了大家的生活,让很多人一下陷入十分被动的...

小白的专栏 533

Cocos2dx游戏教程(序):火爆抖音的网红口红机真能扎到口红吗?

一、口红机是什么 最近口红机简直刷爆抖音,是不是看着都觉得手痒啦,它的玩法也很简单,扫码支付几块钱,然后就会获得一次闯三关的机会,用口红扎水果,三关如果口红全部扎上去了,就可以获得商家精心准备的各种大牌口红,那么小伙伴们是不是都去试了一式呢?到底能不能扎到口红呢?反正自己没试过~~~ ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020030723465794...

小白的专栏 990

Cocos2dx游戏教程(十六):绘制图形,DrawNode扇形以及环形

通过前面十五章的介绍,大家应该都能实现“见缝插针”的基本玩法了吧。 但从头玩到尾都是一个模式,是不是有些单调呢? 在这篇中将结合如何提升游戏难度和可玩性给大家介绍一下Cocos2dx 的DrawNode。 提到DrawNode我们可以通过cocos2dx自带的例子,其中有很多已经实现了的方法。 1、使用方法 //创建DrawNode,然后后加入到Layer层中 DrawNode* drawNode...

小白的专栏 1452
上一篇: Cocos2dx游戏教程(十三):“见缝插针”,更新函数Update
下一篇: Cocos2dx游戏教程(十五):“见缝插针”,愿你走出半生,归来仍是少年
胖胖的战士
博客等级 码龄18年 104粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值