CN106861189A - 一种应用于消除类游戏中的边消边掉方法 - Google Patents
一种应用于消除类游戏中的边消边掉方法 Download PDFInfo
- Publication number
- CN106861189A CN106861189A CN201710041927.3A CN201710041927A CN106861189A CN 106861189 A CN106861189 A CN 106861189A CN 201710041927 A CN201710041927 A CN 201710041927A CN 106861189 A CN106861189 A CN 106861189A
- Authority
- CN
- China
- Prior art keywords
- state
- game
- elements
- flag bit
- drop
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/69—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by enabling or updating specific game elements, e.g. unlocking hidden features, items, levels or versions
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种应用于消除类游戏中的边消边掉方法,该方法首先创建所有游戏元素,并对每一个元素都设定状态标志位;其次根据玩家的操作移动元素,对被移动元素进行消除判定;然后对所有元素对象进行实时循环检测,具体为找出因为元素消除而产生的空白单元,使其上方元素掉落,另外对一些具有特定标志位的元素进行坐标检测以及消除判定等操作,直到所有元素完全掉落,退出循环;最后根据玩家的操作行为重新进行循环检测。本发明方法能够使得游戏中可消除的元素执行消除动作,可掉落的游戏元素执行掉落动作,两者相互独立,互不影响,从而产生元素边消边掉的消除效果,使得游戏画面更加顺畅,增强动画的流畅感。
Description
技术领域
本发明涉及基于cocos2d-x的移动游戏开发技术,尤其涉及消除类游戏的开发及应用。
背景技术
近年来,随着智能移动终端的迅速普及,移动游戏市场规模也逐年扩大。其中,消除类游戏的市场份额更是在所有游戏市场中占主导地位。越来越多的开发者开发了形态各异的消除类游戏,但本质上的算法都是基本相同的。绝大多数开发者在开发过程中都是采用传统的消除算法来控制游戏中所有元素对象的行为以及动画效果。但利用该算法实现的消除游戏在玩家体验效果上有较大的不足之处。
首先,在判定是否有元素可以消除的过程中,该算法必须对所有的游戏元素进行消除判定,工作量较大。其次,在产生消除动作之后,该算法也必须为所有游戏元素计算其应该在的坐标,随后将元素移动至该坐标上。该种方式在元素进行斜掉(空白单元利用其斜上方的元素进行补充)的动作上,只是单纯的直接将元素从原始坐标移动到目标坐标上,掉落的加速效果难以实现,没有逼真的掉落过程。而且对于一些特定场景消除后的掉落过程中,会出现不符合物理掉落规律的情况,且动画衔接难度很大,降低玩家的游戏体验。最后,对于游戏过程中的创建元素这一步骤,传统的算法在检测到消除之后的空白单元的个数之后,一次性创建相同个数的游戏元素,当出现需要创建过多数量新游戏元素时,游戏可能会发生卡顿,影响游戏的流畅性。
发明内容
本发明的目的在于针对现有技术的不足,提供一种应用于消除类游戏中的边消边掉方法。
本发明的目的是通过以下技术方案实现的:一种应用于消除类游戏中的边消边掉方法,在消除类游戏中,当游戏元素发生消除之后,留下的空白单元就会由其它元素掉落下来补充。该掉落方式主要分为三种:
正常掉落:空白单元正上方存在可以进行掉落的游戏元素,控制该元素执行掉落动作,补充空白单元。
顶掉:当空白单元处于游戏界面的最顶部,正上方已经不存在游戏元素时,将创建新的游戏元素进行掉落补充。该种掉落补充方式即为顶掉。
斜掉:斜掉出现在比较特定的场景中:
1.空白单元上方已经不存在游戏元素且无法创建新的游戏元素进行掉落补充。
2.空白单元上方的游戏元素无法移动即无法执行掉落动作。
当出现以上两种场景之一时,系统将会控制空白单元左上方或者右上方的游戏元素进行掉落补充。
考虑到以上三种掉落方式,本发明通过以下步骤实现:
步骤1:创建所有元素,默认所有元素处于完成掉落的状态;对每一个元素都设定两个标志位a,b用于标志元素此时所处的状态。
a:该标志位表明元素对象是否为刚刚掉落,a=1代表元素对象处于刚刚掉落状态;a=0代表元素对象不是刚刚掉落的状态。
b:该标志位只有当元素对象不是刚刚掉落(a=0)时才起作用:b=1代表元素对象处于完成掉落的状态;b=0代表元素对象处于正在掉落的状态。
步骤2:根据玩家的操作移动元素,判断被移动的元素对象周围是否产生消除动作,若可消除,则执行消除动作。
步骤3:对元素对象进行实时检测,在每一帧时间里做一次如下循环过程:
(1)遍历所有元素,找到标志位b的值为0的元素,获取该元素的当前坐标,判断该元素是否到达其目标坐标。若已经到达,则将该元素的标志位a置为1,代表其刚刚掉落;反之则不进行任何操作。
(2)遍历所有元素找出空白单元(已消除部分),使得其上方元素(正常掉落过程)或者是斜上方元素(斜掉过程)或者是新创建的元素(顶掉过程)进行掉落动作,且将空白单元所在的位置设定为该游戏元素掉落的目标坐标。若该掉落元素状态标志位a=1,则先将该标志位置为0,然后将标志位b置为0;若该元素标志位a=0,则直接将标志位b置为0表示该元素处于正在掉落状态。
(3)对刚刚掉落状态标志位a=1的元素进行消除判定,即判断该元素能否与周围的元素产生消除动作:若能,则执行消除动作,消除该元素所有属性并释放;若不能,则将该元素状态位a置为0,状态位b置为1表示该元素已经处于完成掉落的状态。
(4)直到所有元素的标志位都是b=1,退出该循环过程。
步骤4:根据玩家的操作行为重新回到步骤2以及步骤3进行循环检测。
本发明方法实现了游戏元素一边消除一边掉落的效果,使得游戏画面更加顺畅,增强动画的流畅感。而且游戏元素消除与掉落两者的动画效果叠加,使得游戏画面更加酷炫,增强玩家游戏体验。且与传统的消除方法相比,本发明方法具有如下优势:
1.增加了遍历元素的频率,但在每次遍历元素之后,只需要针对每次极少量的元素进行深层次的判定,判定其是否可以掉落或者是否可以产生消除动作等,减少了单次的工作量。
2.逻辑划分更为细致,对于游戏中后续出现的一些特殊场景或者特殊元素的消除效果(如直线消的效果等)更加易于实现。
3.针对游戏过程中的创建元素这一步骤,传统的算法是检测到消除之后的空白单元的个数之后,一次性创建相同个数的游戏元素。而本发明边消边掉方法则是只有游戏坐标的顶部出现空白单元需要元素掉落补充(顶掉)的时候才创建新的游戏元素,这就将创建新游戏元素的过程分为几个小步骤,减少每次创建的新游戏元素的数量,降低由于一次性创建过多新元素导致游戏卡顿的可能性。
4.对于传统算法在斜掉过程中出现的掉落动画效果不理想的问题,本发明边消边掉方法所控制的游戏元素掉落动画在所有场景下都能切实模拟物体在实际物理系统中的掉落过程,动画效果流畅感更好,在优化玩家游戏体验的同时,大幅降低了后续一些特定消除效果的实现难度。
附图说明
图1是本发明方法的基本流程图。
具体实施方式
下面结合附图对本发明作进一步说明。
首先针对图1中出现的游戏元素的状态做简要说明,游戏中的所有元素总共分为三种状态:
正在掉落状态:表示元素正在执行从其原始坐标移动到其目标坐标(原始坐标下方的空白单元)的掉落动作,即在算法每一帧的检测中,该元素还在移动过程中,并未到达其目标坐标。游戏中,只对该状态的元素进行实时坐标检测。
刚刚掉落状态:表示元素刚刚执行完毕一个掉落动作,即在算法每一帧的实时检测中,检测到正在掉落状态的游戏元素已经到达其目标坐标,则将该元素标记为刚刚掉落状态,并立即对它进行消除判定,若无法消除,则会将该元素标记为完全掉落状态,所以刚刚掉落状态是一个瞬时状态。算法每一帧循环中的消除判定也只作用于当前帧下具有该状态的元素。
完成掉落状态:经过消除判定之后无法进行消除的元素,且其坐标下方也没有空白单元时就处于完成掉落状态。在每一帧的循环里,算法对该状态下的元素不进行检测。只有当该元素下方出现空白单元需要其进行掉落了,元素状态才会发生改变。
下面结合附图对本发明方法的具体实施步骤做详细说明:
如图1所示,针对玩家进行一次操作,实施以下几个步骤:
步骤1:创建所有元素,默认所有元素处于完成掉落的状态。
步骤2:对每一个元素都设定两个标志位a,b用于标志元素此时所处的状态。
a:该标志位表明元素对象是否为刚刚掉落,a=1代表元素对象处于刚刚掉落状态;a=0代表元素对象不是刚刚掉落的状态。
b:该标志位只有当元素对象不是刚刚掉落(a=0)时才起作用:b=1代表元素对象处于完成掉落的状态;b=0代表元素对象处于正在掉落的状态。
步骤3:根据玩家的动作调换两个元素的坐标位置,判断被移动的元素对象周围是否产生消除动作,若可消除,则执行消除动作。若不可消除,则将两个元素坐标调换回来,等待下一次的玩家操作。
步骤4:对元素对象进行实时检测,在每一帧时间里完成一次如下循环过程:
(1)遍历所有元素,找到标志位b的值为0的元素,获取该元素的当前坐标,判断该元素是否到达其目标坐标。若已经到达,则将该元素的标志位a置为1,代表其刚刚掉落;反之则不进行任何操作。
(2)遍历所有元素找出空白单元(已消除部分),使得其上方元素(正常掉落过程)或者是斜上方元素(斜掉过程)或者是新创建的元素(顶掉过程)进行掉落,且将空白单元所在的位置设定为该游戏元素掉落的目标坐标。若该掉落元素状态标志位a=1,则先将该标志位置为0,然后将标志位b置为0;若该元素标志位a=0,则直接将标志位b置为0表示该元素处于正在掉落状态。
(3)对刚刚掉落状态标志位a=1的元素进行消除判定,即判断该元素能否与周围的元素产生消除动作:若能,则执行消除动作,消除该元素所有属性并释放;若不能,则将该元素状态位a置为0,状态位b置为1表示该元素已经处于完成掉落的状态。
(4)直到所有元素的标志位都是b=1,则退出该循环检测过程。
步骤5:针对玩家一次操作的算法执行结束。当游戏再次接收到玩家操作动作时将继续从步骤3开始执行。
Claims (1)
1.一种应用于消除类游戏中的边消边掉方法,其特征在于:该方法包括以下步骤:
步骤1:创建所有元素,默认所有元素处于完成掉落的状态;对每一个元素都设定两个标志位a,b用于标志元素此时所处的状态。
a:该标志位表明元素对象是否为刚刚掉落,a=1代表元素对象处于刚刚掉落状态;a=0代表元素对象不是刚刚掉落的状态。
b:该标志位只有当元素对象不是刚刚掉落(a=0)时才起作用:b=1代表元素对象处于完成掉落的状态;b=0代表元素对象处于正在掉落的状态。
步骤2:根据玩家的操作移动元素,判断被移动的元素对象周围是否产生消除动作,若可消除,则执行消除动作。
步骤3:对元素对象进行实时检测,在每一帧时间里做一次如下循环过程:
(1)遍历所有元素,找到标志位b的值为0的元素,获取该元素的当前坐标,判断该元素是否到达其目标坐标。若已经到达,则将该元素的标志位a置为1,代表其刚刚掉落;反之则不进行任何操作。
(2)遍历所有元素找出空白单元(已消除部分),使得其上方元素(正常掉落过程)或者是斜上方元素(斜掉过程)或者是新创建的元素(顶掉过程)进行掉落动作,且将空白单元所在的位置设定为该游戏元素掉落的目标坐标。若该掉落元素状态标志位a=1,则先将该标志位置为0,然后将标志位b置为0;若该元素标志位a=0,则直接将标志位b置为0表示该元素处于正在掉落状态。
(3)对刚刚掉落状态标志位a=1的元素进行消除判定,即判断该元素能否与周围的元素产生消除动作:若能,则执行消除动作,消除该元素所有属性并释放;若不能,则将该元素状态位a置为0,状态位b置为1表示该元素已经处于完成掉落的状态。
(4)直到所有元素的标志位都是b=1,退出该循环过程。
步骤4:根据玩家的操作行为重新回到步骤2以及步骤3进行循环检测。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710041927.3A CN106861189A (zh) | 2017-01-20 | 2017-01-20 | 一种应用于消除类游戏中的边消边掉方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710041927.3A CN106861189A (zh) | 2017-01-20 | 2017-01-20 | 一种应用于消除类游戏中的边消边掉方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106861189A true CN106861189A (zh) | 2017-06-20 |
Family
ID=59158498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710041927.3A Pending CN106861189A (zh) | 2017-01-20 | 2017-01-20 | 一种应用于消除类游戏中的边消边掉方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106861189A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108525297A (zh) * | 2018-03-07 | 2018-09-14 | 腾讯科技(深圳)有限公司 | 动画显示方法、装置、存储介质和电子装置 |
WO2019237842A1 (zh) * | 2018-06-15 | 2019-12-19 | 腾讯科技(深圳)有限公司 | 终端中的对局界面显示方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014041200A1 (en) * | 2012-09-17 | 2014-03-20 | King.Com Limited | A method for implementing a computer game |
CN105126344A (zh) * | 2015-08-11 | 2015-12-09 | 网易(杭州)网络有限公司 | 一种用于游戏的提示方法和装置 |
-
2017
- 2017-01-20 CN CN201710041927.3A patent/CN106861189A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014041200A1 (en) * | 2012-09-17 | 2014-03-20 | King.Com Limited | A method for implementing a computer game |
US20140080600A1 (en) * | 2012-09-17 | 2014-03-20 | King.Com Limited | System and method for playing games that require skill |
CN104798116A (zh) * | 2012-09-17 | 2015-07-22 | 金.Com有限公司 | 用于实现计算机游戏的方法 |
CN105126344A (zh) * | 2015-08-11 | 2015-12-09 | 网易(杭州)网络有限公司 | 一种用于游戏的提示方法和装置 |
Non-Patent Citations (1)
Title |
---|
黄宇: "《基于移动设备的三消类游戏的设计与实现》", 《硕士学位论文》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108525297A (zh) * | 2018-03-07 | 2018-09-14 | 腾讯科技(深圳)有限公司 | 动画显示方法、装置、存储介质和电子装置 |
CN108525297B (zh) * | 2018-03-07 | 2019-05-24 | 腾讯科技(深圳)有限公司 | 动画显示方法、装置、存储介质和电子装置 |
WO2019237842A1 (zh) * | 2018-06-15 | 2019-12-19 | 腾讯科技(深圳)有限公司 | 终端中的对局界面显示方法、装置、设备及存储介质 |
US11389723B2 (en) | 2018-06-15 | 2022-07-19 | Tencent Technology (Shenzhen) Company Limited | Method for displaying battle interface in terminal, device, and storage medium thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10282882B2 (en) | Augmented reality simulation continuum | |
US10878540B1 (en) | Contrast ratio detection and rendering system | |
CN108257103B (zh) | 游戏场景的遮挡剔除方法、装置、处理器及终端 | |
CN104469179B (zh) | 一种将动态图片结合到手机视频中的方法 | |
JP6904952B2 (ja) | 動き軌跡を決定する方法、及びユーザ機器 | |
CN105518743B (zh) | 深度图像的处理 | |
JP5044550B2 (ja) | ゲーム装置、ゲーム装置の入力方法及び入力プログラム | |
CN108022301A (zh) | 一种图像处理方法、装置以及存储介质 | |
CN107543530B (zh) | 用于测量球的旋转的方法、系统及非暂时性计算机可读记录介质 | |
CN103971399A (zh) | 街景图像过渡方法和装置 | |
CN107670279A (zh) | 基于WebGL的3D网页游戏的开发方法及系统 | |
US8237722B2 (en) | Systems and method for visualization of fluids | |
WO2016023971A1 (en) | Selecting objects on a user interface | |
CN108525299A (zh) | 一种用于增强远程服务的计算机应用的系统和方法 | |
CN106861189A (zh) | 一种应用于消除类游戏中的边消边掉方法 | |
CN104182950B (zh) | 一种图像处理方法及其装置 | |
CN107213636A (zh) | 镜头移动方法、装置、存储介质和处理器 | |
CN104784931A (zh) | 一种游戏对象的标识、选定方法及装置 | |
CN108421257A (zh) | 不可见元素的确定方法、装置、存储介质和电子装置 | |
CN110420445B (zh) | 一种基于增强现实的壁球训练方法及装置 | |
JP2023156453A (ja) | プログラム、情報処理装置、及び、情報処理方法 | |
JP5843217B2 (ja) | ゲームプログラム、ゲーム装置、及び、ゲームプログラムを記録した記録媒体 | |
TWI792090B (zh) | 提供動態決定遊戲區域與參加者數目之大逃殺遊戲之方法及使用該方法之伺服器 | |
KR100992420B1 (ko) | 그린 라이 표현을 위한 영상처리장치 및 영상처리방법 | |
CN107092492B (zh) | 虚拟对象的控制方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170620 |