ugokeru
This commit is contained in:
parent
1c893940ac
commit
cfcfd3e263
|
@ -38,6 +38,7 @@
|
|||
{"id":{"name":"is_prime","path":"scripts/is_prime/is_prime.yy",},"order":14,},
|
||||
{"id":{"name":"KROMER_scrip","path":"scripts/KROMER_scrip/KROMER_scrip.yy",},"order":0,},
|
||||
{"id":{"name":"is_oob","path":"scripts/is_oob/is_oob.yy",},"order":7,},
|
||||
{"id":{"name":"linear_approach","path":"scripts/linear_approach/linear_approach.yy",},"order":18,},
|
||||
{"id":{"name":"array_contains","path":"scripts/array_contains/array_contains.yy",},"order":0,},
|
||||
{"id":{"name":"song","path":"scripts/song/song.yy",},"order":1,},
|
||||
{"id":{"name":"cpp","path":"scripts/cpp/cpp.yy",},"order":1,},
|
||||
|
@ -48,7 +49,10 @@
|
|||
{"id":{"name":"dir2hv","path":"scripts/dir2hv/dir2hv.yy",},"order":2,},
|
||||
{"id":{"name":"tag","path":"scripts/tag/tag.yy",},"order":6,},
|
||||
{"id":{"name":"instance_create","path":"scripts/instance_create/instance_create.yy",},"order":6,},
|
||||
{"id":{"name":"c_selectunit","path":"scripts/c_selectunit/c_selectunit.yy",},"order":9,},
|
||||
{"id":{"name":"array_generate_2d","path":"scripts/array_generate_2d/array_generate_2d.yy",},"order":3,},
|
||||
{"id":{"name":"c_input","path":"scripts/c_input/c_input.yy",},"order":8,},
|
||||
{"id":{"name":"st_standing","path":"scripts/st_standing/st_standing.yy",},"order":6,},
|
||||
{"id":{"name":"unit","path":"scripts/unit/unit.yy",},"order":2,},
|
||||
{"id":{"name":"se_play","path":"scripts/se_play/se_play.yy",},"order":5,},
|
||||
{"id":{"name":"msglang","path":"scripts/msglang/msglang.yy",},"order":15,},
|
||||
|
@ -63,6 +67,7 @@
|
|||
{"id":{"name":"array_find_index","path":"scripts/array_find_index/array_find_index.yy",},"order":1,},
|
||||
{"id":{"name":"array_greatest","path":"scripts/array_greatest/array_greatest.yy",},"order":4,},
|
||||
{"id":{"name":"c_null","path":"scripts/c_null/c_null.yy",},"order":4,},
|
||||
{"id":{"name":"st_moving","path":"scripts/st_moving/st_moving.yy",},"order":7,},
|
||||
{"id":{"name":"Room1","path":"rooms/Room1/Room1.yy",},"order":0,},
|
||||
],
|
||||
"Options": [
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
{"isDnD":false,"eventNum":0,"eventType":8,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
|
||||
{"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
|
||||
{"isDnD":false,"eventNum":72,"eventType":8,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
|
||||
{"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
|
||||
],
|
||||
"properties": [],
|
||||
"overriddenProperties": [],
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
log(un);
|
||||
c_inheritunit(1, 1, un.chara);
|
||||
c_inheritunit(2, 2, un.chara);
|
|
@ -1,13 +1,24 @@
|
|||
draw_set_color(c_white);
|
||||
var i, j;
|
||||
var i, j, k;
|
||||
for (i=0; i<array_length(global.map); i++) {
|
||||
for (j=0; j<array_length(global.map[i]); j++) {
|
||||
draw_set_color(c_white);
|
||||
draw_rectangle(
|
||||
i*global.tilesize.x,
|
||||
j*global.tilesize.y,
|
||||
(i+1)*global.tilesize.x,
|
||||
(j+1)*global.tilesize.y, false
|
||||
);
|
||||
for (k=0; k<array_length(global.map[i][j].overlays); k++) {
|
||||
draw_set_color(global.map[i][j].overlays[k]);
|
||||
draw_set_alpha(.4);
|
||||
draw_rectangle(
|
||||
i*global.tilesize.x,
|
||||
j*global.tilesize.y,
|
||||
(i+1)*global.tilesize.x,
|
||||
(j+1)*global.tilesize.y, false
|
||||
);
|
||||
draw_set_alpha(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
draw_set_color(c_black);
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
c_input();
|
||||
if select {
|
||||
var mousex = floor(mouse_x/global.tilesize.x);
|
||||
var mousey = floor(mouse_y/global.tilesize.y);
|
||||
log(mousex, mousey);
|
||||
if mousex < array_length(global.map) {
|
||||
if mousey < array_length(global.map[mousex]) {
|
||||
var i;
|
||||
for (i=0; i<array_length(global.map[mousex][mousey].contents); i++) {
|
||||
if global.map[mousex][mousey].contents[i].object_index == o_unit {
|
||||
log("selected a guy");
|
||||
c_selectunit(global.map[mousex][mousey].contents[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,2 +1,7 @@
|
|||
//unitdata = new unit();
|
||||
pos = new vec2(0, 0);
|
||||
pos = new vec2(0, 0);
|
||||
state = st_standing;
|
||||
drawstate = c_null;
|
||||
hspd = 0;
|
||||
vspd = 0;
|
||||
returnpos = new vec2(0, 0);
|
|
@ -1,3 +1,4 @@
|
|||
draw_self();
|
||||
drawstate();
|
||||
//draw_set_color(c_red);
|
||||
//draw_circle(x, y, 5, false);
|
|
@ -1,3 +1 @@
|
|||
x = pos.x*global.tilesize.x+global.tilesize.x/2;
|
||||
y = pos.y*global.tilesize.y+global.tilesize.y/2;
|
||||
log(x, y);
|
||||
state();
|
||||
|
|
|
@ -4,5 +4,6 @@ function c_inheritunit(x, y, unit_) {
|
|||
chump.pos.x = x;
|
||||
chump.pos.y = y;
|
||||
chump.sprite_index = unit_.sprite;
|
||||
array_push(global.map[x][y].contents, chump);
|
||||
return chump;
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
function c_input() {
|
||||
left = keyboard_check(ord("A")) + keyboard_check(vk_left);
|
||||
down = keyboard_check(ord("S")) + keyboard_check(vk_down);
|
||||
up = keyboard_check(ord("W")) + keyboard_check(vk_up);
|
||||
right = keyboard_check(ord("D")) + keyboard_check(vk_right);
|
||||
|
||||
select = mouse_check_button_pressed(mb_left) + keyboard_check_pressed(vk_enter);
|
||||
back = mouse_check_button_pressed(mb_right) + keyboard_check_pressed(vk_escape);
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"isDnD": false,
|
||||
"isCompatibility": false,
|
||||
"parent": {
|
||||
"name": "Scripts",
|
||||
"path": "folders/Scripts.yy",
|
||||
},
|
||||
"resourceVersion": "1.0",
|
||||
"name": "c_input",
|
||||
"tags": [],
|
||||
"resourceType": "GMScript",
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
function c_selectunit(unitobject) {
|
||||
unitobject.state = st_moving;
|
||||
unitobject.drawstate = st_movingdraw;
|
||||
unitobject.returnpos = new vec2(unitobject.pos.x, unitobject.pos.y);
|
||||
var mov = 2//DONT
|
||||
var i, j;
|
||||
for (i=-mov; i<=mov; i++) {
|
||||
for (j=-mov; j<=mov; j++) {
|
||||
if abs(i)+abs(j) <= mov {
|
||||
c_colortile(unitobject.pos.x+i, unitobject.pos.y+j, c_cyan);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function c_colortile(x, y, color) {
|
||||
if !array_contains(global.map[x][y], color) {
|
||||
array_push(global.map[x][y].overlays, color);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"isDnD": false,
|
||||
"isCompatibility": false,
|
||||
"parent": {
|
||||
"name": "Scripts",
|
||||
"path": "folders/Scripts.yy",
|
||||
},
|
||||
"resourceVersion": "1.0",
|
||||
"name": "c_selectunit",
|
||||
"tags": [],
|
||||
"resourceType": "GMScript",
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
function linear_approach(val, goal, amount) {
|
||||
if abs(val-goal) < amount val = goal;
|
||||
if val < goal return val+amount;
|
||||
if val > goal return val-amount;
|
||||
if val == goal return goal;
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"isDnD": false,
|
||||
"isCompatibility": false,
|
||||
"parent": {
|
||||
"name": "data",
|
||||
"path": "folders/Scripts/util/data.yy",
|
||||
},
|
||||
"resourceVersion": "1.0",
|
||||
"name": "linear_approach",
|
||||
"tags": [],
|
||||
"resourceType": "GMScript",
|
||||
}
|
|
@ -0,0 +1,68 @@
|
|||
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
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"isDnD": false,
|
||||
"isCompatibility": false,
|
||||
"parent": {
|
||||
"name": "Scripts",
|
||||
"path": "folders/Scripts.yy",
|
||||
},
|
||||
"resourceVersion": "1.0",
|
||||
"name": "st_moving",
|
||||
"tags": [],
|
||||
"resourceType": "GMScript",
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"isDnD": false,
|
||||
"isCompatibility": false,
|
||||
"parent": {
|
||||
"name": "Scripts",
|
||||
"path": "folders/Scripts.yy",
|
||||
},
|
||||
"resourceVersion": "1.0",
|
||||
"name": "st_standing",
|
||||
"tags": [],
|
||||
"resourceType": "GMScript",
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
function st_standing() {
|
||||
x = pos.x*global.tilesize.x+global.tilesize.x/2;
|
||||
y = pos.y*global.tilesize.y+global.tilesize.y/2;
|
||||
//log(x, y);
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"isDnD": false,
|
||||
"isCompatibility": false,
|
||||
"parent": {
|
||||
"name": "Scripts",
|
||||
"path": "folders/Scripts.yy",
|
||||
},
|
||||
"resourceVersion": "1.0",
|
||||
"name": "st_standing",
|
||||
"tags": [],
|
||||
"resourceType": "GMScript",
|
||||
}
|
|
@ -10,4 +10,5 @@ global.tilesize = new vec2(32, 32);
|
|||
function tiledata(passable_=true) constructor {
|
||||
passable = passable;
|
||||
contents = [];
|
||||
overlays = [];
|
||||
}
|
Loading…
Reference in New Issue