【发布时间】:2018-03-16 19:15:30
【问题描述】:
我有一个拥有自己库存的对象,为此我使用了一张地图列表。 每个项目都有一个名称和 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)
}
但是,它根本不起作用。 我尝试记录产品[? "x"]-x,它给出了一个非常大的负数,而只记录 product[? "x"] 确实给出了预期的结果。
【问题讨论】:
-
总是看到
sin+cos我觉得有人不知道lengthdir_...的功能。 -
不知道
lengthdir_函数,但是,这些函数仅在x和y偏移量相同时起作用。它们似乎也不能很好地处理地图值。 -
是的,因为它们应该是相同的(阅读有关极坐标系的信息)。 map - 与任何其他变量/等没有区别。
标签: game-maker game-maker-language