$top->bind('' => sub{ &pressed("left",1,2) }); $top->bind('' => sub{ &pressed("back",0, 7) }); $top->bind('' => sub{ &pressed("right",5, 6) }); $top->bind('' => sub{ &pressed("spinl",1, 3, 5, 7) }); $top->bind('' => sub{ &pressed("forward",3, 4) }); $top->bind('' => sub{ &pressed("spinr",0, 2, 4, 6) }); sub pressed { my @args = @_; my $arg = shift @args; &fire_thrusters(@args); for ($arg){ /left/i && do { $top->bind('' => sub{}); }; /right/i && do { $top->bind('' => sub{}); }; /back/i && do { $top->bind('' => sub{}); }; /forward/i && do { $top->bind('' => sub{}); }; /spinl/i && do { $top->bind('' => sub{}); }; /spinr/i && do { $top->bind('' => sub{}); }; } $top->bind('' => sub{ &released($arg) }); $top->bind('' => sub{ &released($arg) }); } sub released { my $arg = shift; &stop; for ($arg){ /left/i && do { $top->bind('' => sub{ &pressed("left",1,2) }); }; /right/i && do { $top->bind('' => sub{ &pressed("right",5, 6) }); }; /back/i && do { $top->bind('' => sub{ &pressed("back",0, 7) }); }; /forward/i && do { $top->bind('' => sub{ &pressed("forward",3, 4) }); }; /spinl/i && do { $top->bind('' => sub{ &pressed("spinl",1, 3, 5, 7) }); }; /spinr/i && do { $top->bind('' => sub{ &pressed("spinr",0, 2, 4, 6) }); }; } $top->bind('' => sub{}); $top->bind('' => sub{}); }