mirror of
https://github.com/doukutsu-rs/doukutsu-rs
synced 2025-12-04 02:47:50 +00:00
Ironhead letterbox
This commit is contained in:
parent
c8115df285
commit
46045c2a7e
|
|
@ -36,7 +36,7 @@ use crate::npc::boss::BossNPC;
|
||||||
use crate::npc::list::NPCList;
|
use crate::npc::list::NPCList;
|
||||||
use crate::npc::{NPCLayer, NPC};
|
use crate::npc::{NPCLayer, NPC};
|
||||||
use crate::physics::{PhysicalEntity, OFFSETS};
|
use crate::physics::{PhysicalEntity, OFFSETS};
|
||||||
use crate::player::{Player, TargetPlayer};
|
use crate::player::{ControlMode, Player, TargetPlayer};
|
||||||
use crate::rng::XorShift;
|
use crate::rng::XorShift;
|
||||||
use crate::scene::title_scene::TitleScene;
|
use crate::scene::title_scene::TitleScene;
|
||||||
use crate::scene::Scene;
|
use crate::scene::Scene;
|
||||||
|
|
@ -1693,6 +1693,17 @@ impl Scene for GameScene {
|
||||||
|
|
||||||
fn draw(&self, state: &mut SharedGameState, ctx: &mut Context) -> GameResult {
|
fn draw(&self, state: &mut SharedGameState, ctx: &mut Context) -> GameResult {
|
||||||
//graphics::set_canvas(ctx, Some(&state.game_canvas));
|
//graphics::set_canvas(ctx, Some(&state.game_canvas));
|
||||||
|
|
||||||
|
if self.player1.control_mode == ControlMode::IronHead {
|
||||||
|
let clip_rect: Rect = Rect::new_size(
|
||||||
|
(((state.canvas_size.0 - 320.0) * 0.5) * state.scale) as _,
|
||||||
|
(((state.canvas_size.1 - 240.0) * 0.5) * state.scale) as _,
|
||||||
|
(320.0 * state.scale) as _,
|
||||||
|
(240.0 * state.scale) as _,
|
||||||
|
);
|
||||||
|
graphics::set_clip_rect(ctx, Some(clip_rect))?;
|
||||||
|
}
|
||||||
|
|
||||||
let stage_textures_ref = &*self.stage_textures.deref().borrow();
|
let stage_textures_ref = &*self.stage_textures.deref().borrow();
|
||||||
self.background.draw(state, ctx, &self.frame, stage_textures_ref, &self.stage)?;
|
self.background.draw(state, ctx, &self.frame, stage_textures_ref, &self.stage)?;
|
||||||
self.tilemap.draw(state, ctx, &self.frame, TileLayer::Background, stage_textures_ref, &self.stage)?;
|
self.tilemap.draw(state, ctx, &self.frame, TileLayer::Background, stage_textures_ref, &self.stage)?;
|
||||||
|
|
@ -1731,6 +1742,10 @@ impl Scene for GameScene {
|
||||||
|
|
||||||
self.draw_black_bars(state, ctx)?;
|
self.draw_black_bars(state, ctx)?;
|
||||||
|
|
||||||
|
if self.player1.control_mode == ControlMode::IronHead {
|
||||||
|
graphics::set_clip_rect(ctx, None)?;
|
||||||
|
}
|
||||||
|
|
||||||
if self.inventory_dim > 0.0 {
|
if self.inventory_dim > 0.0 {
|
||||||
let rect = Rect::new(0, 0, state.screen_size.0 as isize + 1, state.screen_size.1 as isize + 1);
|
let rect = Rect::new(0, 0, state.screen_size.0 as isize + 1, state.screen_size.1 as isize + 1);
|
||||||
let mut dim_color = state.constants.inventory_dim_color;
|
let mut dim_color = state.constants.inventory_dim_color;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue