68 lines
1.4 KiB
Plaintext
68 lines
1.4 KiB
Plaintext
|
function st_moving() {
|
||
|
var mov = 2
|
||
|
c_input();
|
||
|
|
||
|
hspd = lerp(hspd, (right-left)*.05, .4);
|
||
|
vspd = lerp(vspd, (down-up)*.05, .4);
|
||
|
var remainingmov = mov+1 - (
|
||
|
abs(x+hspd-16-pos.x*ts.x)/ts.x +
|
||
|
abs(y+vspd-16-pos.y*ts.y)/ts.y
|
||
|
);
|
||
|
//var shitmode = point_distance(x, y, pos.x*ts.x, pos.y*ts.y);
|
||
|
//if shitmode > mov*ts.x {
|
||
|
x += hspd*ts.x;
|
||
|
y += vspd*ts.y;
|
||
|
while !remainingmov {
|
||
|
hspd = 0;
|
||
|
vspd = 0;
|
||
|
x = linear_approach(x, pos.x*ts.x+16, 1);
|
||
|
y = linear_approach(y, pos.y*ts.y+16, 1);
|
||
|
log(x, pos.x*ts.x);
|
||
|
log(y, pos.y*ts.y);
|
||
|
var remainingmov = mov+1 - (
|
||
|
abs(x+hspd-16-pos.x*ts.x)/ts.x +
|
||
|
abs(y+vspd-16-pos.y*ts.y)/ts.y
|
||
|
);
|
||
|
//log("oob, " + string(remainingmov));
|
||
|
/*} else {
|
||
|
log("not oob!");*/
|
||
|
|
||
|
}
|
||
|
prevremainingmov = remainingmov;
|
||
|
/*if x < (pos.x-mov)*ts.x {
|
||
|
x = (pos.x-mov)*ts.x;
|
||
|
} else if x > (pos.x+mov+1)*ts.x {
|
||
|
x = (pos.x+mov+1)*ts.x;
|
||
|
} else {
|
||
|
x += hspd*ts.x;
|
||
|
}
|
||
|
if y < (pos.y-mov)*ts.y {
|
||
|
y = (pos.y-mov)*ts.y;
|
||
|
} else if y > (pos.y+mov+1)*ts.y {
|
||
|
y = (pos.y+mov+1)*ts.y;
|
||
|
} else {
|
||
|
y += vspd*ts.y;
|
||
|
}*/
|
||
|
|
||
|
}
|
||
|
|
||
|
function st_movingdraw() {
|
||
|
/*var mov = 2;
|
||
|
draw_set_color(c_cyan);
|
||
|
draw_set_alpha(.4);
|
||
|
var i, j;
|
||
|
for (i=-mov; i<=mov; i++) {
|
||
|
for (j=-mov; j<=mov; j++) {
|
||
|
if abs(i)+abs(j) <= mov {
|
||
|
draw_rectangle(
|
||
|
(pos.x+i)*ts.x,
|
||
|
(pos.y+j)*ts.y,
|
||
|
(pos.x+i+1)*ts.x,
|
||
|
(pos.y+j+1)*ts.y, false
|
||
|
);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
draw_set_alpha(1);*/
|
||
|
}
|
||
|
#macro ts global.tilesize
|