2017-04-26 17 views
-1

こんにちは、私は大学のプロジェクトのためにドンキンコンを作ろうとしていますが、私たちはC#とビジュアルスタジオを使用しなければなりません。私は自分のオブジェクトにピクチャボックスを使用しているので、マリオはピクチャボックスなのでプラットフォームもそうです。私は重力機能を作ろうとしていますが、私はマリオの位置を把握することができます。それは間違いを与え続けます、Iveは助けを求めましたが、私を助けるものは何もありません。画像ボックスを使って重力とジャンプ機能とプラットフォームを作成しようとしています

bool right; 
    bool left; 
    int m_x, m_y, m_w, m_h; 
    int gravity = 5; 
    int speed = 5; 


    private void timer1_Tick(object sender, EventArgs e) 
    { 

     m_x = mario.Location.X; 
     m_y = mario.Location.Y; 
     m_w = mario.Size.Width; 
     m_h = mario.Size.Height; 

     Gravity(); 

     if (right == true){ mario.Left += speed; } 
     if (left == true) { mario.Left -= speed; } 
    } 

    public void Gravity() 
    { 
     m_y += gravity; 
     mario.Location.Y = m_y;  
    } 

私はエラーを取得する:

Error 1 Cannot modify the return value of 'System.Windows.Forms.Control.Location' because it is not a variable C:\Users\Albert\documents\visual studio 2013\Projects\DonkeyKongPB\DonkeyKongPB\Form1.cs 56 13 DonkeyKongPB

+0

あなたは[ドキュメント](HTTPSを読みました://msdn.microsoft.com/en-us/library/system.windows.forms.control.location(v = vs.110).aspx)? 'Point'を取得または設定するプロパティです – UnholySheep

+0

代わりに' mario.Top = m_y'を実行できます。 'Location'は' Location = new Point(mario.Location.X、m_y); 'を実行する必要がある構造体を返します。 –

+0

あなたはどちらもgillに働いていますが、どういう点が働いているのかわかりません。私は文書を読んでいませんでした(設定点の働きの例はありがたいです)。 – ATaylor

答えて

1

あなたが唯一のyを変更しているので、同じ効果を得るために、代わりにmario.Top = m_yを行うことができます。


それとも、あなたはそれをあなたの方法を行う上で主張すれば:

Locationは、あなたがする必要があると思いPoint構造体を返すので:

Location = new Point(mario.Location.X, m_y); 
+0

レコードのために、Y値だけを変更できないのはそのポイントです構造体はクラスではなく構造体です。構造体は、初期化されたときに設定されたすべてのプロパティを必要とし、後で値を変更することはできません。 –

関連する問題