c# - var labels = this.Controls.OfType<Label>(); Control all labels except 1 -


i have maze game uses labels walls , .intersectswith handle colision. problem since "player" label messes things code. want player able move meanwhile cant colide other labels.

what problem is part makes player unable move reason. never mind if () break experiment.

 var labels = this.controls.oftype<label>();          foreach (var label in labels)         {             if (label.bounds.intersectswith(player.bounds))             {                 break;             }             if (player.bounds.intersectswith(label.bounds))             {   namespace mazegame { public partial class form1 : form {     bool down;     bool left;     bool right;     bool up;      public form1()     {         initializecomponent();     }      private void panel1_paint(object sender, painteventargs e)     {      }      private void form1_keyup(object sender, keyeventargs e)     {      }      private void form1_keydown(object sender, keyeventargs e)     {         if (e.keycode == keys.right)         {             right = true;             left = false;             = false;             down = false;         }         if (e.keycode == keys.left)         {             left = true;             right = false;             = false;             down = false;         }         if (e.keycode == keys.up)         {             = true;             left = false;             right = false;             down = false;         }         if (e.keycode == keys.down)         {             down = true;             left = false;             = false;             right = false;         }     }      private void timer1_tick(object sender, eventargs e)     {           var labels = this.controls.oftype<label>();          foreach (var label in labels)         {             if (label.bounds.intersectswith(player.bounds))             {                 break;             }             if (player.bounds.intersectswith(label.bounds))             {                  if (right == true)                 {                     right = false;                     left = true;                 }                 else if (left == true)                 {                     left = false;                     right = true;                 }                 else if (up == true)                 {                     = false;                     down = true;                 }                 else if (down == true)                 {                     down = false;                     = true;                 }             }                if (right == true)             {                 player.left += 1;             }             if (left == true)             {                 player.left -= 1;             }             if (up == true)             {                 player.top -= 1;             }             if (down == true)             {                 player.top += 1;             }           }     }      private void form1_load(object sender, eventargs e)     {      }      private void panel2_paint(object sender, painteventargs e)     {      } } } 

you can exclude player label selection in manner:

var labels = this.controls.oftype<label>().where(l => l.name != "player") 

Comments

Popular posts from this blog

windows - Single EXE to Install Python Standalone Executable for Easy Distribution -

c# - Access objects in UserControl from MainWindow in WPF -

javascript - How to name a jQuery function to make a browser's back button work? -