`
修博龙泉
  • 浏览: 318008 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

抛物线的精灵

 
阅读更多

//  抛物线

//mSprite:需要做抛物线的精灵

//startPoint:起始位置

//endPoint:中止位置

//dirTime:起始位置到中止位置的所需时间

- (void) moveWithParabola:(CCSprite*)mSprite startP:(CGPoint)startPoint endP:(CGPoint)endPoint dirTime:(float)time{

    float sx = startPoint.x;

    float sy = startPoint.y;

    float ex =endPoint.x+50;

    float ey =endPoint.y+150;

    int h = [mSprite contentSize].height*0.5;

    ccBezierConfig bezier; // 创建贝塞尔曲线

    bezier.controlPoint_1 = ccp(sx, sy); // 起始点

    bezier.controlPoint_2 = ccp(sx+(ex-sx)*0.5, sy+(ey-sy)*0.5+200); //控制点

    bezier.endPosition = ccp(endPoint.x-30, endPoint.y+h); // 结束位置

    CCBezierTo *actionMove = [CCBezierToactionWithDuration:time bezier:bezier];

    [mSprite runAction:actionMove];

}

 

 

//  抛物线运动并同时旋转

//mSprite:需要做抛物线的精灵

//startPoint:起始位置

//endPoint:中止位置

//startA:起始角度

//endA:中止角度

//dirTime:起始位置到中止位置的所需时间

- (void) moveWithParabola:(CCSprite*)mSprite startP:(CGPoint)startPoint endP:(CGPoint)endPoint startA:(float)startAngle endA:(float)endAngle dirTime:(float)time{

    float sx = startPoint.x;

    float sy = startPoint.y;

    float ex =endPoint.x+50;

    float ey =endPoint.y+150;

    int h = [mSprite contentSize].height*0.5;

    //设置精灵的起始角度

    mSprite.rotation=startAngle;

    ccBezierConfig bezier; // 创建贝塞尔曲线

    bezier.controlPoint_1 = ccp(sx, sy); // 起始点

    bezier.controlPoint_2 = ccp(sx+(ex-sx)*0.5, sy+(ey-sy)*0.5+200); //控制点

    bezier.endPosition = ccp(endPoint.x-30, endPoint.y+h); // 结束位置

    CCBezierTo *actionMove = [CCBezierToactionWithDuration:time bezier:bezier];

    //创建精灵旋转的动作

    CCRotateTo *actionRotate =[CCRotateToactionWithDuration:time angle:endAngle];

    //将两个动作封装成一个同时播放进行的动作

    CCAction * action = [CCSpawn actions:actionMove, actionRotate, nil];

    [mSprite runAction:action];

 

}

分享到:
评论

相关推荐

    二次抛物线拟合

    二次抛物线拟合 二次抛物线拟合是指使用抛物线来拟合数组中的某些点。抛物线拟合算法(Parabola fitting algorithm)是工程中最常见的一种方法。考虑到任何一组散射点都能用一个多项式函数来拟合,我们选择抛物线...

    cocos2dx射箭游戏

    本文将深入探讨如何利用Cocos2d-x来创建一个射箭游戏,包括射箭动作的模拟、箭的抛物线运动、动态状态变化以及碰撞检测与升级系统。 一、射箭动作模拟 射箭游戏的核心在于真实地模拟射箭动作。在Cocos2d-x中,我们...

    sprite kit"割绳子"游戏详解

    SpriteKit中的精灵是游戏中的图像表现,每个精灵可以有自己的一套物理属性。比如在割绳子游戏中,绳子、糖果、背景等都是精灵,它们具有不同的物理特征如质量、摩擦力、弹性等。 #### 6. 物理引擎的应用 物理引擎是...

    demo.rar_DEMO

    "demo.rar_DEMO"这个文件很可能是某个游戏开发者的演示作品,它实现了抛物线的动态功能,可以用于模拟物体的抛掷行为,比如在游戏中实现投掷、射击等动作的视觉效果。这种效果对于增加游戏的真实感和玩家的沉浸感至...

    贝塞尔曲线编辑器——个人版

    在游戏和动画中,贝塞尔曲线常用于角色移动路径、物体抛物线轨迹、UI动画过渡等。通过贝塞尔曲线编辑器,用户可以预览并微调曲线,确保动画的平滑度和自然感。在Cocos Creator中,编辑好的贝塞尔曲线可以作为精灵、...

    08 C++课程设计_弹弹堂.pdf

    当松开空格键,炮弹按照预设的抛物线轨迹发射。游戏中的物理模拟涉及到角度计算和力度对炮弹飞行轨迹的影响,这需要运用到C++中的数学运算和碰撞检测算法。 3. **游戏逻辑** 炮弹击中目标后,目标会进入损伤状态,...

    BezierCurvePathCreater:用于创建贝塞尔曲线路径,可匀速运动 - 基于CocosCreator_2.2.2 - Used to create a Bezier curve path with uniform motion Based on CocosCreator_2.2.2

    BezierCurvePathCreater 用于创建贝塞尔曲线路径,可匀速运动 - Used to create a Bezier curve path with uniform motion 更新日志: 2020.2.7: 新添加三阶贝塞尔曲线 平滑度自定义 该工程基于cocos creator 2.2.2...

    Crazy Duck

    在游戏中,鸭子的飞行轨迹、射击弹丸的抛物线以及鸭子被击中后的坠落,都可能利用物理引擎来模拟,增加游戏的真实感和趣味性。 此外,Coco2d还提供了音频管理、粒子系统、触摸事件处理、定时器等丰富功能。音频管理...

    基于cocos2d-x引擎实现飞机大战

    同时,敌机的运动轨迹也需要设计,可能是直线、抛物线或者更复杂的路径,这需要用到cocos2d-x的物理引擎或自定义的运动算法。 子弹的生成和管理同样关键。当玩家点击射击按钮时,游戏需要在飞机位置附近创建一个新...

    九年级上册数学第一次月考试题.docx

    7. 抛物线与x轴的交点:抛物线`y = ax^2 + bx + c`与x轴的交点个数由判别式决定。题目中要求找出与x轴有两个交点的抛物线。 8. 方程的根与函数值:已知二次函数`y = x^2 - 2x + 7`的函数值为8,求对应x的值,这可以...

    捕鱼达人.zip

    物理引擎在《捕鱼达人》中起到了关键作用,它负责模拟游戏内的物理行为,如鱼儿的自然游动轨迹、炮弹的抛物线飞行等。Cocos2d集成了Box2D物理引擎,通过设置物体的质量、摩擦力、弹力等参数,可以创建出逼真的物理...

    运球和投篮游戏.zip

    游戏可能包含了简单的物理模拟,比如篮球的抛物线轨迹,考虑重力的影响。这通常通过计算速度、加速度和碰撞来实现。 8. **碰撞检测**: `pygame.sprite.collide_mask()`或`collide_circle()`方法可以用来检测两个...

    使用Unity开发RPG游戏完整指南-图片资源

    14. **物理引擎**:虽然RPG游戏的物理交互可能较少,但Unity的物理引擎仍然可用于简单的碰撞反应或抛物线投掷效果。 15. **优化与性能**:最后,了解如何优化游戏性能,如降低纹理分辨率、使用LOD(细节等级)系统...

    基准:Vulkan渲染器

    聚光抛物线阴影贴图 屏幕空间环境光遮蔽(SSAO) 高清晰度屏幕空间反射(SSR) HDR Skybox和Bloom 基于物理的渲染(PBR)和基于图像的照明(IBL) 球形谐波辐照探头 粒子系统 指数高度雾 水和FFT海洋 骨骼动画 ...

    Cocos Creator 使用摇杆控制角色移动素材.zip

    Cocos Creator内置了多种缓动函数,例如线性、抛物线、回弹等,我们可以根据需求选择合适的缓动类型。 为了实现角色的碰撞检测和边界限制,我们需要利用Cocos Creator的物理引擎或者自定义碰撞检测逻辑。物理引擎如...

    AndEngine 射箭游戏示例

    在这款游戏中,箭矢的运动轨迹遵循物理学中的抛物线规律,这是通过AndEngine的物理模拟器实现的。AndEngine提供了Box2D物理库的封装,这是一个广泛用于游戏开发的开源物理引擎,能够处理物体之间的碰撞、重力以及...

    捕鱼达人cocos2dx实现

    通过设置重力、摩擦力等参数,可以让鱼在屏幕中自然移动,炮弹遵循抛物线轨迹飞行。 6. **音频管理(Audio Management)**: 游戏音效对于提升用户体验至关重要。Cocos2d-x内置了音频管理模块,可以方便地播放背景...

    cocos2d-x 黄金矿工大概版

    游戏的核心机制可能包括物理模拟(如抛物线运动)、碰撞检测、计分系统和时间限制等元素。 首先,我们需要了解Cocos2d-x的基本架构。Cocos2d-x提供了一个场景(Scene)和节点(Node)的概念,场景是游戏中的一个...

    捕鱼代码,无图片资源

    在游戏开发中,贝塞尔曲线常用于动画路径规划,如角色移动路径、物体抛物线轨迹等。开发者可能定义了一系列控制点,通过调整这些点的位置来调整鱼的游动路径。 4. **炮台开火角度运算**: 在捕鱼游戏中,炮台的射击...

    寂寞钓鱼源码.zip

    这需要编写复杂的逻辑来模拟这些行为,如抛物线运动、碰撞检测和随机生成鱼的算法。 4. **图形与动画**:源码可能包含游戏场景、角色和物品的2D或3D模型,以及它们的动画序列。开发者可能使用精灵表(Sprite Sheets...

Global site tag (gtag.js) - Google Analytics