游戏制作者使用地图中的变量

时间:2018-03-16 19:15:31

标签: game-maker game-maker-language

我有一个拥有自己库存的对象,我使用了一个地图列表。 每个项目都有一个名称和x和y偏移量。

我想在我的另一个对象上绘制每个项目的偏移量,并让它们与原始对象一起转动,所以在绘制函数中我有这个:

draw_sprite_ext(spr_cart2, 0, x, y,1,1,direction, c_white, 1)
for(i = 0; i < ds_list_size(products); i++){
    product = products[| i]
    rad_dir = degtorad(direction)
    x_rot = cos(rad_dir)*(product[? "x"]-x) - sin(rad_dir)*(product[? "y"]-y)
    y_rot = cos(rad_dir)*(product[? "y"]-y) - sin(rad_dir)*(product[? "x"]-x)
    draw_sprite_ext(asset_get_index("spr_"+product[? "product"]), 0, x_rot, y_rot, 1, 1, direction, c_white, 1)
}

然而,它根本不起作用。 我尝试过记录产品[? &#34; x&#34;] - x,它给出了一个非常大的负数,而只记录产品[? &#34; x&#34;]确实给出了预期的结果。

1 个答案:

答案 0 :(得分:0)

最终有效的是没有直接从地图中减去 旋转逻辑中也存在一些错误 工作代码:

draw_sprite_ext(spr_cart2, 0, x, y,1,1,direction, c_white, 1)
for(i = 0; i < ds_list_size(products); i++){
    product = products[| i]
    x_rot = (cos(rad_dir)*(product[? "x"])) - (sin(rad_dir)*(product[? "y"]))
    y_rot = (cos(rad_dir)*(product[? "y"])) + (sin(rad_dir)*(product[? "x"]))
    draw_sprite_ext(asset_get_index("spr_"+product[? "product"]), 0, x-x_rot, y+y_rot, 0.5, 0.5, direction, c_white, 1)
}