I still don't know how to use English phonemizers where I can just type the English Lyrics, so I just use the Japanese to make it "Engurisu" (English) lol
@jc2035
@jc2035
Battle Against a True Teto
Art by: JC2035
Cover: https://youtu.be/1dS0IU0z4M4?si=L57hXndCfyDwPbN\_
my first proper art with almost realistic anatomy(cuz I mainly do chibis cuz I'm scared to do realistic anatomy back then), like this is my first attempt in my art after practicing it LAST MONTH. Yes last month. And only for a week of continuous practice of that lol. Wth am I doing.
switch(cs_id){
case "first\_meet":
switch (cs_step)
{
case 0:
global.in_cutscene = true;
camera_set_view_target(view_camera[0], obj_smilie);
cs_step++;
break;
case 1:
//initialize coords
move_x = obj_smilie.x;
move_y = obj_smilie.y;
cs_step++;
break;
case 2:
//smilie walks a little further than the warp area
//after moving camera will set noone
if (scr_obj_move(obj_smilie, move_x, move_y-30, 1, "diag"))
{
camera_set_view_target(view_camera[0], noone);
cs_step++
}
break;
case 3:
//instead of camera defaulting itll slide to wylie
scr_cs_slide(obj_smilie.x, obj_smilie.y, obj_wylie.x, obj_wylie.y, 2, 1, "diag")
cs_step++;
break;
case 4:
//wait for camera to finish and set cam follow to wylie
if (obj_cs_camera.cs_cam_done)
{
camera_set_view_target(view_camera[0], obj_wylie);
cs_step++;
}
break;
case 5:
//wylie goes near smilie
if (scr_obj_move(obj_wylie, 253, 300, 1, "diag"))
{
cs_step++;
}
break;
case 6:
//slide camera to smilie
scr_cs_slide(obj_wylie.x, obj_wylie.y, obj_smilie.x, obj_smilie.y, 1, 1, "diag")
cs_step++;
break;
case 7:
//wait for cam and set cam follow to smilie
if (obj_cs_camera.cs_cam_done)
{
camera_set_view_target(view_camera[0], obj_smilie);
cs_step++;
}
break;
case 8:
//smilie backs off cuz shes kinda scared, she doesnt know wylie yet
if (scr_obj_move(obj_smilie, obj_smilie.x, obj_smilie.y+5, 0.5, "diag"))
{
cs_step++;
}
break;
case 9:
//they talked
if (!textbox_started)
{
textbox_started = true;
var _txt = instance_create_layer(0,0,"Instances",obj_textbox);
scr_game_text(_txt, "cs_firstmeet");
}
if (!instance_exists(obj_textbox))
{
cs_step++;
}
break;
case 10:
//wait for textbox(this is more like a safety net)
if (!instance_exists(obj_textbox))
{
cs_step++;
}
break;
case 11:
//end cutscene
global.in_cutscene = false;
camera_set_view_target(view_camera[0], obj_smilie);
instance_destroy();
break;
}
break;
case 1:
break;
}
and here's the script for movement (u/param is u know what supposed to be lol)
/// scr_obj_move(_obj, _tx, _ty, _speed, _mode)
/// u/param {instance/object} _obj
/// u/param {real} _tx
/// u/param {real} _ty
/// u/param {real} _speed
/// u/param {string} _mode
function scr_obj_move(_obj, _tx, _ty, _speed, _mode)
{
var inst = noone;
if (is_struct(_obj)) return false;
if (instance_exists(_obj))
inst = _obj;
else
inst = instance_find(_obj, 0);
if (inst == noone) return false;
var reached = false;
switch (_mode)
{
case "axis":
{
if (abs(inst.x - _tx) > _speed)
inst.x += sign(_tx - inst.x) * _speed;
else
inst.x = _tx;
if (abs(inst.y - _ty) > _speed)
inst.y += sign(_ty - inst.y) * _speed;
else
inst.y = _ty;
reached = (inst.x == _tx && inst.y == _ty);
}
break;
case "diag":
{
var dx = _tx - inst.x;
var dy = _ty - inst.y;
var dist = point_distance(inst.x, inst.y, _tx, _ty);
if (dist > 2)
{
inst.x += (dx / dist) * _speed;
inst.y += (dy / dist) * _speed;
reached = false;
}
else
{
inst.x = _tx;
inst.y = _ty;
reached = true;
}
}
break;
}
return reached;
}