cocos2dx3.X项目重写(三)按钮和跳跃

cocos2d-x精灵动作不执行解决方法 首先,先来看下代码: void GameEnemyBullet::setvisable() { this->setVisible(true); //设置精灵可见 isvisable=true; this->runAction(CCJumpTo::create(3, CCPointMake(500, 500), 30, 5)); //让精灵执行跳跃动作 C 阅读详情

/*********************************************************************************

关于换动作的bug
在动作实现函数里有这样一句话
SpriteFrameCache* frameCache1 = SpriteFrameCache::getInstance();
这个用完之后清空掉就可以了,否则下次用同样的代码执行别的动作时,SpriteFrameCache会保留以前的图片
frameCache1->removeSpriteFrames();

**********************************************************************************/

在3.x中,我选择Menu做按钮。

menu是菜单,新建一个菜单,然后绑定一个菜单项MenuItemImage就可以了,在MenuItemImage可以设置按钮的按下和普通的两种状态,以及回调函数,值得一提的是,3.x版本支持C++11的拉姆达表达式,也就是说,在回调函数这个参数上,不用再定义一个函数,可以在参数的位置上使用闭包函数。

	auto button_jump = MenuItemImage::create("button_jump.png",
                                                  "button_jump.png",
                                                   [](Ref* obj){log("XXXXXXXXXXXXXX");});
	 auto menu = Menu::create(button_jump, NULL);
	 this->addChild(menu);

拉姆达表达式中,[ ]中写&,就可以引入外部变量了,我们在里面写关于跳跃的功能,只需要在拉姆达表达式中加一句。

	[&](Ref* obj){player->getPhysicsBody()->setVelocity(Vec2(0,100));})
不getPhysicsBody是不行的,因为setVelocity方法是作用在node上。

设置世界重力

scene->getPhysicsWorld()->setGravity(Vect(0,-2000));
设置精灵不旋转

player->getPhysicsBody()->setRotationEnable(false);

但是当我做滑翔动作的时候我突然发现我去啊menu没有长按事件,只能试试用controButton了

addTargetWithActionForControlEvents,注意后面的s。

新的controlButton的写法如下

	ControlButton* button_slip=ControlButton::create(LabelTTF::create("  ","Maker Felt",30),Scale9Sprite::create("button_slip.png"));
        button_slip->addTargetWithActionForControlEvents(this,cccontrol_selector(Stage::button_slip_touchDown),Control::EventType::TOUCH_DOWN );
	 button_slip->setPreferredSize(Size(120,120));
	 button_slip->setPosition(100,100);
	 this->addChild(button_slip);

就是事件的第三个参数变了。看源代码就行。

注意回调函数button_slip_touchDown,声明时

<span style="background-color: rgb(255, 0, 0);">void button_slip_touchDown(Ref* pSender,Control::EventType event);</span>
暂时不知道addTargetWithActionForControlEvents的拉姆达表达式怎么写

如果你知道,请告之,




python.pygame.学习.跳跃游戏。 这是我学习python制作游戏的第3个代码。简单的跳跃小游戏 ,类似于是男人就上10000层, 运用简单的数学运算以达到跳跃目的, 主要运用sprite模块去制作。 未来大家可以继续加入更多的功能,有兴趣的同学可以加群634295212 一起讨论学习。参考分享或改进代码请注明原作者信息。 及新作者信息 立即下载

相关推荐

MiniMax H3本地部署与ComfyUI集成实战:从环境配置到提示词优化

文本到视频生成是AI内容创作领域的关键技术,它基于扩散模型等深度学习原理,将自然语言描述转化为连贯的动态视觉序列。这项技术的核心价值在于大幅降低了视频制作的门槛,为短视频创作、概念可视化、教育内容生成等场景提供了高效工具。在实际工程实践中,成功部署和运行此类模型,如近期备受关注的MiniMax H3,需要精准处理环境配置、显存优化和提示词工程等环节。其中,解决“CUDA error: no kernel image is available”等版本兼容性问题,以及针对“8G显存”等有限资源进行参数调优,是确

weixin_33674976的博客 479

Cocos Creator 3.x 物理引擎使用笔记

Cocos Creator 3.x 引擎物理材质参数 属性 描述 friction 摩擦系数 rolling friction 摩擦系数 spinning friction 旋转摩擦力 restitution 回弹系数 实现人物在斜坡能原地站立效果 在使用Dynamic(动力学)物理数值控制制作人物在地形上移动时,胶囊碰撞器默认物理材质的摩擦系数较小,人物在移动到有斜坡地形时,会随重力滑落很远。 为模拟现实中人物在斜坡地形上是可以原地停留的效果,需要添加一个自定义物理材质,

weixin_39324642的博客 1556

STM32L433使用DSP库配置过程

STM32L433中有FPU,在使用中为了使用其中的部分函数,需要对其进行配置。     配置成功后做些总结,留待后续复习备忘,同时也希望有朋友像我一样使用DSP库配置时少走弯路,留作交流。

在在在的博客 4551

【Cocos2dx】精灵触摸跳跃功能

用户触摸屏幕,然后游戏主角跳跃,或者你让它做其它的事情等,这也是在手游中极其常见的动作。 再Cocos2dx实现起来其实就是《【Cocos2dx】触摸事件》(点击打开链接)与《【Cocos2dx】基本动作、动作序列与动作合并》(点击打开链接)两者的结合,相当简单的。 下面用一个小例子说明这个制作过程: 触摸(点击)屏幕,我们的关闭按钮会上升一段距离,同时,在其“跳跃”的过程不会出现违

编程记录,亲测有效 4167

feko金属球远场RCS双站

feko金属球远场RCS双站

a264672的博客 6914

EMC系列EtherCAT总线运动控制器(二):Motion通讯连接、总线配置及诊断

雷赛-EMC系列EtherCAT总线运动控制器(二):Motion通讯连接、总线配置及诊断

weixin_38570076的博客 1889

Cocos Creator(一)物体的移动和跳跃

cc.Class({ extends: cc.Component, properties: { jumpHeight: 200, jumpDuration: 0.35, xSpeed : 350, }, onLoad () { // 初始化键盘输入监听 cc.systemEvent.on...

何必为部分生活而哭泣,君不见全部的人生都让人潸然泪下 6786

【Bug已解决】claude: command not found 解决方案

方案适用场景推荐指数添加 PATH全局 bin 目录确实存在但未加入 PATH⭐⭐⭐⭐⭐nvm 重新安装多 Node 版本切换导致失效⭐⭐⭐⭐⭐Windows 环境变量检查Windows 平台专用⭐⭐⭐⭐原生安装脚本想彻底避开 npm PATH 问题⭐⭐⭐⭐清理多重 Node 安装系统里有多套 Node 管理方式冲突⭐⭐⭐报错的核心是npm 全局安装的可执行文件路径没有正确出现在系统的 PATH 环境变量里,而不是安装本身失败了。

一键难忘的博客 1万+

cocos3.8 2D人物控制,人物移动、跳跃,人物碰撞,碰撞触发

记录而已本身菜鸡准备工作:地面和人物都得挂上碰撞体和刚体(要不然碰撞检测会报错):人物的刚体和碰撞体要进行下面两个设置:要不然会发现碰撞检测不触发或者人往墙上跳会粘着墙,

m0_61447433的博客 2806

手把手教你学 AI芯片 SOC软件开发专栏简介

在AI芯片(如NPU、GPU加速器)爆发式增长的今天,软件栈开发已成为AI应用落地的核心瓶颈。无论是模型推理加速、低延迟部署,还是能效优化,都依赖于对芯片底层软件的深度掌握。然而,许多开发者困于“只会调用API,不懂驱动实现”的困境,导致性能瓶颈难以突破。本专栏《手把手教你学 AI芯片 SOC软件开发》专为AI工程师、嵌入式开发者及系统架构师打造,从零基础切入,系统拆解AI芯片SOC(System on Chip)的完整软件栈,覆盖Runtime(运行时)

MHD0815的博客 172

【目标检测】全局上下文感知的详解

目标检测中的全局上下文感知(Global Context Awareness)​是指模型在定位和识别目标时,能够有效利用图像中全局或大范围的上下文信息(如场景语义、目标间关系、空间布局等),而不仅仅依赖局部特征。这种能力显著提升了检测的鲁棒性,尤其是在复杂场景(如遮挡、小目标、密集目标)中表现突出。

浩瀚之水的专栏 650

creator 跳跃弧线_(转)CocosCreator零基础制作游戏《极限跳跃》七、制作游戏结束场景并实现场景切换...

CocosCreator零基础制作游戏《极限跳跃》七、制作游戏结束场景并实现场景切换前面我们实现了游戏的碰撞检测,碰到障碍物我们的角色就会死掉并开始掉落,角色掉落到屏幕底部时候游戏结束,并跳到结束场景。我们在资源管理器新建GameOver场景。双击打开场景,调整大小为480x800,添加界面需要的节点。如图。这样我们的结束场景就制作好了。可以预览下。制作好了,结束场景我们就需要把我们游戏的三个场景...

weixin_42328834的博客 266

cocos2dx3.X项目重写(六)添加不同高度的地图和跳跃优化

cocos2dx3.X添加不同高度的地图和跳跃优化,按住跳更高功能,一次只能跳一下功能。

Fried_potatoes的专栏 1174

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

cocos2dx3.X项目重写(七)观察者模式以及schedule引起的bug

观察者模式以及schedule引起的bug

Fried_potatoes的专栏 1485

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

第十一节、创建人物跳跃动画

树的种类:1D(一维)参数不应该是X,重新设置参数,跳跃应该是 Y。

akjhgi的博客 321

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

cocos2d学习笔记1--动作(跳跃)

Cocos Creator 的 动作(Action)系统动作是什么动作方法ActionInterval 动作是什么 在 Cocos Creator 中,动作 简单来说就是 节点的位移、缩放和旋转。 动作方法 // 跳跃上升 var jumpUp = cc.moveBy(this.jumpDuration, cc.v2(0, this.jumpHeight)).easing(cc.easeCubi...

qq_41371197的博客 1006

【Cocos Creator实战】跳跃的肖恩

场景向前移动 移动到一定像素后,再回到原位 //不断修改x轴坐标 //获取当前节点x的坐标 var x = this.node.x; //x + 当前帧该移动的距离 x += this.speed*dt; //运行当前帧的时间 //当前位置小于重置位置,重置x if(x<=this.resetX){ x -= this.resetX; } this.node.x = x; ...

丶有时会悲伤的博客 1022

cocos creator 重写源码按钮Button点击音频封装

(function(){ var Super = function(){}; Super.prototype = cc.Button.prototype; //实例化原型 Super.prototype._onTouchEnded = function (t) { if (this.interactable &amp;&amp; this.enabledInH...

weixin_34000916的博客 1157

cocosCreator跳跃实现

//人物跳跃的实现 cc.Class({ extends: cc.Component, properties: { jumpDuration:0, jumpHeight:0, }, onLoad () { var isJump = false; //注册按键时间 cc.sys...

Fanstasic的博客 5613

用 Cocos Creator 制作平台跳跃游戏

前言 平台跳跃类游戏如《超级马里奥》《Celeste蔚蓝》等,非常考验玩家的操作和判断,有着非常本真的游戏乐趣。这类游戏乍一看,挺容易做的,但是要做好却不太容易。今天,我将使用 Cocos Creator v2.1.2 演示如何灵活快速地使用 Cocos Creator 来制作这类经典的横版平台跳跃类游戏,主要目的是帮助大家熟悉组件的用法,横版游戏实现方法很多,这里不做讨论! 开始游戏制...

Cocos的博客 6264

cocos2dx3.5 新增物理引擎分析

World 世界 物理刚体被添加到一个叫世界(World)的容器里,这也是它们被模拟的场所。将bodies,shapes,constraints这些对象添加到物理世界中,将整个物理世界作为一个整体进行更新。物理世界决定了所有这些部件在一起的互动方式。其中,用物理API实现的许多互动都是与PhysicsWorld这个对象有关的。 物理世界 物理世界(PhysicsWorld)对象是

TheClimb的池塘 1483

Cocos2d-x 3.x物理世界

Box2D 和 Chipmunk2D 是以往 cocos2d 中两款常用的物理引擎,这两个物理引擎精确的说是刚体物理仿真库,这里的物理就是刚体动力学。而我们在谈到这物理引擎的时候,经常会听到刚体(Rigid body)。那什么是刚体?刚体就是在任何外力的作用下,体积和形状都不发生改变的物体。动力学又是什么?动力学是计算刚体在受力作用下随时间移动并相互作用的一个过程。Box2D和Chipmunk2D两

一只程序猿 3025

cocos2d-x 物理引擎

你的游戏进展的很顺利。游戏中添加了精灵对象、游戏机制,你努力编码还是有回报的。你现在开始觉得:“嗯,这是一个能让人玩的游戏了”。当你意识到你的游戏需要模拟现实世界的物理环境时,你该怎么做呢?你会猜:应该会涉及到碰撞检测、重力、弹力和摩擦力。没错,猜对了!这一章就来讲物理引擎和如何使用物理引擎。让我们来探讨一下,我们什么时候、什么地点、为什么会使用物理引擎吧。 物理引擎很可怕,我真的需要它么?

z104207的专栏 1万+
上一篇: cocos2dx3.X项目重写(二)新的物理引擎
下一篇: cocos2dx3.X项目重写(番外篇)3.X打包apk的注意事项
Fried_potatoes
博客等级 码龄12年 5粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值