Thread Tk::Canvas Tk::bind - führt callback nicht aus? (5 answers)
Opened by PerlProfi at 2006-12-09 18:14

PerlProfi
 2006-12-09 18:49
#46024 #46024
User since
2006-11-29
340 Artikel
BenutzerIn
[default_avatar]
Ich kann mir nicht vorstellen, dass es etwas damit zu tun hat.

Aber gut, $r ist ein Roboter-Objekt.
$r->{pos} ist eine Arrayreferenz mit x und y Koordinate eines 2D Feldes.

newpos() bewegt den Roboter in x und y Richtung: newpos(robot, x-amount, y-amount)

getXY() liefert einfach nur die x und y position des feldes zurück.
Die x und y Position des Canvas werden übergeben:
Code: (dl )
1
2
3
4
5
6
7
sub getXY
{
my($xp, $yp) = @_;
($xp, $yp) = (int(($xp+1)/20), int(($yp+1)/20));

return ($xp, $yp);
} # getXY


Ich habe gerade dein Programm getestet, es läuft auch bei mir, ich weiß einfach nicht wo mein Fehler liegt.

MfG PerlProfi

//EDIT:
Ich hatte noch einen Denkfehler drin, aber leider wurde das Problem trotzdem nicht gelöst.

So sieht mein bind() Aufruf eigentlich aus:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
        print "Jetzt werden die Bindings hinzugefuegt...\n";

$c -> Tk::bind ("<Button-1>", [
sub {
shift;
my @op = @{$r->{pos}};
my @np = @_;

print " OP: @op\n NP: @np\n";

newpos($r, [$np[0]-$op[0], $np[1]-$op[1]]);
@{$r->{pos}} = (getXY(@_));
}, Ev("x"), Ev("y") ]);


MfG PerlProfi\n\n

<!--EDIT|PerlProfi|1165683262-->

View full thread Tk::Canvas Tk::bind - führt callback nicht aus?