// 创建事件
var x = room_width / 2;
var y = room_height / 2;
var spd = 1;
var xspd = -1;
var yspd = 0;
var game_rate = 15;
var dir = 0; // 方向(0:左,1:右,2:上,3:下)
var last_x;
var last_y;
var prev_x;
var prev_y;
var tail = [];
var index = 0;

// 重复事件
repeat(10) {
    tail.push(-1);
}

// 相关步骤事件(蛇)
if (global.game_speed <= 0) {
    global.game_speed = game_rate;
    switch (dir) {
        case 0: // 左
            x -= 1;
            xspd = -1;
            yspd = 0;
            break;
        case 1: // 右
            x += 1;
            xspd = 1;
            yspd = 0;
            break;
        case 2: // 上
            y -= 1;
            yspd = -1;
            xspd = 0;
            break;
        case 3: // 下
            y += 1;
            yspd = 1;
            xspd = 0;
            break;
        default:
            break;
    }

    // 创建蛇身
    for (var i = 1; i < global.length; i++) {
        var tailInstance = instance_create_depth(last_x, last_y, 0, oTail);
        tail[i] = tailInstance;
    }

    // 删除蛇身
    for (var j = 0; j < global.length; j++) {
        if (instance_exists(tail[j])) {
            instance_destroy(tail[j]);
        }
    }
}

// 食物和游戏速度
global.game_speed -= spd;
if (place_meeting(x, y, oFood)) {
    global.food++;
    global.length++;
    spd += 0.1;
    instance_destroy(oFood);
}

last_x = x;
last_y = y;