c# - How to make 30+ labels colide with my "player" label that is moveable. dont want 200 lines of code, possible grouping? -
is there way group 30+ labels able control them @ once. want 30 labels.
if (player.bounds.intersectswith(label1.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; }
and label1 checking if colided want check 30 labels if have colided. , preferably not 30x code , change number. thank in advance! =)
edit: want add maze game , left, right etc players movement defined outside posted here. hope understand!
edit2: added code
`
namespace mazegame { public partial class form1 : form { bool down; bool left; bool right; bool up; // new list<int> blocks = new list[5]; public form1() { initializecomponent(); } private void panel1_paint(object sender, painteventargs e) { if (label1.bounds.intersectswith(label10.bounds)) { } } private void form1_keyup(object sender, keyeventargs e) { if (e.keycode == keys.right) { down = false; = false; right = true; left = false; } if (e.keycode == keys.left) { left = true; down = false; = false; right = false; } if (e.keycode == keys.up) { = true; down = false; right = false; left = false; } if (e.keycode == keys.down) { down = true; = false; right = false; left = false; } } 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) { if (player.bounds.intersectswith(label1.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; } } var labels = this.??????? // here need help. if (right == true) { player.left += 1; } if (left == true) { player.left -= 1; } if (up == true) { player.top -= 1; } if (down == true) { player.top += 1; } } }
`
oftype
controls of same type control. in case labels form:
var labels = this.myform.controls.oftype<label>()
then can iterate through collection of labels.
edit:
then, looping through code this:
private void timer1_tick(object sender, eventargs e) { var labels = this.form1.controls.oftype<label>() foreach(var label in labels) { if(player.bounds.intersectswith(label.bounds)) //...
Comments
Post a Comment