2Dマリオスタイルのゲームを作成しようとしています。すべてが私がそれをもっと「客観的」にするまで働いた.Marioは窓の終わりに止まらない。私がrefを使わずにメソッドを作ると、マリオはしばらく停止しません。メソッドでrefを使った単純な2DゲームでのC#の不足
マリオクラス
class Mario: System.Windows.Forms.PictureBox
{
public Mario(int x, int y)
{
Image = Image.FromFile("Mario.png");
Location = new Point(x, y);
Size = new Size(16, 32);
SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
TabIndex = 0;
TabStop = false;
}
public void colision(System.Windows.Forms.Panel s,ref bool l, ref bool r)
{
if (this.Right > s.Right) { r = false; }
if (this.Left < s.Left) { l = false; }
}
}
メインクラス - をForm1
public partial class Form1 : Form
{
bool right=false,left=false;
public Form1()
{
InitializeComponent();
player.Top = screen.Height - player.Height;
}
private void timer1_Tick(object sender, EventArgs e)
{
if(right== true) { player.Left += 1; }
if (left == true) { player.Left -=1; }
player.colision(screen, ref left, ref right);
}
画面がSystem.Windows.Forms.Panelで、プレイヤーはform1.Designer.cs
に初期化されたマリオタイプです無関係なフィールドとメソッドを削除しました。
なぜこのタグ付き[タグです:のGraphics2D ]? – devRicher
デバッガはあなたの親友です。あなたの問題がどこにあるかを見つけるためにそれを使用する方法を学んでください:p –
プログラムはif条件に入ります。 – Xalion