В настоящее время в моей игре я хочу попытаться переместить мой объект как к оси x, так и к оси y. Поскольку я также хотел поместить его в центр, я поставил камеру. Вот мой код камеры -
public class Camera
{
public Matrix transform;
public Viewport view;
public Vector2 origin;
Vector2 baseScreenSize = new Vector2(1136, 720);
float horScaling ;
float verScaling ;
Vector3 screenScalingFactor ;
public Camera(Viewport newView)
{
view = newView;
horScaling = view.Width / baseScreenSize.X;
verScaling = view.Height / baseScreenSize.Y;
screenScalingFactor = new Vector3(horScaling, verScaling, 1);
}
public void update(GameTime gt, ball pl)
{
origin = new Vector2(pl.Position.X + (pl.ballRectangle.Width / 2) - 400, 0);
transform = Matrix.CreateScale(1,1,0) *
Matrix.CreateTranslation(new Vector3(-origin.X, -origin.Y, 0));
}
}
и в файле Game1.cs, как обычно, в выражении начала, которое я помещаю, это -
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, null, null, null, null, cm.transform*globalTransformation);
ba.Draw(spriteBatch, Color.White);
spriteBatch.End();
Здесь ba - это объект шара, он просто имеет движущиеся функции x и y.
В отдельной инструкции начала, конца я рисую остальные объекты -
spriteBatch.Begin(SpriteSortMode.Immediate, null, null, null, null, null, globalTransformation);
spriteBatch.Draw(mainMenu, new Vector2(0, 0), Color.White);
spriteBatch.Draw(mainMenu1, new Vector2(450, 100), Color.White);
spriteBatch.End();
Здесь применяется глобальное преобразование для получения независимого разрешения экрана (аналогично кодам, как в Camera.cs).
Остальные объекты работают должным образом, но пересечения объекта камеры и остальных объектов не работают должным образом.Я думаю, это связано с тем, что независимость разрешения не применяется к объекту «Камера» (я не уверен). Я пробовал много кодов после поиска в Интернете, но ни один из них не работает так, как ожидалось.Проще говоря - я хочу клонировать эту игру - https://play.google.com/store/apps/details?id=com.BitDimensions.BlockyJump
Если вы видите, что основной игрок движется вдоль осей x и y, но из-за камеры он находится в постоянном положении, но препятствия не находятся в камереКак достичь пересечения между объектом, который находится в кадре камеры, и объектами, которые не находятся в камере, в этом случае просьба всем помочь, я застрял здесь на долгое время ...