1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
x1=234
y1=234
xvel=1
xspd=$xvel
yvel=1
yspd=$yvel
xspd2=$xvel
yspd2=$yvel
x2=256
y2=256
flip=0
heightmap="16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16"
w1=16
w2=64
h1=16
h2=64
u=0
d=0
l=0
r=0
clear
actkbd -Ps -d /dev/input/by-path/platform-i8042-serio-0-event-kbd | \
while read frame key held; do
yspd=0 && xspd=0 && negx="" && negy="";
yspd2=0 && xspd2=0 && negx2="" && negy2="";
if [ "$held" = "1" ]; then
[ "${key#*KEY_W}" != "$key" -o "${key#*KEY_S}" != "$key" ] && yspd=$yvel
[ "${key#*KEY_A}" != "$key" -o "${key#*KEY_D}" != "$key" ] && xspd=$xvel
[ "${key#*KEY_W}" != "$key" ] && negy="-" && y1=$(echo "$y1-$yspd" | bc)
[ "${key#*KEY_S}" != "$key" ] && negy="" && y1=$(echo "$y1+$yspd" | bc)
[ "${key#*KEY_A}" != "$key" ] && negx="-" && x1=$(echo "$x1-$xspd" | bc)
[ "${key#*KEY_D}" != "$key" ] && negx="" && x1=$(echo "$x1+$xspd" | bc)
fi
str=$(printf "0\n$w1,$h1\n$x1,$y1\n$negx$xspd,$negy$yspd\n$w2,$h2\n$flip\n$heightmap\n$x2,$y2"| ./clld)
cursor=$(printf "$str" | head -n5)
floor=$(printf "$str" | tail -n5)
xy=$(printf "$cursor" | tail -n2 | tr -d ',' | head -n1)
xy2=$(printf "$floor" | tail -n2 | tr -d ',' | head -n1)
x1=$(echo "$xy" | awk '{print $1}')
y1=$(echo "$xy" | awk '{print $2}')
x2=$(echo "$xy2" | awk '{print $1}')
y2=$(echo "$xy2" | awk '{print $2}')
printf "$cursor\n$floor"
if [ "$held" = "1" -a "${key#*KEY_KP}" != "$key" ]; then
[ "${key#*KEY_KP8}" != "$key" -o "${key#*KEY_KP2}" != "$key" ] && yspd2=$yvel
[ "${key#*KEY_KP4}" != "$key" -o "${key#*KEY_KP6}" != "$key" ] && xspd2=$xvel
[ "${key#*KEY_KP8}" != "$key" ] && negy2="-" && y2=$(echo "$y2-$yspd2" | bc)
[ "${key#*KEY_KP6}" != "$key" ] && negy2="" && y2=$(echo "$y2+$yspd2" | bc)
[ "${key#*KEY_KP4}" != "$key" ] && negx2="-" && x2=$(echo "$x2-$xspd2" | bc)
[ "${key#*KEY_KP6}" != "$key" ] && negx2="" && x2=$(echo "$x2+$xspd2" | bc)
fi
done
|