Хорошо, я довольно новичок в графике c #, и я пытаюсь сделать что-то типа приключенческой игры сверху вниз.Проблема в том, что все, что отображается над мерцанием фона.Все это растровое изображение из файла PNG.Фон не мерцает, поэтому я не знаю, где я иду не так.Вот мой код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace AITS
{
public partial class Form1 : Form
{
Background background;
Foreground foreground;
Character player;
Graphics g;
public Form1()
{
InitializeComponent();
Console.WriteLine(Environment.CurrentDirectory);
background = new Background(Properties.Resources.background, Width, Height);
foreground = new Foreground(100, Width);
player = new Character();
DoubleBuffered = true;
Paint += DrawScreen;
KeyDown += KeyPressed;
Shown += Form1_Shown;
g = CreateGraphics();
}
private void Form1_Shown(Object sender, EventArgs e)
{
gameLoop();
}
private void DrawScreen(object sender, PaintEventArgs args)
{
background.Draw(g);
player.Draw(g);
foreground.Update(Height, Width);
foreground.Draw(g);
}
private void KeyPressed(object sender, KeyEventArgs e)
{
Console.WriteLine(e.KeyData.ToString());
}
public void gameLoop()
{
while (this.Created)
{
Invalidate();
Refresh();
Application.DoEvents();
}
}
}
}
РЕДАКТИРОВАТЬ: Хорошо, я нашел ответ, для тех, кто не может найти это, как я: g should = args.Graphics.НЕ используйте CreateGraphics ()!