Coder Social home page Coder Social logo

zhangbaron1 / cocos-creator-joystick Goto Github PK

View Code? Open in Web Editor NEW

This project forked from yunyoujun/cocos-creator-joystick

0.0 1.0 0.0 1.22 MB

Cocos Creator Joystick Demo 虚拟摇杆

Home Page: https://yunyoujun.github.io/cocos-creator-joystick/

License: MIT License

JavaScript 100.00%

cocos-creator-joystick's Introduction

cocos-creator-joystick

Cocos Creator 虚拟摇杆样例

GitHub package.json version Cocos Creator version GitHub top language GitHub code size in bytes

中文文档 | English Docs

在线预览: https://yunyoujun.github.io/cocos-creator-joystick/

使用

下载

Releases

通过文件导入

Cocos Creator v2.2.x -> 文件 -> 资源导出... -> 选择 -> assets/demo.fire Cocos Creator v2.2.x -> 文件 -> 资源导入...

通过 Git

git clone https://github.com/YunYouJun/cocos-creator-joystick.git

将其作为项目,通过 Cocos Creator v2.2.x 打开。

你可以在 demo 场景中查看样例。

功能

  • 虚拟摇杆类型
    • 固定
    • 跟随
  • 玩家
    • 旋转
    • 移动
  • 触摸感应位置(自定义 Joystick 宽高)
    • 全屏感应
    • 半屏感应

虚拟摇杆

属性 类型 默认值 描述 可自定义
joystickType JoystickType.FIXED / JoystickType.FOLLOW JoystickType.FIXED 虚拟摇杆类型
player cc.Node - 挂载要控制的玩家节点
playerPhysics cc.Node - 挂载要控制的玩家物理节点
area cc.Node - 摇杆触摸激活区域参考
ring cc.Node - 摇杆背景节点
dot cc.Node - 摇杆操纵点

玩家

属性 类型 默认值 描述 由虚拟摇杆控制 可自定义
moveDir Vec2 cc.v2(0, 1) // 竖直向上 初始移动方向
_speedType SpeedType.STOP / SpeedType.NORMAL / SpeedType.FAST SpeedType.NORMAL 速度类型 ×
_moveSpeed cc.Integer 0 移动速度 × ×
stopSpeed cc.Integer 0 停止时速度 ×
normalSpeed cc.Integer 100 正常速度 ×
fastSpeed cc.Integer 200 加快时速度 ×

项目结构

逻辑文件均位于 assets/script 目录下

文件名 描述 功能
Joystick.js 虚拟摇杆脚本文件 存储 Joystick 主逻辑
JoystickEnum.js 虚拟摇杆枚举文件 存储摇杆类型定义、事件定义
JoystickEvent.js 虚拟摇杆事件类 存储摇杆事件管理器
Player.js 玩家脚本文件 可根据需求通过 JoystickEvent 监听 JoystickEnum.JoystickEventType。(可根据需要自行修改删除)
PlayerPhysics.js 玩家脚本文件 可根据需求通过 JoystickEvent 监听 JoystickEnum.JoystickEventType。(可根据需要自行修改删除)
UI.js UI 提供在线预览页面,玩家切换摇杆类型功能。(不需要可直接删除)

新特性

  • 节点间解耦 通过 JoystickEvent.js 的观察者模式管理摇杆动作,需要知道摇杆操作动作的只需要监听事件,不需要暴露自己的节点给 Joystick.jsJoystick.js 只需要处理摇杆逻辑,假设有多个 player 需要知道摇杆的 touchStart,那么只需要监听 JoystickEnum.JoystickEventType.TOUCH_START 事件即可。

其他

欢迎 Star, Issues, Pull requests

推荐编码规范

开发

构建

npm run build

部署

npm run deploy

Todo

  • Write with TypeScript
  • Keep half screen layout (now is fixed width)
  • How about set dot as a child of ring?

cocos-creator-joystick's People

Contributors

ca39-quincy avatar yunyoujun avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.