cameraSwayFactor = 0;
}
let cameraX = -5;
+ let cameraY = 0;
if(game.ui.currentPage == 'title') {
if(!game.ui.reachedEnd) {
game.objects.feather.position.set(cameraX - 8.45, -game.courseRadius - 6.4, -9.9);
} else {
cameraX = 5;
}
+ if(!game.ui.reachedStart) {
+ if(game.timeProgress < 1) {
+ game.ui.root.querySelector('.ui-page.title h1').style.opacity = '0';
+ game.ui.root.querySelectorAll('.ui-page.title button').forEach((btn) => {
+ btn.disabled = true;
+ btn.style.position = 'relative';
+ btn.style.left = '10em';
+ btn.style.opacity = '0';
+ });
+ game.ui.root.querySelector('.ui-page.title .footer').style.opacity = '0';
+ cameraX += Math.max(0.0, 1 - easeInOut(0.5 + game.timeProgress / 2));
+ cameraY += Math.max(0.0, 10 * Math.pow(0.5 - game.timeProgress / 2, 2));
+ } else if(game.timeProgress >= 1.0 && game.timeProgress <= 2.1) {
+ game.ui.root.querySelector('.ui-page.title h1').style.opacity = Math.min(1.0, game.timeProgress - 1.0).toFixed(2);
+ }
+ if(game.timeProgress >= 1.5 && game.timeProgress <= 3.0) {
+ game.ui.root.querySelectorAll('.ui-page.title button').forEach((btn) => {
+ let timeOffset = Array.from(btn.parentNode.children).indexOf(btn) - 2;
+ btn.style.left = 10 * easeInOut(Math.max(0.0, Math.min(1.0, 0.3 * timeOffset + 2.5 - game.timeProgress))).toFixed(2) + 'em';
+ let opacity = easeInOut(Math.max(0.0, Math.min(1.0, -0.3 * timeOffset + game.timeProgress - 1.5)));
+ btn.style.opacity = opacity.toFixed(2);
+ if(opacity == 1.0) {
+ btn.disabled = false;
+ }
+ });
+ }
+ if(game.timeProgress >= 3.0 && game.timeProgress <= 4.0) {
+ game.ui.root.querySelector('.ui-page.title .footer').style.opacity = easeInOut(Math.max(0.0, Math.min(1.0, game.timeProgress - 3.0))).toFixed(2);
+ }
+ if(game.timeProgress > 4.0) {
+ game.ui.reachedStart = true;
+ }
+ }
} else if(game.ui.currentPage == 'openingcutscene') {
if(game.ui.reachedEnd) {
reset(game);
} else if(game.ui.reachedEnd) {
cameraX = 5;
}
- game.view.camera.position.setY(-game.courseRadius + 0.07 * cameraSwayFactor * Math.sin(game.view.clock.getElapsedTime() * 0.5));
+ game.view.camera.position.setY(cameraY - game.courseRadius + 0.07 * cameraSwayFactor * Math.sin(game.view.clock.getElapsedTime() * 0.5));
game.view.camera.position.setX(cameraX + 0.05 * cameraSwayFactor * Math.sin(game.view.clock.getElapsedTime() * 0.7));
renderer.render(scene, game.view.camera);
return;
page.style.display = 'none';
}, fadeDuration, page);
});
+ if(game.ui.currentPage == 'title' && !game.ui.reachedStart) {
+ setTimeout(() => {
+ game.ui.root.querySelector('.ui-page.title h1').removeAttribute('style');
+ game.ui.root.querySelectorAll('.ui-page.title button').forEach(btn => { btn.disabled = false; btn.removeAttribute('style'); });
+ game.ui.root.querySelector('.ui-page.title .footer').removeAttribute('style');
+ game.ui.reachedStart = true;
+ }, fadeDuration);
+ }
if(target == 'title' && game.view && game.view.music.isPlaying) {
game.view.music.stop();
if(game.view.music.timeoutID) {