Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使物体碰撞不影响重力/速度

使物体碰撞不影响重力/速度
EN

Stack Overflow用户
提问于 2018-05-23 10:01:04
回答 1查看 67关注 0票数 0

我有一组“平台”对象和“播放器”对象。平台对象应该有一个稳定的正y速度,但是当玩家物体与其中一个平台物体碰撞时,速度就会受到影响,并且会变成负值。有人知道怎么解决这个问题吗?

代码语言:javascript
运行
AI代码解释
复制
  var game = new Phaser.Game(800, 600, Phaser.AUTO, '', { preload: preload, create: create, update: update });

  var platforms;
  var player;
  var player1Bullets;

  function preload() {
          game.load.image('ground', 'assets/platform.png');
          game.load.spritesheet('dude', 'assets/doffaSmall.png', 57, 69);
  }

  var gameOver = false;
  var thing;
  var roofGroup;


  function CreatePlayer(name, x) {
        var chara = new APlayer(name, x);
        game.physics.arcade.enable(chara.character);
        chara.character.body.gravity.y = 20;
        chara.character.body.collideWorldBounds = true;
        chara.character.animations.add('left', [11, 12, 13, 14, 15, 16, 17, 18, 19, 20], 11, true);
        chara.character.animations.add('right', [8, 7, 6, 5, 4, 3, 2, 1, 0], 10, true);
        return chara;
  }


  function create() {

        game.physics.startSystem(Phaser.Physics.ARCADE);
    
        roofGroup = game.add.group();
        roofGroup.enableBody = true;
        var roof = roofGroup.create(0,0, 'ground');
        roof.scale.setTo(2,1);
        roof.body.immovable = true;
    
        platforms = game.add.group();
        platforms.enableBody = true;
        var ledge = platforms.create(100, 500, 'ground');
        ledge.scale.setTo(0.5, 0.5);
        platforms.addAll('body.velocity.y', -20)
        platforms.allowGravity = false;
        player = CreatePlayer('per', 96);

        player.leftKey = game.input.keyboard.addKey(Phaser.Keyboard.LEFT);
        player.rightKey = game.input.keyboard.addKey(Phaser.Keyboard.RIGHT);
        player.upKey = game.input.keyboard.addKey(Phaser.Keyboard.UP);
        player.shootKey = game.input.keyboard.addKey(Phaser.Keyboard.SPACEBAR);
        game.input.keyboard.addKeyCapture([ Phaser.Keyboard.LEFT, Phaser.Keyboard.RIGHT, Phaser.Keyboard.UP, Phaser.Keyboard.SPACEBAR, Phaser.Keyboard.W, Phaser.Keyboard.A, Phaser.Keyboard.D, Phaser.Keyboard.E  ]);
  }

  function killPlatform (platform, roof) {
       platform.kill();
  }

  function update() {
       if(platforms.countLiving() < 4) {
          var x = Math.floor((Math.random() * game.world.width) + 1);
          var ledge = platforms.create(x, game.world.height, 'ground');
          ledge.scale.setTo(0.5,0.5);
          platforms.addAll('body.velocity.y', -20);
         platforms.allowGravity = false;
    }
        game.physics.arcade.collide(platforms, roofGroup, killPlatform, null, this);
        player.move();
    }

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-29 10:05:09

我想你的意思是:球员站在地板上,因为碰撞,地板被向下推。如何使它稳定下来?

代码语言:javascript
运行
AI代码解释
复制
floor.body.immovable = true;

这里是一个精灵,但您可能也可以将其应用到组中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50494724

复制
相关文章
粗略的物体碰撞预测及检测
  该博客实时更新于我的Github。   在机器人局部路径规划中,需要实时躲避运动或者静态的障碍物,这个过程涉及到碰撞检测这个问题,本文主要讨论这个问题。   碰撞检测问题也是游戏开发中经常遇到的问题,一个游戏场景中可能存在很多物体,它们之间大多属于较远位置或者相对无关的状态,那么一个物体的碰撞运算没必要遍历这些物体,我们可以使用一个包围一个或多个物体的多边形来讨论碰撞问题,这样子可以节省重要的计算量和时间。   在真实的物理系统中,一般需要在运算速度和精确性上做取舍。尽管非常精确的碰撞检测算法可以
waylon
2018/03/08
2.8K0
粗略的物体碰撞预测及检测
Unity3D之Rigidbody
Rigidbody是Unity3D游戏引擎中的一个组件,用于模拟物理行为和运动。它可以给游戏对象应用真实的物理效果,如重力、碰撞、施加力等。通过使用Rigidbody,你可以创建更加真实和交互性强的游戏体验。
叶茂林
2023/07/30
6230
粗略的物体碰撞预测及检测
  该博客实时更新于我的Github。
waylon
2018/01/27
2K0
游戏开发中的物理之使用Area2D
Godot提供了许多碰撞对象以提供碰撞检测和响应。试图确定要为您的项目使用哪个选项可能会造成混淆。如果您了解每个问题的工作原理和优点和缺点,则可以避免这些问题并简化开发。在本教程中,我们将查看 Area2D节点并显示一些如何使用它的示例。
海拥
2021/08/23
8640
UIKit Dynamics 置身真实世界
前言: iOS的设计目标鼓励您创建数字接口(digital interface),对触摸,手势和方向的变化做出反应,就好像它们是物理对象而不仅仅是简单的像素集合。可以使用户可以通过皮肤深层的自身形态与界面更深层次的联系。 工具介绍: UIKit Dynamics是整合到UIKit中的完整物理引擎。它允许您通过添加重力,附件(弹簧)和力等行为来创建感觉真实的界面。您定义了您希望您的界面元素采用的物理特征,动力学引擎将照顾其余部分。 Motion Effects使您可以创建炫酷视差效果。基本上,您可以利用手
Dwyane
2018/05/22
1.3K0
unity3d:物体点击与拖动互不影响
立羽
2023/08/24
3190
unity3d:物体点击与拖动互不影响
LayaAirIDE的可视化2D物理使用文档
今天,又摘了一篇官网的文档,献给对2D物理还未入门或刚刚上手的开发者,已经熟悉的朋友们欢迎转发到微信朋友圈,让有需要的开发者看到。
Layabox Charley
2021/01/12
2.4K0
LayaAirIDE的可视化2D物理使用文档
Unity基础教程-物体运动(九)——游泳(Moving through and Floating in Water)
很多游戏都有水,并且大都是可以游泳的。然而,对于交互式水没有现成的解决方案。PhysX并不直接支持它,所以我们必须自己创造一个水的近似值。
放牛的星星
2020/11/25
1.9K0
Unity基础教程-物体运动(九)——游泳(Moving through and Floating in Water)
pygame-KidsCanCode系列jumpy-part3-重力及碰撞检测
这个游戏叫jumpy,大致玩法就是模拟超级玛丽一样,可以不停在各个档板上跳动,同时受到重力的作用,会向下掉,如果落下时,没有站在档板上,就挂了。
菩提树下的杨过
2019/09/12
8410
pygame-KidsCanCode系列jumpy-part3-重力及碰撞检测
Unity中进行碰撞检测的基本方法、原理与实现例子
Unity作为一款强大的游戏开发引擎,提供了物理引擎来实现2D碰撞检测和响应。下面将说明如何使用Unity的物理引擎来进行2D碰撞检测和响应,以及一些常用的物理属性。
一凡sir
2023/08/05
3.2K0
UIKit Dynamics:开始入门 —《Graphics & Animation系列一》
翻译自raywenderlich网站iOS教程Graphics & Animation系列 介绍 UIKit Dynamics是一个集成到UIKit中的完整物理引擎。它允许您通过添加诸如重力,附件(弹簧)和力量等行为来创建感觉真实的界面。您定义了您希望界面元素采用的物理特征,动态引擎负责其余部分。
Charlie_W
2018/10/19
1.9K0
UIKit Dynamics:开始入门 —《Graphics & Animation系列一》
Android--利用Box2d重力引擎打造小球碰撞效果
Box2d是一个强大的开源物理游戏引擎,使用c/c++编写,用来模拟2D的物体运动和碰撞。Box2D内部集成了大量的物理力学和运动学计算,内部实现很复杂,但是封装性很好,暴露给开发者的接口简单友好
aruba
2020/07/03
2.7K0
Android--利用Box2d重力引擎打造小球碰撞效果
SceneKit_入门10_物理世界
SceneKit_入门01_旋转人物 SceneKit_入门02_如何创建工程 SceneKit_入门03_节点 SceneKit_入门04_灯光 SceneKit_入门05_照相机 SceneKit_入门06_行为动画 SceneKit_入门07_几何体 SceneKit_入门08_材质 SceneKit_入门09_物理身体 SceneKit_入门10_物理世界 SceneKit_入门11_粒子系统 SceneKit_入门12_物理行为 SceneKit_入门13_骨骼动画 SceneKit_中级01_模型之间的过渡动画 SceneKit_中级02_SCNView 详细讲解 SceneKit_中级03_切换照相机视角 SceneKit_中级04_约束的使用 SceneKit_中级05_力的使用 SceneKit_中级06_场景的切换 SceneKit_中级07_动态修改属性 SceneKit_中级08_阴影详解 SceneKit_中级09_碰撞检测 SceneKit_中级10_滤镜效果制作 SceneKit_中级11_动画事件 SceneKit_高级01_GLSL SceneKit_高级02_粒子系统深入研究 SceneKit_高级03_自定义力 SceneKit_高级04_自定义场景过渡效果 SceneKit_高级05 检测手势点击到节点 SceneKit_高级06_加载顶点、纹理、法线坐标 SceneKit_高级07_SCNProgram用法探究 SceneKit_高级08_天空盒子制作 SceneKit_高级09_雾效果 SceneKit_大神01_掉落的文字 SceneKit_大神02_弹幕来袭 SceneKit_大神03_navigationbar上的3D文字
酷走天涯
2022/05/13
7180
SceneKit_入门10_物理世界
Unity基础(12)-物理系统
Unity是一款3D引擎软件,内置NVIDIA PhysX物理引擎,使3D物体具备物理属性,产生物理效果。
孙寅
2020/06/02
1.8K0
[学习笔记]unity3d-物理引擎(一)
刚体 简介 带有刚体组件的游戏物体。 add Compoment-physics-Rigidbody 刚体组件可使游戏对象受物理引擎控制,在受到外力时产生真实世界中的运动。 物理引擎:模拟真实世界中物体物理特性的引擎。 属性 质量 Mass:物体的质量。 阻力 Drag:当受力移动时物体受到的空气阻力。 0表示没有空气阻力。极大时可使物体停止运动,通常砖头0.001,羽毛设置为10。 角阻力 Angular Drag:当受扭力旋转时物体受到的空气阻力。 0表示没有空气阻力,极大时使物体停止旋转。
六月丶
2022/12/26
1.5K0
[学习笔记]unity3d-物理引擎(一)
iOS游戏开发之UIDynamic
iOS游戏开发之UIDynamic 简介 什么是UIDynamic UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架 可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象重力、弹性碰撞等现象 物理引擎的价值 广泛用于游戏开发,经典成功案例是“愤怒的小鸟” 让开发人员可以在远离物理学公式的情况下,实现炫酷的物理仿真效果 提高了游戏开发效率,产生更多优秀好玩的物理仿真游戏 知名的2D物理引擎 Box2d Chipmunk 使用步骤 要想使用UIDynamic来实现物理仿
用户1941540
2018/05/11
9440
十一、飞机大战(IVX 快速开发教程)
创建好游戏场景后在游戏界面中可以添加图片,作为游戏中的元素。点击图片组件在画布中绘制一个主角飞机。点击图片后在画布中拖动鼠标绘制区域后将会弹出资源选择框:
1_bit
2022/01/06
1.4K0
十一、飞机大战(IVX 快速开发教程)
游戏开发中的物理介绍
在游戏开发中,您通常需要知道游戏中的两个对象何时相交或接触。这就是所谓的碰撞检测。当检测到碰撞时,您通常希望发生某些事情。这就是所谓的碰撞响应。
海拥
2021/08/23
1.3K0
在Python游戏中模拟重力【Programming(Python)】
现实世界充满了运动和生活。 使现实世界变得如此繁忙和动态的是物理。 物理是物质在太空中移动的方式。因为电子游戏世界没有物理,它也没有物理,所以游戏程序员必须模拟物理。
Potato
2019/12/01
2.3K0
在Python游戏中模拟重力【Programming(Python)】
Unity零基础到入门 ☀️| 学会这些Unity常用组件,Unity中必备组件技能学习!
⭐️组件Component ????前言 ????简介 ????Unity工程结构 ????几种常用组件介绍 ????Transform组件 ????Mesh Filter(网格过滤器)和Mesh R
呆呆敲代码的小Y
2021/08/20
3.2K0
Unity零基础到入门 ☀️| 学会这些Unity常用组件,Unity中必备组件技能学习!

相似问题

libgdx:物体碰撞的速度损失

10

物体间的碰撞问题取决于物体的速度

25

物理引擎-确定碰撞后物体的速度

21

游戏物体与地面之间的碰撞是否与重力有关?

50

当玩家碰撞时使物体抖动

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档