This commit is contained in:
the me 2022-08-14 21:06:41 -07:00
parent 1c893940ac
commit cfcfd3e263
21 changed files with 227 additions and 7 deletions

View File

@ -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": [

View File

@ -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": [],

View File

@ -1,2 +1,2 @@
log(un);
c_inheritunit(1, 1, un.chara);
c_inheritunit(2, 2, un.chara);

View File

@ -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);

View File

@ -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]);
}
}
}
}
}

View File

@ -1,2 +1,7 @@
//unitdata = new unit();
pos = new vec2(0, 0);
state = st_standing;
drawstate = c_null;
hspd = 0;
vspd = 0;
returnpos = new vec2(0, 0);

View File

@ -1,3 +1,4 @@
draw_self();
drawstate();
//draw_set_color(c_red);
//draw_circle(x, y, 5, false);

View File

@ -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();

View File

@ -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;
}

View File

@ -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);
}

View File

@ -0,0 +1,12 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "Scripts",
"path": "folders/Scripts.yy",
},
"resourceVersion": "1.0",
"name": "c_input",
"tags": [],
"resourceType": "GMScript",
}

View File

@ -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);
}
}

View File

@ -0,0 +1,12 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "Scripts",
"path": "folders/Scripts.yy",
},
"resourceVersion": "1.0",
"name": "c_selectunit",
"tags": [],
"resourceType": "GMScript",
}

View File

@ -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;
}

View File

@ -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",
}

View File

@ -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

View File

@ -0,0 +1,12 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "Scripts",
"path": "folders/Scripts.yy",
},
"resourceVersion": "1.0",
"name": "st_moving",
"tags": [],
"resourceType": "GMScript",
}

View File

@ -0,0 +1,12 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "Scripts",
"path": "folders/Scripts.yy",
},
"resourceVersion": "1.0",
"name": "st_standing",
"tags": [],
"resourceType": "GMScript",
}

View File

@ -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);
}

View File

@ -0,0 +1,12 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "Scripts",
"path": "folders/Scripts.yy",
},
"resourceVersion": "1.0",
"name": "st_standing",
"tags": [],
"resourceType": "GMScript",
}

View File

@ -10,4 +10,5 @@ global.tilesize = new vec2(32, 32);
function tiledata(passable_=true) constructor {
passable = passable;
contents = [];
overlays = [];
}