Je suis en train de créer un jeu de tuiles 2d et je me demande si les tuiles doivent bouger ou le personnage?Dois-je déplacer les tuiles ou le joueur dans un monde de tuiles 2d?
Je pose cette question parce que j'ai déjà créé le "2d tile map" mais il fonctionne trop lentement, et je ne peux pas le réparer. J'ai tout essayé maintenant et le résultat est que je reçois 30 fps.
La raison pour laquelle il fonctionne trop lentement est parce que toutes les 1ms avec une minuterie, les tuiles sont en cours de redessin. Mais je ne peux pas comprendre comment résoudre ce problème.
Si quelqu'un pouvait m'aider, je l'apprécierais vraiment!
Voici comment je fais la carte:
public void makeBoard()
{
for (int i = 0; i < tileArray.GetLength(0); i++)
{
for (int j = 0; j < tileArray.GetLength(1); j++)
{
tileArray[i, j] = new Tile() { xPos = j * 50, yPos = i * 50 };
}
}
}
Ici, je redessine 1ms ou plus les tuiles et sprites:
private void Wereld_Paint_1(object sender, PaintEventArgs e)
{
//label1.Text = k++.ToString();
using (Graphics grap = Graphics.FromImage(bmp))
{
for (int i = 0; i < tileArray.GetLength(0); i++)
{
for (int j = 0; j < tileArray.GetLength(1); j++)
{
grap.DrawImage(tileArray[i, j].tileImage, j * 50, i * 50, 50, 50);
}
}
grap.DrawImage(player.movingObjectImage, player.xPos, player.yPos, 50, 50);
grap.DrawImage(enemyGoblin.movingObjectImage, enemyGoblin.xPos, enemyGoblin.yPos, 50, 50);
groundPictureBox.Image = bmp;
// grap.Dispose();
}
}
C'est la minuterie avec un spécifique intervalle:
private void UpdateTimer_Tick(object sender, EventArgs e)
{
if(player.Update()==true) // true keydown event is fired
{
this.Invalidate();
}
label1.Text = lastFrameRate.ToString(); // for fps rate show
CalculateFrameRate(); // for fps rate show
}
les tuiles Le seul inconvénient qui sont censés apparaître à l'écran et utiliser un appareil photo pour vous aider à dessiner des choses: http://stackoverflow.com/questions/9997006/slick2d-and-jbox2d-how- to-draw? answertab = votes # tab-top – user3814613
@ user3814613 Tout d'abord, merci pour votre commentaire! Je ne comprends pas vraiment ce que vous dites. Je dois redessiner toutes les tuiles parce que je veux que les tuiles se déplacent ainsi il semblerait que le joueur marche autour du "monde". En outre, je n'ai jamais utilisé la fonction de caméra et je ne sais pas par où commencer. –
Avez-vous lu le message qui était lié dans ce commentaire? Si vous aviez, vous n'auriez pas à dire * je ne saurais pas par où commencer *. Les gens fournissent des liens vers d'autres questions pour aider; ce n'est pas très agréable de les ignorer après qu'ils aient fait le travail pour le trouver pour vous. –