cocos2d-x3.6 连连看连通画线

我的博客:http://blog.csdn.net/dawn_moon

网上看到非常多人写的连连看,都没有画连线的实现。事实上要话连线挺简单的。cocos2d-x 提供了一个非常方便的绘图形的类。DrawNode。这个类封装了非常多画线条,多边形的方法。非常方便,非常好用。非常强大。

DrawNode的使用非常easy,我使用一个成员变量来保存这个DrawNode,由于会一直反复使用。

mDraw = DrawNode::create();
addChild(mDraw, 1000);

它的使用跟精灵一样,create出来以后,add到当前层。

void GameScene::drawLine()
{// 画线if (mPath.size() >= 2) {Vec2 *vecs = new Vec2[mPath.size()];for (int i = 0 ; i < mPath.size(); i++) {vecs[i] = indextoScreen(mPath.at(i).x, mPath.at(i).y);}// 随机给线条一个颜色auto color = CCRANDOM_0_1();// 循环画线段,仅仅有线段能够设置线条宽度for (int i = 0 ; i < mPath.size(); i++) {if ( i > 0) {mDraw->drawSegment(vecs[i-1], vecs[i], 5, Color4F(color, color, color, 1));}}// 连通的两个图标相应的地图数组置0Vec2 p1 = mPath.front();mMap[(int)p1.x][(int)p1.y] = 0;Vec2 p2 = mPath.back();mMap[(int)p2.x][(int)p2.y] = 0;// 删掉线段的顶点数组delete []vecs;// 清除连通的图标。同一时候清除路径点scheduleOnce(SEL_SCHEDULE(&GameScene::clearMatched), 0.2);}}

前面讲了。我们将两个图标连通的路径关键点存在了一个容器mPath里面。至少会有2个点,最多4个点。

然后我们用DrawNode里面的drawSegment()函数来画连线。

这个函数是画线段的,就是两个点一条线,为什么要用这个函数。DrawNode里面另一个函数能够用来画多角形,原型例如以下:

void drawPoly(const Vec2 *poli, unsigned int numberOfPoints, bool closePolygon, const Color4F &color);

这个函数參数有个bool closePolygon,能够用来画闭合或开放多角形,简直一步到位了。可是它不能设置线条粗细,画出来的线条非常细,默认的宽度,不太合适。

然后我採用了画线段的函数。将路径里面的点,循环取出来。两个点画一个线段。原型:

void drawSegment(const Vec2 &from, const Vec2 &to, float radius, const Color4F &color);

第一个參数。開始顶点,第二參数,目的顶点,第三个參数。线条宽度。第四个參数。线条颜色。

画完连线以后呢,将两个图标的数组置0,表示这里应该是消除掉了,是空格。

然后删除掉顶点数组,然后调清理图标的函数。

这个连连看的基本功能就完毕了。

后面还有倒计时。自己主动提示两个功能。那么一个完整的连连看就完毕了。

转载于:https://www.cnblogs.com/mfrbuaa/p/5176252.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云大数据计算服务MaxCompute(上篇)

关于阿里云大数据计算服务MaxCompute的详细内容&#xff1a; 阿里云大数据计算服务MaxCompute使用教程 &#xff08;MaxCompute&#xff08;原ODPS&#xff09;是一项大数据计算服务&#xff0c;它能提供快速、完全托管的PB级数据仓库解决方案&#xff0c;使您可以经济并高效的…

Vue3、TypeScript 实现图片数量及大小随宽度自适应调整

前言 过了这么久&#xff0c;想起自己还有个博客&#xff0c;更点内容吧&#xff01; 来&#xff0c;上需求&#xff01; 最近在做个前端界面&#xff0c;要求在一行中展示一些图片&#xff0c;展示的图片数量随着窗口宽度大小进行变化&#xff0c;除此之外还有以下要求&…

【tensorFlow】——图像数据增强、读取图像、保存图像

#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2021/4/13 10:54 # @Author : @linlianqin # @Site : # @File : 数据增强(distorted).py # @Software: PyCharm # @description:一些基于TensorFlow的数据处理方法import tensorflow as tf import cv2 im…

数据分析方法有哪些_数据分析方法

数据分析方法有哪些_数据分析方法 随着大数据的到来&#xff0c;数据分析师成为大数据时代一颗冉冉升起的新星&#xff0c;现在企业越来越重视大数据&#xff0c;数据分析师这个职业也成为企业争抢的对象。那么数据分析师的分析数据的方法都有哪些呢&#xff1f; 1、数据分析遵…

苹果Iphone/Ipad--L2T虚拟教程

1 Iphone和Ipad同为IOS&#xff0c;设置方法相同。首先进入IOS系统的“设置”程序。 2 点击“通用”进入通用设置&#xff0c;点击“”; 3 选择"添加设置 "&#xff1b; 4 选择L2TP方式&#xff0c;填写必要信息&#xff1a;描述、服务器地址 、您注册充值的账号及密…

记忆化搜索的应用

记忆化搜索的应用 一般来说&#xff0c;动态规划总要遍历所有的状态&#xff0c;而搜索可以排除一些无效状态。更重要的是搜索还可以剪枝&#xff0c;可能剪去大量不必要的状态&#xff0c;因此在空间开销上往往比动态规划要低很多。 如何协调好动态规划的高效率与高消费之间的…

【深度学习】——DNN后向传播、CNN后向传播文章汇总

深度神经网络&#xff08;DNN&#xff09;模型与前向传播算法 深度神经网络&#xff08;DNN&#xff09;反向传播算法(BP) 卷积神经网络CNN的前向和后向传播&#xff08;一&#xff09; 卷积神经网络CNN的前向和后向传播&#xff08;二&#xff09; 有batch normalization的卷积…

ajaxReturn 之前dump调试,导致$.ajax不能正常运行

ajaxReturn 之前dump调试&#xff0c;导致$.ajax不能正常运行 以后调试的时候&#xff0c;注意下这个情况转载于:https://www.cnblogs.com/bushe/p/5180317.html

Veebot-自动静脉抽血机器人

Veebot-自动静脉抽血机器人 我们可能都有过被抽血的经验。护士让你握紧拳头&#xff0c;用一根橡皮条压住你上臂的血管&#xff0c;在你的肘部内侧寻找你的静脉&#xff0c;有时还需要拍打几下&#xff0c;摸到隆起的静脉血管&#xff0c;一针下去。有时候碰到技术好的护士&…

idea 转普通项目为maven 项目

1、项目上右键 Add Framework Support。 2、选择maven&#xff0c;点击OK。 转载于:https://www.cnblogs.com/mayanze/p/8042489.html

HDOJ5547 SudoKu

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid5547 题目大意&#xff1a;填数独。。。 思路&#xff1a;爆搜 1 #include <stdio.h>2 #include <string.h>3 #include <iostream>4 #include <algorithm>5 using namespace std;6 boo…

【深度学习之ResNet】——深度残差网络—ResNet总结

目录 论文名称&#xff1a;Deep Residual Learning for Image Recognition 摘要&#xff1a; 1、引言 2、为什么会提出ResNet残差网络呢&#xff1f; 3、深度残差网络结构学习&#xff08;Deep Residual learning&#xff09; &#xff08;1&#xff09;残差单元 &#xf…

Atitit.  c# 语法新特性 c#2.0 3.0 4.0 4.5 5.0 6.0   attilax总结

Atitit. c# 语法新特性 c#2.0 3.0 4.0 4.5 5.0 6.0 attilax总结 1.1. C# 1.0-纯粹的面向对象 1.2. C# 2.0-泛型编程新概念 1.3. C# 2.0的另一个突出的特性就是匿名方法 1.4. C#3.0 linq 1.5. C# 4.0动态编程 dynamic 1.6. C# 4.5 异步编程 async和await 1.7. C# 5.0 更方便…

关于SafeMove White Paper功能

ABB机器人网站有一个 Safemove 功能的介绍&#xff0c;在Overview页面右半版有一篇文档是 SafeMove White Paper &#xff0c;在45页的 pdf 文档中&#xff0c;详细了介绍工业机器人的安全原则&#xff0c;以及ABB工业机器人自身 EPS (Electronic Position Switches) 和 SafeMo…

面试疑难点解析

List,Set,Map,有什么区别&#xff1f; List和Set实际上市实现了Collection接口&#xff0c;那么Collection接口的原理你能简单描述一下吗&#xff1f; List接口可以插入多个NULL值&#xff0c;并且重复值&#xff0c;而且LIST是一个有序的集合。 Set是一个不可重复的集合&#…

【深度学习】——日常知识点总结(持续更新)

设计卷积网络的原则&#xff1a; 1、最后转为一维有两种方式&#xff1a;1&#xff09;全局平均池化&#xff1b;2&#xff09;扁平化直接转化为一维的 2、在卷积层的大小变化时尽量保证特征图大小减小n倍时&#xff0c;特征图的个数也增加n倍&#xff0c;维持网络的复杂度&a…

主机无法访问虚拟机的httpd服务

症状&#xff1a;虚拟机装的centos6.3 通过桥接的方式与主机连接 虚拟机通过yum安装httpd服务 在主机浏览器中输入 虚拟机ip 无法访问虚拟机Apache 虚拟机和主机可以相互ping通 解决&#xff1a;关掉虚拟机的防火墙就可以了 命令setup进入防火墙管理 按空格键取消防火墙启用 转…

越狱Season 1- Episode 22: Flight

Season 1, Episode 22: Flight -Franklin: You know you got a couple of foxes in your henhouse, right? fox: 狐狸 henhouse: 鸡舍 你的队伍里都是一群狐狸 -Michael: They both want out of here. both: 两者都 他们都想出去 Theyll behave until then. behave: 举止端…

巴科斯范式BNF: Backus-Naur Form介绍

巴科斯范式(BNF: Backus-Naur Form. 的缩写)是由 John Backus 和 Peter Naur 首次引入一种形式化符号来描述给定语言的语法&#xff08;最早用于描述ALGOL 60 编程语言&#xff09;。 现在&#xff0c;几乎每一位新编程语言书籍的作者都使用巴科斯范式来定义编程语言的语法规则…

2017-2018-1 20155229 《信息安全系统设计基础》第十三周学习总结

2017-2018-1 20155229 《信息安全系统设计基础》第十三周学习总结 对“第二章 信息的表示和处理”的深入学习 这周的任务是选一章认为最重要的进行学习&#xff0c;我选择了第二章。当今的计算机存储和处理信息基本上是由二进制&#xff08;位&#xff09;组成&#xff0c;二进…