CocosCreator之KUOKUO教你如何用瓦片地图生成碰撞赛车道

2023-11-11

本次引擎v2.0.10

目标

瓦片地图生成碰撞赛车道

过程

首先
我们需要撸一个瓦片地图。
在这里插入图片描述
很简单的地图,分两层,墙和地面。

然后
在CocosCreator中直接拖进层级管理器就行。
在这里插入图片描述
然后你就会发现层自动形成节点并挂载组件了。
然后给wall和car加上刚体
注意墙是静态刚体,车是动态,并且方便测试我给它旋转了15度。
如下图:

在这里插入图片描述
在这里插入图片描述
最后
使用了getTileGIDAt这个方法,检测是否有瓦片。
还有就是坐标转化,比如最左上角的瓦片是 0 0 转化坐标为 -375 725。
因为地图我做的是 800 * 1500 的 瓦片 50 * 50 的。

const {ccclass, property} = cc._decorator;

@ccclass
export default class Main extends cc.Component {

    @property(cc.TiledLayer) wall: cc.TiledLayer = null;
    // 小车刚体
    @property(cc.RigidBody) car: cc.RigidBody = null;

    onLoad () {
        let p = cc.director.getPhysicsManager();
        p.enabled = true;
        p.debugDrawFlags = 1;
        // 关闭重力
        p.gravity = cc.v2(0, 0);
    }

    start () {
        // 地图为 16 * 30; 尺寸为 800 * 1500
        for (let i = 0; i < 16; i++) {
            for (let j = 0; j < 30; j++) {
                let n = this.wall.getTileGIDAt(i, j);
                console.log(n);
                // 如果存在瓦片,打印观察 n
                if (n != 0) {
                    // 计算位置, 800的一半是400 再加上方块长度的一半
                    let x = -400 + i * 50 + 25;
                    let y = 750 - j * 50 - 25;
                    // 加碰撞盒子
                    let p: cc.PhysicsBoxCollider = this.wall.node.addComponent(cc.PhysicsBoxCollider);
                    p.offset.set(cc.v2(x, y));
                    p.size.width = 50;
                    p.size.height = 50;
                    p.apply();
                }
            }
        }
    }

    update (dt) {
        // 一直给一个向前的力 测试用
        let hudu = cc.misc.degreesToRadians(this.car.node.rotation);
        let x = Math.sin(hudu);
        let y = Math.cos(hudu);
        this.car.applyForceToCenter(cc.v2(100 * x, 100 * y), false);
    }
}

效果

在这里插入图片描述
O(∩_∩)O~~
Get到没。

加我QQ群:(博客里面的项目,群文件里都有哦)
706176551
我们一起学习!
O(∩_∩)O~~

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

CocosCreator之KUOKUO教你如何用瓦片地图生成碰撞赛车道 的相关文章

  • CocosCreator之KUOKUO带你做小小PK(二)Boss血条与站桩挨打

    本次引擎2 0 5 编辑工具VSCode 目标 小小PK 二 血条素材 好了 我们接着上个教程 上一个教程我们做了 移动与跳跃还有攻击 但是只有主角一人是不是很尬 接下来让我们放入血条 放入Boss 血条的模式改为横向填充 然后把血条x方向
  • Cocos Creator 用JS脚本实现游戏背景的无限滚动

    首先是实现的一个原理 使用2张相同的图片 让它们在脚本中不停的移动 用y值的减少来实现 当有图片离开场景时 给此图片的y重新赋值 相当于位置的重置 在update中无限调用背景移动的函数 我的canvas 位于上方的图片结点名称为BG 下方
  • CocosCreator在Android和iOS双平台的双向调用

    由于感觉Cocos官方的文档写得有点不尽人意 所以在这里总结一下自己的经验 一 下面先写好CocosCreator调用原生端 iOS和Android CocosCreator代码 我们新建一个javascript文件 命名为 CallNat
  • 【cocos creator 3.x】精灵图片不显示

    精灵图片不显示 现象 原因 解决方案 现象 在cocos creator 3 2版本的使用中遇到了精灵图片无法展示的几个场景 在prefab某个node下Sprite的图片无法显示 动态加载prefab时 某些节点的图片无法显示 原因 图片
  • CocosCreator3.8研究笔记(一)windows环境安装配置

    一 安装Cocos 编辑器 1 下载Cocos Dashboard安装文件 Cocos 官方网站Cocos Dashboard下载地址 https www cocos com creator download9 下载完成后会得到CocosD
  • Cocos Creator 源码解读:siblingIndex 与 zIndex

    前言 本文基于 Cocos Creator 2 4 5 撰写 普天同庆 来了来了 源码解读 系列文章终于又来了 温馨提醒 本文包含大段引擎源码 使用大屏设备阅读体验更佳 Hi There 节点 cc Node 作为 Cocos Creato
  • Cocos Creator资源管理AssetManager细说一二

    关于AssetManager Asset Manager 是 Creator 在 v2 4 新推出的资源管理器 用于替代之前的 cc loader 新的 Asset Manager 资源管理模块具备加载资源 查找资源 销毁资源 缓存资源 A
  • CocosCreator中的Prefab文件格式总结

    CocosCreator所有的Prefab都是以下类似的格式 我们学会用文本编辑器查看Prefab文件 可以帮助我们更轻松的查找节点 查看节点和组件信息 批量修改节点和组件信息等等 因为在文本编辑器中的Prefab文件才是原始的 而且Coc
  • CocosCreator3.8研究笔记(二)windows环境 VS Code 编辑器的配置

    一 设置文件显示和搜索过滤步骤 为了提高搜索效率以及文件列表中隐藏不需要显示的文件 VS Code 需要设置排除目录用于过滤 比如 cocoscreator 中 编辑器运行时会自动生成一些目录 build temp library 所以应该
  • CocosCreator中TiledMap简单使用

    在开发游戏过程中 有时候会用到TiledMap 瓦片地图 我这边使用的是1 4 3版本的tiledmap 2 3 4版本的CocosCreator 其他版本的tiledmap会有做不了动画的问题 后面会说到 视频参考 B站UP主 阿信OL
  • javascript全局异常监听

    不管我们用javascript做什么开发 总会出现项目运行异常 甚至crash 这个时候 我们希望不只是javascript会打印一行日志 而是可以出现一个弹窗或者其他的一些让我们开发者更能直接获取到的信息 对于这个需求 javascrip
  • CocosCreator ios 使用sdl库找不到arm64指令集

    关于sdl如何打包成ios库 android库的问题 之后会有相关文章介绍 现在先说一下CocosCreator在使用xcode运行过程中 会报的一个错 Undefined symbols for architecture arm64的错误
  • CocosCreator3.0加载远程图片资源

    在微信小游戏平台 需要获取了微信头像 对于这个需求 需要这样来做 获取微信用户信息 得到微信小游戏头像的http地址 在Cocos引擎使用loadRemote来加载 这其中的问题在于 使用loadRemote加载时获得的对象和2 x的版本不
  • CocosCreator之KUOKUO教你如何用瓦片地图生成碰撞赛车道

    本次引擎v2 0 10 目标 瓦片地图生成碰撞赛车道 过程 首先 我们需要撸一个瓦片地图 很简单的地图 分两层 墙和地面 然后 在CocosCreator中直接拖进层级管理器就行 然后你就会发现层自动形成节点并挂载组件了 然后给wall和c
  • CocosCreator之KUOKUO带你入门3D小游戏-躲避方块

    本次引擎2 1 0 编辑工具VSCode 目标 3D小游戏躲避方块 2 1 0版本已经出来好几天了 虽然有些地方还不够完善 但是毕竟是能写3D游戏了 简单的来写一个 嘻嘻 console log 滑稽 准备好了吗 GO 新建个工程 然后把画
  • 解决window平台下cocos creator 构建发布面板打开后无法显示问题

    项目场景 creator构建发布界面 问题描述 window平台下cocos creator 构建发布面板打开后无法显示 原因分析 项目的配置文件目录setting和local目录内容混乱可能会导致该问题 这时候后重装creator也是没用
  • TypeScript 自定义数组排序

    TypeScript 自定义数组排序 前言 代码 基本原理 基本类型排序 复杂类型排序 前言 对列表进行排序 根据自定义规则 代码 基本原理 sort使用属性相减 a b 获取一个基本类型 1 0 1 如果小于0则将元素放到前面 如果大于0
  • CocosCreator接入GoogleAdMob激励广告

    我们的App需要通过接入广告的方式来赚取收入 其中GoogleAdMob就是比较简单容易实现的一种 我在文章中接入GoogleAdmob的方式是通过AndroidStudio原生来接入的 一 前提条件 使用 Android Studio 1
  • Cocos Creator 如何处理物理和碰撞检测?

    Cocos Creator 如何处理物理和碰撞检测 cocos creator 版本 v3 6 1 Cocos Creator 3 x 实现碰撞检测 Cocos Creator 通过使用物理引擎来处理物理和碰撞检测 Cocos Creato
  • CocosCreator之KUOKUO带你做小小赛车-摄像机跟随

    本次引擎2 0 5 编辑工具VSCode 目标 小小赛车 先亮素材 很简单 就两个 爱给网中的赛道 以及一个小车 好了 让我们新建工程然后把赛道放进去 调整方向与大小 然后把小车拖上去 这样 我是把赛道放大了2倍 旋转了90度 拖一拖位置

随机推荐

  • python 描述符

    目录 引入 什么是描述符 描述符类型 共享陷阱 应用场景 验证器 ORM 描述符是 Python 语言中一个强大的特性 它隐藏在编程语言的底层 为许多神奇的魔法提供了便利 引入 假设你需要一个学生类 来记录考试的分数 简单写如下 class
  • C程序-2018年第九届蓝桥杯B组-第三题:乘积尾零

    如下的10行数据 每行有10个整数 请你求出它们的乘积的末尾有多少个零 5650 4542 3554 473 946 4114 3871 9073 90 4329 2758 7949 6113 5659 5245 7432 3051 443
  • 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它 将会被按顺序插入的位置,你可以假设数组中无重复元素.(二分法)

    class Solution public int searchInsert int nums int target int left 0 right nums length 1 int mid 1 while left lt right
  • K-近邻算法之鸢尾花实例 使用Spark实现KNN的Demo

    1 1 K 近邻算法 KNN 概念 K Nearest Neighbor算法又叫KNN算法 这个算法是机器学习里面一个比较经典的算法 总体来说KNN算法是相对比较容易理解的算法 定义 如果一个样本在特征空间中的k个最相似 即特征空间中最邻近
  • 前端系列之jQuery(jQuery弹出层)

    弹出层与使用场景介绍 弹出层代码编写 html整体结构 div class layer mask div div class layer pop div class layer close div div class layer conte
  • 堆排序heapsort

    class declspec dllexport HeapSort public HeapSort int a int len HeapSort void AdjustHeap private int array int length vo
  • 应用程序的两种架构(c/s两层 b/s三层)2

    C S架构是客户端 Client 服务器 database Server 架构 B S是浏览器 Broswer 服务器 web Server database Server 架构 实际上B S架构也算是C S架构 是为了区分一下 一般来说把
  • 基于springboot的幼儿园管理系统

    基于springboot的幼儿园管理系统 项目介绍 幼儿园管理系统 java项目 springboot项目 eclipse和idea都能打开运行 推荐环境配置 eclipse idea jdk1 8 maven mysql 前端技术 Lay
  • 接口自动化面试题汇总,Offer快到碗里来

    一 请问你是如何做接口测试的 大体来说 经历以下过程 接口需求调研 接口测试工具选择 接口测试用例编写 接口测试执行 接口测试回归 接口测试自动化持续集成 具体来说 接口测试流程分成以下九步 第一步 分析出测试需求 并请开发提供接口说明文档
  • Python的关键字和builtins模块

    关键字 from keyword import kwlist print kwlist 于是得到了长度为33的list False None True and as assert break class continue def del e
  • java计算1-100之间的素数和(详细版)

    一 素数概念 除了一和自己本身外不能被其他数整除 并且素数大于1 二 解题思路 1 首先定义一层外层循环 表示1 100之间的每一个数 2 定义一个内层循环 范围大于1 小于外层循环 相当于被外层循环一个一个整除 看是否能除尽 例如外层循环
  • websocket介绍

    偶然在知乎上看到一篇回帖 瞬间觉得之前看的那么多资料都不及这一篇回帖让我对 websocket 的认识深刻有木有 所以转到我博客里 分享一下 比较喜欢看这种博客 读起来很轻松 不枯燥 没有布道师的阵仗 纯粹为分享 废话这么多了 最后再赞一个
  • matlab的narx的使用,matlab NARX做时间序列预测的问题

    NARX 神经网络做一个时间序列预测的时候碰到一些问题 1 目标 用input 178 2 预测output 178 1 数据和程序附后 2 问题 1 训练不多几次就会出现的时候 Maximum MU reached 从而训练停止 这个该如
  • 在Asp.net页面中实现数据饼图

    ASP NET之所以能够在客户端浏览器中形成各种数据图片 是因为在ASP NET中提供了绘图功能 具体的作法是先在服务器端创建一个Bitmap实例 然后利用ASP NET中提供的绘图功能 按照要生成的图片的模样 进行绘制 最后把绘制好的实例
  • 城市内涝地埋式积水监测系统解决方案

    一 方案背景 近 20 年来 我国城市化进程加快 城市地区由于人口密集 物资财产密度不断加大等特点 高强度暴雨积水形成的洪涝灾害对城市化地区产生的威肋和带来的狠失愈来愈大 由于城市的不断扩建 使工业区 商业区和居民区等不渗水的面积越来越大
  • MySQL8.0.28安装教程

    MySQL8 0 28安装教程 一 下载并配置安装文件 1 进入官网下载mysql安装包 2 解压安装包 如下图所示 3 添加配置文件my ini 新建一个文本文件 将下列内容复制到文件中 并将文件另存为 ini格式 mysqld 设置33
  • Oracle 存储过程动态sql 中出现 日期格式 中文及符号等的处理 多重for循环

    最近针对一个多维度业务逻辑写了一个存储过程 遇到的问题留存以下 1 声明的变量 长度不够导致 这个当时客户不提供debug权限 无法查到问题 可通过 plsql 文件 命令窗口 exec 存储过程名称 可以大致拿到错误原因 写一点测试一点
  • unity3d Animator,Animation动画相关笔记

    Animation是一个动画效果 比如一个攻击动画 奔跑动画 AnimatorController是多个animation的集合 并且能够控制在多个animation之间切换展示 因此 双击一个AnimatorControllers类能看到
  • 华为路由交换设备配置综合实验(实验六合一)

    华为路由交换设备配置综合实验 单臂路由 三层交换 动静路由 VRRP路由 DHCP中继 捆绑Etrunk链路 实验六合一 实验拓扑图 目的 实现全网各个PC之间的互联互通 全部实验脚本如下 以下脚本直接复制即可使用 一 实现右部DHCP中继
  • CocosCreator之KUOKUO教你如何用瓦片地图生成碰撞赛车道

    本次引擎v2 0 10 目标 瓦片地图生成碰撞赛车道 过程 首先 我们需要撸一个瓦片地图 很简单的地图 分两层 墙和地面 然后 在CocosCreator中直接拖进层级管理器就行 然后你就会发现层自动形成节点并挂载组件了 然后给wall和c