cocos2d-remove和fastremove问题详解

2023-05-16

  在用CCARRAY_FOREACH的时候 

Ref * obj;

CCARRAY_FOREACH(obj,array){

...

} 当你在上面的宏里面执行remove的时候,在这一帧里面  头指针,和尾指针是不动的。

 所以当你用了array->remove( ... )函数,会导致移除后面的所有内容向前移动一位,那么尾指针,就为空了,在执行上面宏里面的循环的时候,会发现指针为空,会报错

 fastremove,是把尾指针的内容复制到 删除的那个位置,那么此时会同时存在两个相同的元素, 如果在执行某个操作的时候,可能会执行两次,会有不可预料的问题

 


有一种方法就是把要删除的元素赋值,在ARRAY_FOREACH 的外面执行 remove,这样在下一帧的时候,头指针和尾指针 就会重新赋值。一般这个ARRAY_FOREACH的宏是在 scheduleupdate里面的帧循环里面 定义的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cocos2d-remove和fastremove问题详解 的相关文章

  • 15.【cocos2d-x 源码分析】:localStorage的详细分析

    对应源码位置 xff1a cocos2d x 3 3 cocos storage local storage localStorage localStorage 的接口 cocos2d x提供了简单的本地数据存储的功能 xff0c 其主要是
  • 详解cocos2d帧率FPS

    详解cocos2d帧率FPS 最近在使用coco2d js写一个游戏的时候 需要将帧率实时显示出来 于是搜索了一下 获得FPS有下面几个方法 cc director getAnimationInterval cc director getS
  • ArrayList中remove(int index)方法中为什么不使用fastRemove方法?

    今天在看 ArrayList 源码时 xff0c 我发现了一个疑问 ArrayList 有两个删除的方法分别是 remove int index 和 remove Object o 方法 span class token keyword p
  • 【Cocos2d-x】Win7+ vs2012,2010 + Cocos2d-x2.2 配置Cocos2d-X项目-环境

    新安装搭建cocos2d X的跳过这里 xff0c 看下面红色开始 xff1a cocos2d x删除vs2012项目模板 这一步新使用cocos2d x的不需要 如果你切换cocos2d x版本的话 xff0c 要将之前版本的vs模板删除
  • Table.Rows.Remove(dr)和Table.Delete()的区别

    一个DataRow对象刚被创建之后其状态是Detached xff0c 是孤立的一个存在 xff0c 所以建立了DataRow之后在DataRow中的单元填充了数据后还要通过DataTable Rows Add DataRow 方法将此Da
  • 301. Remove Invalid Parentheses

    Remove the minimum number of invalid parentheses in order to make the input string valid Return all possible results Not
  • Linux_apt-get remove 与 apt-get autoremove、aptitude remove的不同

    apt get remove 与 apt get autoremove aptitude remove 的不同 apt get remove 的行为我们很好理解 xff0c 就是删除某个包的同时 xff0c 删除依赖于它的包 例如 xff1
  • C++的 remove函数

    一 介绍 remove函数原型如下 xff1a template lt class ForwardIt class T gt ForwardIt remove ForwardIt first ForwardIt last const T a
  • rm: cannot remove Permission denied 问题解决方法

    今天编译openwrt系统的时候 xff0c 碰到这样的问题 rm cannot remove xxx Permission denied 但是又不允许用root用户执行 xff0c 所以就要用root用户去修改权限 chmod 777 如
  • customEventData的普通用法

    需要先用event来接受一些其他信息 然后传入的数值放在参数中 类型按钮按下 TypeButtonDown event value console log 按下 console log value 然后再button这里设置好eventDa
  • 用最新版Android studio 打包发布cocos2dx c++(3.17.2)

    在参考了大量网上资料之后 得出的经验 工具和软件 1 cocos2dx 3 17 2 Cocos引擎 游戏开发引擎Cocos 引擎官方网站 Cocos Creator Cocos2d x 开源免费跨平台游戏开发引擎https www coc
  • 高质量程序设计指南C++ C 代码规范

    这里只是搬运作者对 匈牙利 命名规则做合理简化之后的命名规则 比较适合于 Windows应用程序的开发 建议1 类型名和函数名均以大写字母开头的单词组合而成 例如 class Node 类名 class LeafNode 类名 void D
  • [微信官方文档] 小程序-错误码信息与解决方案表

    错误码信息与解决方案表 错误码是通过binderror回调获取到的错误信息 代码 异常情况 理由 解决方案 1000 后端错误调用失败 该项错误不是开发者的异常情况 一般情况下忽略一段时间即可恢复 1001 参数错误 使用方法错误 可以前往
  • C++(19)——智能指针shared_ptr

    shared ptr的概念 shared ptr实现共享式拥有 shared ownership 概念 多个智能指针可以指向相同对象 该对象和其相关资源会在 最后一个引用 reference 被销毁 时候释放 基本原理 智能指针是 几乎总是
  • Cocos2d 中对图片的各种操作

    关于精灵的各种操作 总结一下以便以后复习查找 内容简要 1 初始化 2 创建无图的精灵 3 设置精灵贴图大小 4 添加入层中 5 对精灵进行缩放 6 对精灵款或高进行缩放 7 旋转精灵 8 设置精灵透明度 9 精灵的镜像反转 10 设置精灵
  • CocosCreator 长地图相机渲染不全

    记录一下 浏览器运行的时候用default是没有问题的 一旦给换成其他型号的屏幕尺寸 相机就加载不全 地图宛如断开了一样 但是地图里面的刚体什么的都还在 只是不显示 类似这个样子 搜索了一大圈 大概有这么多的可能 1 地图的图层是否有问题
  • 有关cocos2d创建c++项目,并把win32项目打包成apk文件

    首先进入cocos2d资源包文件夹例如 cd D Cocos Cocos2d x cocos2d x 3 10 再输入cocos new try项目名 p org cocos2dx 包名 l cpp d codes 创建cocos2d 3
  • Cocos2d-android游戏引擎

    什么是游戏引擎 游戏引擎是指一些已编写好的可编辑游戏系统或者一些交互式实时图像应用程序的核心组件 这些系统为游戏设计者提供各种编写游戏所需的各种工具 其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始 Cocos2d家族 coc
  • cocosCreator 之 ScrollView

    版本 3 4 0 参考 ScrollView组件 简介 ScrollView组件作为滚动容器来使用 它的实现通过ScrollBar组件来展示内容的位置和Mask组件显示指定区域 来保证有限的区域内显示更多的内容 它的构成部分 ScrollB
  • DragonBones tools龙骨转换spine工具使用

    附上仓库连接 如果进不去需要尝试墙 Tools README zh CN md at master DragonBones Tools GitHub 安装所需依赖 npm install dragonbones tools global 使

随机推荐

  • 使用windows引导的ubuntu双操作系统

    避坑指南 bios 取消安全boot 安全启动 快速启动 报rst错误的 把 bois 里的 SATA config 把inter 改为ahci 没报请无视 作为码农 xff0c 总会时不时的需要使用linux的开发环境 xff0c 使用虚
  • 想听一首歌好难?程序员教你一键下载

    1 首先要先安装一下Python第三方库 requests pip install requestsprettytable pip install PrettyTable 2 使用的开发环境 xff1a 版 本 xff1a python 3
  • 圣诞要到了~教你用Python制作一个表白神器——照片墙,祝你成功

    马上圣诞节 xff0c 快到了 xff01 又到了一年一度表白的时候了 今天教你一个程序员方式的表白 xff01 看一下效果图 xff1a 要什么样的 xff0c 图案都可以自定义的 首先 xff0c 准备阶段 收集你喜欢人 xff08 或
  • python字典遍历

    对python中的字典进行遍历操作 a span class token operator 61 span span class token punctuation span span class token punctuation spa
  • python读取文件指定行的三种方法

    1 行遍历实现 在python中如果要将一个文件完全加载到内存中 xff0c 通过file readlines 即可 xff0c 但是在文件占用较高时 xff0c 我们是无法完整的将文件加载到内存中的 xff0c 这时候就需要用到pytho
  • Python中五种方式拼接字符串的正确方法

    在学习Python xff08 3x xff09 的过程中 xff0c 在拼接字符串的时候遇到了些问题 xff0c 所以抽点时间整理一下Python 拼接字符串的几种方式 方式1 使用加号 43 连接 使用加号连接各个变量或者元素必须是字符
  • Python类与对象详解

    一 类和对象 类的意思 xff1a 种类 分类 类别 对象是特征与技能的结合体 xff0c 我可能有身高体重 而你也有身高体重 xff0c 所以你会说你像我 xff0c 但是你一定不会说你像阿猫阿狗 并且我和你其实就可以说成是一类 xff0
  • Python如何连接Mysql及基本操作

    1 什么要做python连接mysql xff0c 一般是解决什么问题的 做自动化测试时候 xff0c 注册了一个新用户 xff0c 产生了多余的数据 xff0c 下次同一个账号就无法注册了 xff0c 这种情况怎么办呢 xff1f 自动化
  • python中sort和sorted的高级排序技巧

    Python list内置sort 方法用来排序 xff0c 也可以用python内置的全局sorted 方法来对可迭代的序列排序生成新的序列 1 排序基础 简单的升序排序是非常容易的 只需要调用sorted 方法 它返回一个新的list
  • python用户定义的迭代器

    1 迭代器基于下面两个个方法 xff1a xff08 1 xff09 next 返回容器的下一个项目 xff08 2 xff09 iter 返回迭代器本身 2 当序列遍历完时 xff0c 将抛出StopIteration异常 xff0c 所
  • 虚拟机管理和虚拟机快照

    虚拟机管理 virt manager 开启图形管理工具 virt viewer vmname 显示虚拟机 vmname表示虚拟机名称 virsh list 列出正在运行的vm virsh list all 列出所有vm virsh star
  • 卷积神经网络中的图像特征——以YOLOv5为例进行可视化

    目录 一 图像特征1 图像低层特征2 图像高层特征3 示例 二 特征融合1 多尺度特征融合2 FPN 参考文章 一 图像特征 1 图像低层特征 图像低层特征指的是 xff1a 边缘 颜色和纹理等特征 低层特征的分辨率较高 xff0c 包含较
  • web端mpr(多平面重建)的实现

    mpr 二维多平面重建 Multiplanar reconstruction xff0c MPR 是被大量用于分析电脑断层扫描影像的技术 可用于在正交平面 冠状 矢状 轴向或倾斜 xff0c 选择任意平面 中重建影像 xff0c 这可以帮助
  • 带参数和不带参数装饰器区别

    usr bin env python 2 encoding utf 8 3 def start info 4 print 39 电视剧开头曲 39 5 print 39 开始唱歌 39 6 def end info 7 print 39 电
  • python字典get方法

    python中字典的get方法 xff0c 返回对应key的value值 xff0c 并可以指定默认值 a span class token operator 61 span span class token punctuation spa
  • Java中collection和collections的区别和作用

    其实很久之前就想写一篇了 xff0c 主要是加深印象 因为我一次面试的时候 xff0c 我和面试官侃侃而谈 xff0c 你一句啊我一堆 xff0c 你一句啊我一堆 xff0c 就在这时 xff0c 面试官让我谈谈collection和col
  • 关于阅读论文的一些感想

    关于阅读论文的一些感想 最近看了一些论文 xff0c 也和同学在交谈中学习到了一些关于阅读时应该有的态度 xff0c 这里记录一下 原文地址 xff1a https www yuque com lart papers dgrl EpF76
  • Centos 8中使用Packstack(RDO)快速安装openstack Victoria版

    OpenStack介绍 openstack详细介绍及常用命令请查看此文 通过Packstack RDO 部署OpenStack xff0c 官方文档点击此处查看 安装环境 工具 xff1a VMware Workstation 16 Pro
  • Ubuntu14.04安装内核

    0 前言 Ubuntu14 04安装Linux头文件 和 Ubuntu14 04安装Linux源码 分别介绍了Ubuntu14 04中安装Linux头文件和源码的方法 xff0c 这里进一步介绍安装Linux内核镜像的方法 1 安装内核镜像
  • cocos2d-remove和fastremove问题详解

    在用CCARRAY FOREACH的时候 Ref obj CCARRAY FOREACH obj array 当你在上面的宏里面执行remove的时候 xff0c 在这一帧里面 头指针 xff0c 和尾指针是不动的 所以当你用了array