@@ -15,9 +15,9 @@ pub struct Chaser
1515 pub px_end : Vec2 , //1フレーム時間に移動した微小区間の終点
1616 pub opt_fn_autochase : Option < FnAutoChase > , //敵キャラの移動方向を決める関数
1717 pub color : Color , //敵キャラの表示色
18- pub anime_timer : Timer , //アニメーションのタイマー
19- pub sprite_sheet_frame : usize , //アニメーションのフレーム数
20- pub sprite_sheet_indexes : HashMap < News , usize > , //アニメーションの先頭位置(offset値)
18+ pub anime_timer : Timer , //アニメーションのタイマー
19+ pub sprite_sheet_frame : u32 , //アニメーションのフレーム数
20+ pub sprite_sheet_indexes : HashMap < News , u32 > , //アニメーションの先頭位置(offset値)
2121}
2222
2323impl Default for Chaser
@@ -48,10 +48,10 @@ impl CharacterAnimation for Chaser
4848{ fn anime_timer_mut ( & mut self ) -> & mut Timer
4949 { & mut self . anime_timer
5050 }
51- fn sprite_sheet_frame ( & self ) -> usize
51+ fn sprite_sheet_frame ( & self ) -> u32
5252 { self . sprite_sheet_frame
5353 }
54- fn sprite_sheet_offset ( & self , news : News ) -> usize
54+ fn sprite_sheet_offset ( & self , news : News ) -> u32
5555 { * self . sprite_sheet_indexes . get ( & news ) . unwrap ( )
5656 }
5757 fn direction ( & self ) -> News
@@ -76,10 +76,10 @@ const MAX_X: i32 = map::MAP_GRIDS_WIDTH - 2;
7676const MAX_Y : i32 = map:: MAP_GRIDS_HEIGHT - 2 ;
7777
7878//スプライトシートを使ったアニメーションの情報
79- const SPRITE_SHEET_SIZE_CHASER : Vec2 = Vec2 :: new ( 8.0 , 8.0 ) ;
80- const SPRITE_SHEET_COLS_CHASER : usize = 4 ;
81- const SPRITE_SHEET_ROWS_CHASER : usize = 4 ;
82- static SPRITE_SHEET_IDXS_CHASER : Lazy < HashMap < News , usize > > = Lazy :: new
79+ const SPRITE_SHEET_SIZE_CHASER : UVec2 = UVec2 :: new ( 8 , 8 ) ;
80+ const SPRITE_SHEET_COLS_CHASER : u32 = 4 ;
81+ const SPRITE_SHEET_ROWS_CHASER : u32 = 4 ;
82+ static SPRITE_SHEET_IDXS_CHASER : Lazy < HashMap < News , u32 > > = Lazy :: new
8383( ||
8484 HashMap :: from
8585 ( [ ( News :: North , 0 ) ,
@@ -156,8 +156,8 @@ pub fn spawn_sprite
156156 None , None
157157 )
158158 ) ;
159- let index = chaser. sprite_sheet_offset ( chaser. direction ( ) ) ;
160- cmds. spawn ( ( SpriteSheetBundle :: default ( ) , chaser ) )
159+ let index = chaser. sprite_sheet_offset ( chaser. direction ( ) ) as usize ;
160+ cmds. spawn ( ( SpriteBundle :: default ( ) , chaser ) )
161161 . insert ( Sprite { custom_size, ..default ( ) } )
162162 . insert ( asset_svr. load ( asset_file ) as Handle < Image > )
163163 . insert ( TextureAtlas { layout, index } )
@@ -253,9 +253,9 @@ pub fn move_sprite
253253
254254 //進行方向が変わったらスプライトの見栄えを変える(スプライトシートのindexを変える)
255255 if ! SPRITE_SHEET_OFF ( ) && chaser. direction != new_side
256- { let old_offset = chaser. sprite_sheet_offset ( chaser. direction ) ;
257- let new_offset = chaser. sprite_sheet_offset ( new_side ) ;
258- sprite_sheet. index = sprite_sheet. index - old_offset + new_offset;
256+ { let old_offset = chaser. sprite_sheet_offset ( chaser. direction ) as usize ;
257+ let new_offset = chaser. sprite_sheet_offset ( new_side ) as usize ;
258+ sprite_sheet. index = sprite_sheet. index + new_offset - old_offset ;
259259 }
260260 chaser. direction = new_side;
261261
@@ -273,7 +273,7 @@ pub fn move_sprite
273273
274274 //後続の処理にtimer finishedを伝達する
275275 if ! chaser_timer_finished. is_empty ( )
276- { evt_timer. send ( EventTimerChasers ( chaser_timer_finished ) ) ;
276+ { evt_timer. send ( EventTimerChasers ) ;
277277 }
278278
279279 //敵キャラは重なるとスピードアップする
0 commit comments