Alors, quelle est la manière la plus efficace de faire cela avec Pixi? Je voudrais
Merci d'avance
faire un conteneur "Camera", tout y mettre.
camera.position.set(renderer.screen.width/2, renderer.screen.height/2);
camera.pivot.copy(player.position);
//EVERY FRAME
var targetPivot = player.position;
//LERP IT, dt is something between 0 and 1.
// i use dt = 1 - Math.exp(-deltaInMillis / 100);
// or you can just assign targetpivot to pivot
camera.pivot.x = (targetPivot.x - camera.pivot.x) * dt + camera.pivot.x;
camera.pivot.y = (targetPivot.y - camera.pivot.y) * dt + camera.pivot.y;
//big square
var mapRect = new PIXI.Rectangle();
mapRect.x = camera.pivot.x - renderer.screen.width/2;
mapRect.y = camera.pivot.x - renderer.screen.height/2;
mapRect.width = renderer.screen.width;
mapRect.height = renderer.screen.height;
mapRect.pad(400,400); // -this line was updated
//every time camera changes position
var newRect = new PIXI.Rectangle();
newRect .x = camera.pivot.x - renderer.screen.width/2;
newRect .y = camera.pivot.x - renderer.screen.height/2;
newRect .width = renderer.screen.width;
newRect .height = renderer.screen.height;
if (newRect.x < mapRect.x || newRect.right > mapRect.right ||
newRect.y < mapRect.y || newRect.bottom > mapRect.bottom) {
mapRect = newRect;
//ADJUST THE BACKGROUND AND STUFF
//CLEAR AND FILL THE TILEMAP: https://github.com/pixijs/pixi-tilemap
}
Quelqu'un, s'il vous plaît en faire un article wiki pixi. Je pense que j'explique ce truc pour la 10e fois, nous avons besoin d'un tutoriel sur ce truc
Merci. Il fait le travail mais je ne suis pas en mesure d'accomplir 2. point. Le résultat de mapRect.enlarge (400); est NaN. Selon la documentation, il devrait y avoir un autre rectangle.
Si vous pouviez simplement l'expliquer un peu plus en détail, ce serait formidable.
Merci.
OK, utilisez plutôt "pad (400,400)" ";)
Il semble toujours y avoir le problème car dans chaque cadre, newRect.x sera toujours plus grand. Il me manque quelque chose d'énorme ici, je suppose :(
@mirosssc
mapRect = newRect;
mapRect.pad(400,400);
assurez-vous également de créer newRect à chaque fois. Si vous ne le faites pas, veuillez utiliser "mapRect.copy (newRect);" au lieu de cession.
J'ai écrit un pseudo-code. J'espère que vous avez copié ce truc dans différentes fonctions comme gameStart, gameFrame ou autre? Ce n'est pas censé être dans une fonction.
Salut! Clôture de ce problème pour l'instant en raison de son inactivité. N'hésitez pas à nous donner un coup de pouce si vous souhaitez que ce numéro soit rouvert. Merci 👍
Ce thread a été automatiquement verrouillé car il n'y a eu aucune activité récente après sa fermeture. Veuillez ouvrir un nouveau numéro pour les bogues associés.
Commentaire le plus utile
Quelqu'un, s'il vous plaît en faire un article wiki pixi. Je pense que j'explique ce truc pour la 10e fois, nous avons besoin d'un tutoriel sur ce truc