rapier2d示例
This commit is contained in:
87
tools/flashfin-rapier2d/assets/scripts/SceneMain.ts
Normal file
87
tools/flashfin-rapier2d/assets/scripts/SceneMain.ts
Normal file
@@ -0,0 +1,87 @@
|
||||
import { _decorator, Color, Component, instantiate, Label, Node, Prefab, Sprite } from 'cc';
|
||||
import * as cc from 'cc';
|
||||
|
||||
import { logger } from './Clogger';
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass('SceneMain')
|
||||
export class SceneMain extends Component {
|
||||
|
||||
@property(Node)
|
||||
node_fps:Node|null = null;
|
||||
|
||||
@property(Node)
|
||||
node_counts:Node|null = null;
|
||||
|
||||
@property(Prefab)
|
||||
prefab_item:Prefab|null = null;
|
||||
|
||||
@property(Node)
|
||||
container_balls:Node|null = null;
|
||||
|
||||
@property(cc.Node)
|
||||
node_switchscene:cc.Node|null = null;
|
||||
|
||||
private _timeAccumulator: any;
|
||||
private _countAcc: any;
|
||||
|
||||
private _listBalls: Node[] = [];
|
||||
|
||||
protected onLoad(): void {
|
||||
logger.log('dballs onLoad');
|
||||
|
||||
let p = cc.PhysicsSystem2D.instance;
|
||||
p.positionIterations = 4;
|
||||
p.velocityIterations = 2;
|
||||
|
||||
}
|
||||
start() {
|
||||
logger.log('dballs start');
|
||||
|
||||
// let n= this.node.getChildByName('ballitem')
|
||||
// let r = n.getComponent(cc.CircleCollider2D).radius
|
||||
// logger.log('radius:', r);
|
||||
|
||||
this.node_switchscene.on('click', (b:cc.Button) => {
|
||||
cc.director.loadScene('scene_rapier2d');
|
||||
});
|
||||
}
|
||||
|
||||
update(dt: number) {
|
||||
if (!this._timeAccumulator) {
|
||||
this._timeAccumulator = 0;
|
||||
}
|
||||
this._timeAccumulator += dt;
|
||||
|
||||
if (this._timeAccumulator >= 0.1) {
|
||||
this.node_fps.getComponent(Label)!.string = `FPS: ${Math.floor(1 / dt)}`;
|
||||
this._timeAccumulator = 0;
|
||||
}
|
||||
|
||||
if(Math.floor(1 / dt) < 30){
|
||||
return;
|
||||
}
|
||||
|
||||
if (!this._countAcc) {
|
||||
this._countAcc = 0;
|
||||
}
|
||||
// this._countAcc += 1;
|
||||
//每秒实例化添加5个node_item 到场景中,并且显示当前场景中的node_item数量
|
||||
// if (this._countAcc >= 60/60) {
|
||||
for (let i = 0; i < 4; i++) {
|
||||
let node = instantiate(this.prefab_item);
|
||||
node.getComponent(Sprite).color = new Color(Math.random()*255, Math.random()*255, Math.random()*255);
|
||||
this.container_balls.addChild(node);
|
||||
let x = (Math.random()*2-1)*cc.view.getVisibleSize().width/2;;
|
||||
node.setPosition(x, 400);
|
||||
this._listBalls.push(node);
|
||||
}
|
||||
this.node_counts.getComponent(Label)!.string = `BALLS: ${this._listBalls.length}`;
|
||||
this._countAcc = 0;
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user