mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-09 14:14:59 +00:00
Some improvements to map/event rendering when changing display tile width/height in map renderer
This commit is contained in:
@@ -67,6 +67,8 @@ class Sprite_Character < RPG::Sprite
|
||||
@reflection = Sprite_Reflection.new(self, character, viewport)
|
||||
end
|
||||
@surfbase = Sprite_SurfBase.new(self, character, viewport) if character == $game_player
|
||||
self.zoom_x = TilemapRenderer::ZOOM_X
|
||||
self.zoom_y = TilemapRenderer::ZOOM_Y
|
||||
update
|
||||
end
|
||||
|
||||
@@ -153,8 +155,12 @@ class Sprite_Character < RPG::Sprite
|
||||
pbDayNightTint(self)
|
||||
end
|
||||
end
|
||||
self.x = @character.screen_x
|
||||
self.y = @character.screen_y
|
||||
this_x = @character.screen_x
|
||||
this_x = ((this_x - (Graphics.width / 2)) * TilemapRenderer::ZOOM_X) + (Graphics.width / 2) if TilemapRenderer::ZOOM_X != 1
|
||||
self.x = this_x
|
||||
this_y = @character.screen_y
|
||||
this_y = ((this_y - (Graphics.height / 2)) * TilemapRenderer::ZOOM_Y) + (Graphics.height / 2) if TilemapRenderer::ZOOM_Y != 1
|
||||
self.y = this_y
|
||||
self.z = @character.screen_z(@ch)
|
||||
self.opacity = @character.opacity
|
||||
self.blend_type = @character.blend_type
|
||||
|
||||
@@ -48,15 +48,15 @@ class Sprite_Reflection
|
||||
# Just-in-time creation of sprite
|
||||
@sprite = Sprite.new(@viewport) if !@sprite
|
||||
if @sprite
|
||||
x = @rsprite.x - @rsprite.ox
|
||||
y = @rsprite.y - @rsprite.oy
|
||||
y -= 32 if @rsprite.character.character_name[/offset/i]
|
||||
x = @rsprite.x - @rsprite.ox * TilemapRenderer::ZOOM_X
|
||||
y = @rsprite.y - @rsprite.oy * TilemapRenderer::ZOOM_Y
|
||||
y -= Game_Map::TILE_HEIGHT * TilemapRenderer::ZOOM_Y if @rsprite.character.character_name[/offset/i]
|
||||
@height = $PokemonGlobal.bridge if !@fixedheight
|
||||
y += @height * 16
|
||||
y += @height * TilemapRenderer::ZOOM_Y * Game_Map::TILE_HEIGHT / 2
|
||||
width = @rsprite.src_rect.width
|
||||
height = @rsprite.src_rect.height
|
||||
@sprite.x = x + (width / 2)
|
||||
@sprite.y = y + height + (height / 2)
|
||||
@sprite.x = x + (width / 2) * TilemapRenderer::ZOOM_X
|
||||
@sprite.y = y + (height + (height / 2)) * TilemapRenderer::ZOOM_Y
|
||||
@sprite.ox = width / 2
|
||||
@sprite.oy = (height / 2) - 2 # Hard-coded 2 pixel shift up
|
||||
@sprite.oy -= @rsprite.character.bob_height * 2
|
||||
|
||||
@@ -63,8 +63,14 @@ class Sprite_SurfBase
|
||||
sy = ((@event.direction - 2) / 2) * ch
|
||||
@sprite.src_rect.set(sx, sy, cw, ch)
|
||||
if $game_temp.surf_base_coords
|
||||
@sprite.x = ((($game_temp.surf_base_coords[0] * Game_Map::REAL_RES_X) - @event.map.display_x + 3) / 4) + (Game_Map::TILE_WIDTH / 2)
|
||||
@sprite.y = ((($game_temp.surf_base_coords[1] * Game_Map::REAL_RES_Y) - @event.map.display_y + 3) / 4) + (Game_Map::TILE_HEIGHT / 2) + 16
|
||||
spr_x = ((($game_temp.surf_base_coords[0] * Game_Map::REAL_RES_X) - @event.map.display_x).to_f / Game_Map::X_SUBPIXELS).round
|
||||
spr_x += (Game_Map::TILE_WIDTH / 2)
|
||||
spr_x = ((spr_x - (Graphics.width / 2)) * TilemapRenderer::ZOOM_X) + (Graphics.width / 2) if TilemapRenderer::ZOOM_X != 1
|
||||
@sprite.x = spr_x
|
||||
spr_y = ((($game_temp.surf_base_coords[1] * Game_Map::REAL_RES_Y) - @event.map.display_y).to_f / Game_Map::Y_SUBPIXELS).round
|
||||
spr_y += (Game_Map::TILE_HEIGHT / 2) + 16
|
||||
spr_y = ((spr_y - (Graphics.height / 2)) * TilemapRenderer::ZOOM_Y) + (Graphics.height / 2) if TilemapRenderer::ZOOM_Y != 1
|
||||
@sprite.y = spr_y
|
||||
else
|
||||
@sprite.x = @rsprite.x
|
||||
@sprite.y = @rsprite.y
|
||||
|
||||
Reference in New Issue
Block a user