滚动地图的算法实现
变量设置:
playerx, playery 为人物相对于完整地图左上角的坐标;
screen_wide, screen_high 为屏幕的宽和高;
xtile为屏幕上x轴上可显示的小地图个数;
ytile为屏幕上y轴上可显示的小地图个数;
tileplayerx = playerx / tile_wide 为人物所在格x轴下标;
tileplayery = playery / tile_high 为人物所在格y轴下标;
应该绘制的地图范围是:
x轴: 由 tileplayerx - xtile/2 至 tileplayerx + xtile/2;
y轴: 由 tileplayery - ytile/2 至 tileplayery + ytile/2;
当人物在屏幕正中央时,地图到屏幕的位置变化公式为:
screenx = xi * tile_wide – playerx + 0.5 * screen_wide
screeny = yi * tile_high – playery + 0.5 * screen_high
int beginx = tileplayerx - xtile/2
int endx = tileplayerx + xtile/2
int beginy = tileplayery - ytile/2
int endy = tileplayery + ytile/2
tileplayerx = playerx / tile_wide
tileplayery = playery