首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏python知识

    碰撞检测

    碰撞检测在绝大多数的游戏中都是一个必须得处理的至关重要的问题,pygame的sprite(动画精灵)模块就提供了对碰撞检测的支持,这里我们暂时不介绍sprite模块提供的功能,因为要检测两个小球有没有碰撞其实非常简单

    1.3K30发布于 2021-05-19
  • 来自专栏下落木

    关于碰撞检测

    碰撞检测就是查看物体是否重合。 碰撞检测常用于游戏开发,通过碰撞检测判断前面是否有障碍物以及两个物体是否发生碰撞,根据检测的结果做出不同的处理。 下面是数学表达式: (x1 – x2)2 + (y1 – y2)2 <(r1 + r2) 3.矩形与圆碰撞 通过找到矩形上与圆形最近的点,判断其与圆心的距离,如果小于半径就碰撞 定义: 矩形上离圆心最近的点为变量 circle.r) return true // 发生碰撞 else return false // 未发生碰撞 4.圆形与旋转矩形 将矩形的旋转看成是画布的旋转,求出旋转前圆心坐标,就可以用圆形与矩形的碰撞检测

    1.5K10发布于 2021-10-13
  • 来自专栏HT

    基于 HTML5 Canvas 的 3D 碰撞检测

    本文例子:http://www.hightopo.cn/demo/3drotate/3d-rotate.html 首先让我们来看下这个案例: ? 左下角的是整个 3d 场景内的俯视图,这样我们可以非常直观地看清图元的移动方向和位置。 可能你会好奇这个是怎么俯视图是怎么放上去的?如果 3d 中的图元变化,这个俯视图中的图元也会跟着变化么? 好了,基础就是先布局,布 3d 场景,HT 在提供方法方面算是非常细致的了,平时我们生成网格可能就要花费一段时间,又是基础代码,新手开发人员都能很快上手呢~短短几行代码就能创建一个 3d 场景,简直太快 dm = new ht.DataModel(); g3d = new ht.graph3d.Graph3dView(dm); g3d.setGridVisible(true);//设置网格可视 g3d.setGridSize (m);//设置网格大小 g3d.setGridGap(w);//设置网格间距 g3d.setEye([-200, 150, 200]);//设置camera位置 g3d.getView().className

    1.3K50发布于 2018-01-03
  • 来自专栏用户2119464的专栏

    js实现碰撞检测

    碰撞检测 目录 代码实例 与简易拖拽的差异 下载源码链接 代码实例 <div id="box" style="background: #334;width: 100px;height: 100px Math.max(0, y), height) // 给元素及时定位 box.style.left = x + 'px' box.style.top = y + 'px' // <em>碰撞检测</em> document.body.scrollTop - document.body.clientTop } return { x: x, y: y } } })() 与简易拖拽的差异 简易拖拽的链接 简易拖拽 <em>碰撞检测</em> // <em>碰撞检测</em> // x坐标值的范围判断,y坐标值的范围判断 var judge_x = (x >= box2X - box2.offsetWidth) && (x <= box2X + box2.offsetWidth

    3.4K20发布于 2019-01-15
  • 来自专栏FEWY

    学习 PixiJS — 碰撞检测

    https://blog.csdn.net/FE_dev/article/details/87646110 说明 碰撞检测,用来检查两个精灵是否接触。 Pixi 没有内置的碰撞检测系统, 所以这里我们使用一个名为 Bump 的库,Bump 是一个易于使用的2D碰撞方法的轻量级库,可与 Pixi 渲染引擎一起使用。 使用 Bump 的碰撞方法 hit hit 方法是一种通用碰撞检测功能。它会自动检测碰撞中使用的精灵种类,并选择适当的碰撞方法。 查看示例 在碰撞检测时,Bump 的方法默认精灵是矩形的,使用矩形碰撞检测的算法,如果你想让方法把一个精灵当做圆形,使用圆形碰撞检测的算法,需要将精灵的 circular 属性设置为 true 。 hitTestPoint 最基本的碰撞检测是检查点对象是否与精灵碰撞。hitTestPoint 方法将帮助你解决这个问题。

    2.5K40发布于 2019-05-26
  • 来自专栏菩提树下的杨过

    pygame-KidsCanCode系列jumpy-part3-重力及碰撞检测

    self.update() self.draw() def update(self): self.all_sprites.update() # 碰撞检测 while g.running: g.new() g.show_go_screen() pg.quit() 这里使用到了spritecollide这个超级好用的方法,可以很轻松的搞定碰撞检测

    1K30发布于 2019-09-12
  • 来自专栏程序你好

    3D场景中物体模型选中和碰撞检测的实现

    3D场景中常用的一个需求就是鼠标在屏幕上点击特定位置,选中一个物体模型,进行下一步的操作。比如说移动、旋转变形或者改变物体模型渲染外观等等。具体怎么实现呢? 光线投射主要用于物体选择、碰撞检测以及图像成像等方面。 光线投射方法是基于图像序列的直接体绘制(Volume Rendering)算法。 我们使用上次场景里(如何实现一个3d场景中的阴影效果(threejs)?)的示例,增加鼠标点击选中物体模型,改变模型渲染颜色,及让模型向上移动一部分位置的功能。 ? if(JSON.stringify(intersects[ i ].face.normal) == JSON.stringify(new THREE.Vector3(0,0,1))) } if(JSON.stringify(intersects[ i ].face.normal) == JSON.stringify(new THREE.Vector3(

    3.2K20发布于 2021-07-23
  • 来自专栏web全栈

    js 动画:碰撞检测

    什么是碰撞检测   碰撞检测是指两个物体碰撞,或者图片发生重叠之后的检测,这种检测往往在优秀中用的最多,比如飞机大战,子弹与敌机的碰撞等等,这种碰撞一旦被检测到,往往会执行一些事件,比如游戏中的敌人死亡的动态效果 ,这就是碰撞检测。 下面是自己实现的两种碰撞检测碰撞检测_边缘检测 主要实现div块在上下左右运动中如果碰到边缘,就像相反的方向运动。 实现代码 <! btn2">好

    <script type="text/javascript"> var speedx=5; var speedy=3; top1 + height1 /2 } var center2={ x:left2 + width3

    6.7K30编辑于 2022-08-24
  • 来自专栏橙光笔记

    Canvas系列(17):碰撞检测

    碰撞检测顾名思义就是检测两个物体是否发生碰撞,今天我们就来研究一下常用的碰撞检测技术。主要有圆与圆的碰撞检测,长方形与长方形的碰撞检测,以及圆与长方形的碰撞检测。 ---- 圆与圆的碰撞检测 我们前几章,讲的都是小球相关的操作,这里的小球就是圆,那么首先讲的当然是圆的碰撞检测了。 在说碰撞检测之前我们先把拖拽相关的代码复制一份,这样我们就可以边拖拽边检测物体是否碰撞检测了。 长方形与长方形的碰撞检测 长方形与长方形的碰撞检测是FC游戏中用的最多的,FC好多游戏为了简化碰撞检测把一些看着不规则的物体也当做长方形来检测了,就是因为长方形好计算。 圆与长方形的碰撞检测 在类似于FC的游戏中,为了提高计算效率很少用到圆与长方形的碰撞检测,当然随着计算机性能的提高,圆与长方形的碰撞检测也变得越来越常见了。

    1K22发布于 2021-03-11
  • 来自专栏我和未来有约会

    不规则图形的碰撞检测

    public static class CheckHit { public static bool CheckCollision(FrameworkElement control1, FrameworkElement controlElem1, FrameworkElement control2, FrameworkElement controlElem2) { // first see if sprite rectangles collide Rect re

    1.4K100发布于 2018-01-16
  • 来自专栏叶子陪你玩编程

    pygame游戏精灵(上)-碰撞检测

    通过它可以很好的管理游戏角色,比如游戏角色的碰撞检测,游戏角色的增加与删除等。 常用方法 ---- pygame.sprite 模块包含很多的类以及一些方法。 常使用的有: 1.精灵类 pygame.sprite.Sprite() 单个游戏对象类 pygame.sprite.Group() 多个游戏对象类 2.两个精灵碰撞检测方法 pygame.sprite.collide_rect () 矩形检测 pygame.sprite.collide_circle() 圆形检测 pygame.sprite.collide_mask() 像素检测 3.多个精灵碰撞检测方法 ... pygame.draw.rect(screen, (255, 0, 0), candy.rect, 1) pygame.display.update() clock.tick(30) 矩形碰撞检测 像素碰撞检测可以解决那些不规矩的游戏角色,比例有些有些素材有边框等。

    2.7K31发布于 2021-10-11
  • 来自专栏游戏开发之旅

    unity中射线碰撞检测总结

    本文链接:https://blog.csdn.net/CJB_King/article/details/52091161 这阵子通过看视频,看书对unity中射线碰撞检测,有了一些了解,这里我把它总结一下写下来 ,希望能帮助到你们,也希望通过各位大神来指正不足之处; 射线碰撞检测,就是由某一物体发射出一道射线,射线碰撞到物体之后,可以得到该物体的相关信息,然后就可以对该物体进行一些操作的过程了。

    2.3K10发布于 2019-12-03
  • 来自专栏小徐学爬虫

    Livewires 与 Pygame 碰撞检测问题

    在使用 Python 进行游戏开发时,碰撞检测是一个常见的问题。尽管 Livewires 是一个较旧的库,它通常是在 Pygame 的基础上构建的,用于简化某些游戏开发任务。 如果大家在使用 Livewires 与 Pygame 进行碰撞检测时遇到问题,我可以提供一些基本的策略和解决方法。 碰撞检测问题:Chef 类中的 check_catch() 方法存在问题。if not self.bottom>games.screen.height: 语句检查的是厨师的底部是否不在屏幕高度之外。 对于更复杂的游戏,你可能需要使用更高级的碰撞检测技术,如空间划分(如四叉树)来提高性能。这些技术可以帮助减少需要检查的碰撞对数,从而在游戏中处理大量对象时提高效率。

    39710编辑于 2025-01-07
  • 来自专栏C++开发学习交流

    【Unity】碰撞检测并销毁Food

    } // Update is called once per frame void Update() { transform.Rotate(Vector3. up); //旋转效果 } } 碰撞检测并消掉Food 打开前面创建的小球运动Player脚本,修改如下(加上碰撞函数): 当检测到有“Food”标签的物体时,就会调用Destroy让这个物体消失 ; //rd.AddForce(Vector3.right); //施加1N(vector3.right left forward back) //rd.AddForce (new Vector3(10, 0, 0)); //自定义力 float h = Input.GetAxis("Horizontal"); //keyboard A/D~~~-1 float v = Input.GetAxis("Vertical"); //keyboard W/S~~~-1/1 //Debug.Log(h); (1,2,3)

    38010编辑于 2024-07-24
  • 来自专栏菩提树下的杨过

    FlashFlex学习笔记(41):碰撞检测

    碰撞检测基本上可能分为二类:对象与对象的碰撞检测、对象与点的碰撞检测 为了方便测试,先写一个box类(生成一个小矩形) package { import flash.display.Sprite; createBox(); } else{ for (var i:uint = 0; i < boxes.length; i++) { //每个正在下掉的物体与其它物体做(矩形)碰撞检测 答案就在于:Flash对象碰撞检测默认采用“对象的矩形边界”做为检测依据。 Math.random()*stage.stageWidth; ball.y=Math.random()*stage.stageHeight; ball.vx=Math.random()*6-3; ball.vy=Math.random()*6-3; addChild(ball); balls.push(ball); } addEventListener(Event.ENTER_FRAME

    1.2K90发布于 2018-01-19
  • 来自专栏菩提树下的杨过

    pygame 笔记-6 碰撞检测

    这一节学习碰撞检测,先看原理图: ?  2个矩形如果发生碰撞(即:图形有重叠区域),按上图的判断条件就能检测出来,如果是圆形,则稍微变通一下,用半径检测。 B碰撞时,有可能是A撞B,也有可能是B撞A,所以使用上面的函数时,最好写好 if collision_check(a,b) or collision_check(b,a): 为了方便观察,我们在上节的3个类文件 img_base_path + 'actor/R2.png'), pygame.image.load(img_base_path + 'actor/R3. img_base_path + 'actor/L2.png'), pygame.image.load(img_base_path + 'actor/L3. self.height = height self.path = [x, end] self.walkCount = 0 self.vel = 3

    1.4K40发布于 2018-12-28
  • 来自专栏WecTeam

    碰撞检测的向量实现

    注:1、本文只讨论2d图形碰撞检测。2、本文讨论圆形与圆形,矩形与矩形、圆形与矩形碰撞检测的向量实现 前言 2D游戏中,通常使用矩形、圆形等来代替复杂图形的相交检测。 因为这两种形状的碰撞检测速度是最快的。 向量 向量作为一种数学工具,在碰撞检测中发挥很大作用,后面的计算都是通过向量来完成,所以先来复习一下向量。 _A3,this. ——常见的2D碰撞检测 https://aotu.io/notes/2017/02/16/2d-collision-detection/index.html 码农干货系列【1】--方向包围盒(OBB)碰撞检测

    2K10发布于 2019-12-16
  • 来自专栏Coco的专栏

    CSS 也能实现碰撞检测

    看上去,我们好像使用 CSS 实现了碰撞检测。 然而,实际情况真的是这样吗?让我们一起一探究竟! 实现 X 轴方向的运动 这里其实我们并没有实现碰撞检测,因为小球和小球之间接触时,并没有发生碰撞效果。 我们只实现了,小球与边界之间的碰撞反应。 不过这里,也并非碰撞检测,我们只需要设置好单个方向的运动动画,并且设置 animation-direction: alternate; 即可! : 100px; height: 100px; border-radius: 50%; background: #0cf; animation: horizontal 3s ,那我们可以设置一个 steps(10) 的颜色动画,总时长为 30s,这样,每隔 3s 就会触发一次 steps() 步骤动画,颜色的变化就能够和小球与边界的碰撞动画发生在同一时刻。

    58640编辑于 2023-08-25
  • 来自专栏Python基础、进阶与实战

    Pygame入门2——动画、碰撞检测、输入

    4 if snail_rect.right <= 0: snail_rect.left = 800 screen.blit(snail_surface,snail_rect) 长方形的碰撞检测 Collsion 两个长方形之间碰撞检测: rect1.colliderect(rect2) 长方形和点的碰撞检测,这很适合检测鼠标和长方形的碰撞。 pygame.KEYDOWN: if event.key == pygame.K_SPACE and player_rect.bottom>=300: player_gravity -= 20 3.

    1.7K20编辑于 2022-12-06
  • 来自专栏每日一篇技术文章

    SceneKit_中级09_碰撞检测

    约束的使用 SceneKit_中级05_力的使用 SceneKit_中级06_场景的切换 SceneKit_中级07_动态修改属性 SceneKit_中级08_阴影详解 SceneKit_中级09_碰撞检测 08_天空盒子制作 SceneKit_高级09_雾效果 SceneKit_大神01_掉落的文字 SceneKit_大神02_弹幕来袭 SceneKit_大神03_navigationbar上的3D 文字 让学习成为一种习惯 前言 游戏中存在很多的碰撞,比如物体和物体的碰撞,物体和场景的碰撞,在这里我们不深究,碰撞检测的底层实现过程,苹果公司已经帮助我们封装好,我们只需要调用即可! diffuse.contents = UIColor.blue let boxNode = SCNNode(geometry: box) boxNode.position = SCNVector3(x: geometry: floor) scene.rootNode.addChildNode(floorNode) 准备工作这是时候就做完了,运行一下 让学习成为一种习惯 接下来说说碰撞的实现思路 第一种碰撞检测

    73910编辑于 2022-05-13
  • 领券