123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- import { _decorator, CircleCollider2D, Component, find, log, Node, RigidBody2D, Vec2, Vec3 } from 'cc';
- import { EventManager } from './EventManager';
- import { PropBase } from './Prop/Base/PropBase';
- import { diban } from './Prop/Type/diban';
- import { DifficultyManager } from './DifficultyManager';
- import { AudioManager } from './Set/AudioManager';
- const { ccclass, property } = _decorator;
- @ccclass('RoleControl')
- export class RoleControl extends Component {
- @property(Node)
- Role: Node = null;
- @property(Node)
- LeftBtn: Node = null;
- @property(Node)
- RightBtn: Node = null;
- private Left_Right_Speed: number = 20;
- // G: number = 20;
- MyDir: number = 0;
- protected onLoad(): void {
- EventManager.instance.et.on(EventManager.EventType.Reset_Role, this.Reset_Role, this);
- EventManager.instance.et.on(EventManager.EventType.Die_Role, this.Die_Role, this);
- }
- Die_Role() {
- this.scheduleOnce(() => {
- this.Role.active = false
- }, 0)
- }
- Reset_Role() {
- this.Role.active = true
- let Nodes = this.getComponentsInChildren(PropBase).filter((item) => {
- return item.node.position.y < 0
- })
- let Nodes1 = Nodes.filter((item) => {
- return item.node.name == 'diban'
- })
- let SortNodes = Nodes1.sort((a, b) => {
- return a.node.position.y - b.node.position.y
- })
- let TempNode = SortNodes.pop()
- this.scheduleOnce(() => {
- this.Role.setPosition(new Vec3(TempNode.node.position.x, TempNode.node.position.y + 45, 0))
- this.Role.getComponent(RigidBody2D).linearVelocity = new Vec2(0, -DifficultyManager.G); // 速度值可以根据需要调整
- }, 0)
- }
- protected start(): void {
- this.Role.getComponent(RigidBody2D).linearVelocity = new Vec2(0, - DifficultyManager.G); // 速度值可以根据需要调整
- this.LeftBtn.on(Node.EventType.TOUCH_START, this.LeftStart, this);
- this.RightBtn.on(Node.EventType.TOUCH_START, this.RightStart, this);
- this.LeftBtn.on(Node.EventType.TOUCH_END, this.LeftEnd, this);
- this.RightBtn.on(Node.EventType.TOUCH_END, this.RightEnd, this);
- }
- LeftStart() {
- this.MyDir = -1
- }
- RightStart() {
- this.MyDir = 1
- }
- LeftEnd() {
- if (this.MyDir == 1) {
- return
- }
- this.MyDir = 0
- }
- RightEnd() {
- if (this.MyDir == -1) {
- return
- }
- this.MyDir = 0
- }
- updateTime: number;
- update(deltaTime: number) {
- this.updateTime += deltaTime;
- let _time = 1 / 60//60FPS
- if (this.updateTime < _time) return;
- this.updateTime = this.updateTime - _time;
- this.FixUpdate()
- }
- FixUpdate() {
- if (!this.Role.getComponent(RigidBody2D)) {
- return
- }
- switch (this.MyDir) {
- case 0:
- this.Role.getComponent(RigidBody2D).linearVelocity = new Vec2(0, -DifficultyManager.G); // 速度值可以根据需要调整
- break;
- case -1:
- this.Role.getComponent(RigidBody2D).linearVelocity = new Vec2(-this.Left_Right_Speed, -DifficultyManager.G); // 速度值可以根据需要调整
- break;
- case 1:
- this.Role.getComponent(RigidBody2D).linearVelocity = new Vec2(this.Left_Right_Speed, -DifficultyManager.G); // 速度值可以根据需要调整
- break;
- default:
- break;
- }
- }
- }
|