mirror of
https://github.com/genxium/DelayNoMore
synced 2024-12-26 11:48:56 +00:00
Simplified frontend handling of RoomDownsyncFrame.
This commit is contained in:
parent
c58e690a47
commit
70e552f5f0
@ -440,7 +440,7 @@
|
|||||||
"array": [
|
"array": [
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
216.50635094610968,
|
210.7364624020594,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
|
@ -454,7 +454,7 @@
|
|||||||
"array": [
|
"array": [
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
216.50635094610968,
|
210.7364624020594,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
|
@ -106,7 +106,7 @@ cc.Class({
|
|||||||
|
|
||||||
dumpToRenderCache: function(rdf) {
|
dumpToRenderCache: function(rdf) {
|
||||||
const self = this;
|
const self = this;
|
||||||
const minToKeepRenderFrameId = self.lastAllConfirmedRenderFrameId;
|
const minToKeepRenderFrameId = self.lastAllConfirmedRenderFrameId - 1; // Keep at least 1 prev render frame for anim triggering
|
||||||
while (0 < self.recentRenderCache.cnt && self.recentRenderCache.stFrameId < minToKeepRenderFrameId) {
|
while (0 < self.recentRenderCache.cnt && self.recentRenderCache.stFrameId < minToKeepRenderFrameId) {
|
||||||
self.recentRenderCache.pop();
|
self.recentRenderCache.pop();
|
||||||
}
|
}
|
||||||
@ -537,7 +537,7 @@ cc.Class({
|
|||||||
window.initPersistentSessionClient(self.initAfterWSConnected, boundRoomId);
|
window.initPersistentSessionClient(self.initAfterWSConnected, boundRoomId);
|
||||||
} else {
|
} else {
|
||||||
self.showPopupInCanvas(self.gameRuleNode);
|
self.showPopupInCanvas(self.gameRuleNode);
|
||||||
// Deliberately left blank. -- YFLu
|
// Deliberately left blank. -- YFLu
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -610,28 +610,32 @@ cc.Class({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
self.renderFrameId = rdf.id;
|
if (null == self.renderFrameId || self.renderFrameId <= rdf.id) {
|
||||||
self.lastRenderFrameIdTriggeredAt = performance.now();
|
// In fact, not having "window.RING_BUFF_CONSECUTIVE_SET == dumpRenderCacheRet" should already imply that "self.renderFrameId <= rdf.id", but here we double check and log the anomaly
|
||||||
// In this case it must be true that "rdf.id > chaserRenderFrameId >= lastAllConfirmedRenderFrameId".
|
self.renderFrameId = rdf.id;
|
||||||
self.lastAllConfirmedRenderFrameId = rdf.id;
|
self.lastRenderFrameIdTriggeredAt = performance.now();
|
||||||
self.chaserRenderFrameId = rdf.id;
|
// In this case it must be true that "rdf.id > chaserRenderFrameId >= lastAllConfirmedRenderFrameId".
|
||||||
|
self.lastAllConfirmedRenderFrameId = rdf.id;
|
||||||
|
self.chaserRenderFrameId = rdf.id;
|
||||||
|
|
||||||
if (null != rdf.countdownNanos) {
|
const canvasNode = self.canvasNode;
|
||||||
self.countdownNanos = rdf.countdownNanos;
|
self.ctrl = canvasNode.getComponent("TouchEventsManager");
|
||||||
}
|
self.enableInputControls();
|
||||||
if (null != self.musicEffectManagerScriptIns) {
|
self.transitToState(ALL_MAP_STATES.VISUAL);
|
||||||
self.musicEffectManagerScriptIns.playBGM();
|
self.battleState = ALL_BATTLE_STATES.IN_BATTLE;
|
||||||
}
|
|
||||||
const canvasNode = self.canvasNode;
|
|
||||||
self.ctrl = canvasNode.getComponent("TouchEventsManager");
|
|
||||||
self.enableInputControls();
|
|
||||||
if (self.countdownToBeginGameNode && self.countdownToBeginGameNode.parent) {
|
|
||||||
self.countdownToBeginGameNode.parent.removeChild(self.countdownToBeginGameNode);
|
|
||||||
}
|
|
||||||
self.transitToState(ALL_MAP_STATES.VISUAL);
|
|
||||||
self.battleState = ALL_BATTLE_STATES.IN_BATTLE;
|
|
||||||
self.applyRoomDownsyncFrameDynamics(rdf, self.recentRenderCache.getByFrameId(rdf.id - 1));
|
|
||||||
|
|
||||||
|
if (self.countdownToBeginGameNode && self.countdownToBeginGameNode.parent) {
|
||||||
|
self.countdownToBeginGameNode.parent.removeChild(self.countdownToBeginGameNode);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (null != self.musicEffectManagerScriptIns) {
|
||||||
|
self.musicEffectManagerScriptIns.playBGM();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.warn(`Anomaly when onRoomDownsyncFrame is called by rdf=${JSON.stringify(rdf)}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
// [WARNING] Leave all graphical updates in "update(dt)" by "applyRoomDownsyncFrameDynamics"
|
||||||
return dumpRenderCacheRet;
|
return dumpRenderCacheRet;
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -1050,12 +1054,13 @@ cc.Class({
|
|||||||
const [offenderWx, offenderWy] = self.virtualGridToWorldPos(offender.virtualGridX, offender.virtualGridY);
|
const [offenderWx, offenderWy] = self.virtualGridToWorldPos(offender.virtualGridX, offender.virtualGridY);
|
||||||
const bulletWx = offenderWx + xfac * meleeBullet.hitboxOffset;
|
const bulletWx = offenderWx + xfac * meleeBullet.hitboxOffset;
|
||||||
const bulletWy = offenderWy;
|
const bulletWy = offenderWy;
|
||||||
const [bulletCx, bulletCy] = self.worldToPolygonColliderAnchorPos(bulletWx, bulletWy, meleeBullet.hitboxSize.x * 0.5, meleeBullet.hitboxSize.y * 0.5), pts = [[0, 0], [meleeBullet.hitboxSize.x, 0], [meleeBullet.hitboxSize.x, meleeBullet.hitboxSize.y], [0, meleeBullet.hitboxSize.y]];
|
const [bulletCx, bulletCy] = self.worldToPolygonColliderAnchorPos(bulletWx, bulletWy, meleeBullet.hitboxSize.x * 0.5, meleeBullet.hitboxSize.y * 0.5),
|
||||||
|
pts = [[0, 0], [meleeBullet.hitboxSize.x, 0], [meleeBullet.hitboxSize.x, meleeBullet.hitboxSize.y], [0, meleeBullet.hitboxSize.y]];
|
||||||
const newBulletCollider = collisionSys.createPolygon(bulletCx, bulletCy, pts);
|
const newBulletCollider = collisionSys.createPolygon(bulletCx, bulletCy, pts);
|
||||||
newBulletCollider.data = meleeBullet;
|
newBulletCollider.data = meleeBullet;
|
||||||
collisionSysMap.set(collisionBulletIndex, newBulletCollider);
|
collisionSysMap.set(collisionBulletIndex, newBulletCollider);
|
||||||
bulletColliders.set(collisionBulletIndex, newBulletCollider);
|
bulletColliders.set(collisionBulletIndex, newBulletCollider);
|
||||||
// console.log(`A meleeBullet is added to collisionSys at currRenderFrame.id=${currRenderFrame.id} as start-up frames ended and active frame is not yet ended: ${JSON.stringify(meleeBullet)}`);
|
// console.log(`A meleeBullet is added to collisionSys at currRenderFrame.id=${currRenderFrame.id} as start-up frames ended and active frame is not yet ended: ${JSON.stringify(meleeBullet)}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -132,7 +132,7 @@ cc.Class({
|
|||||||
self.collisionSysMap.set(collisionBarrierIndex, newBarrier);
|
self.collisionSysMap.set(collisionBarrierIndex, newBarrier);
|
||||||
}
|
}
|
||||||
|
|
||||||
const startRdf = {
|
const startRdf = window.pb.protos.RoomDownsyncFrame.create({
|
||||||
id: window.MAGIC_ROOM_DOWNSYNC_FRAME_ID.BATTLE_START,
|
id: window.MAGIC_ROOM_DOWNSYNC_FRAME_ID.BATTLE_START,
|
||||||
players: {
|
players: {
|
||||||
10: {
|
10: {
|
||||||
@ -160,7 +160,7 @@ cc.Class({
|
|||||||
dirY: 0,
|
dirY: 0,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
self.selfPlayerInfo = {
|
self.selfPlayerInfo = {
|
||||||
id: 10
|
id: 10
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user