1
- extern crate sdl2 ;
1
+ extern crate sdl3 ;
2
2
use std:: path:: Path ;
3
3
4
- use sdl2:: event:: Event ;
5
- use sdl2:: keyboard:: Keycode ;
6
- use sdl2:: rect:: Point ;
7
- use sdl2:: rect:: Rect ;
4
+ use sdl3:: event:: Event ;
5
+ use sdl3:: keyboard:: Keycode ;
6
+ use sdl3:: rect:: Point ;
7
+ use sdl3:: rect:: Rect ;
8
+ use sdl3:: render:: FPoint ;
9
+ use sdl3:: render:: FRect ;
8
10
use std:: time:: Duration ;
9
11
10
12
fn main ( ) -> Result < ( ) , String > {
11
- let sdl_context = sdl2 :: init ( ) ?;
13
+ let sdl_context = sdl3 :: init ( ) ?;
12
14
let video_subsystem = sdl_context. video ( ) ?;
13
15
14
16
let window = video_subsystem
15
- . window ( "SDL2 " , 640 , 480 )
17
+ . window ( "sdl3 " , 640 , 480 )
16
18
. position_centered ( )
17
19
. build ( )
18
20
. map_err ( |e| e. to_string ( ) ) ?;
@@ -24,36 +26,36 @@ fn main() -> Result<(), String> {
24
26
. map_err ( |e| e. to_string ( ) ) ?;
25
27
let texture_creator = canvas. texture_creator ( ) ;
26
28
27
- canvas. set_draw_color ( sdl2 :: pixels:: Color :: RGBA ( 0 , 0 , 0 , 255 ) ) ;
29
+ canvas. set_draw_color ( sdl3 :: pixels:: Color :: RGBA ( 0 , 0 , 0 , 255 ) ) ;
28
30
29
31
let timer = sdl_context. timer ( ) ?;
30
32
31
33
let mut event_pump = sdl_context. event_pump ( ) ?;
32
34
33
35
// animation sheet and extras are available from
34
36
// https://opengameart.org/content/a-platformer-in-the-forest
35
- let temp_surface = sdl2 :: surface:: Surface :: load_bmp ( Path :: new ( "assets/characters.bmp" ) ) ?;
37
+ let temp_surface = sdl3 :: surface:: Surface :: load_bmp ( Path :: new ( "assets/characters.bmp" ) ) ?;
36
38
let texture = texture_creator
37
39
. create_texture_from_surface ( & temp_surface)
38
40
. map_err ( |e| e. to_string ( ) ) ?;
39
41
40
42
let frames_per_anim = 4 ;
41
- let sprite_tile_size = ( 32 , 32 ) ;
43
+ let sprite_tile_size = ( 32. , 32. ) ;
42
44
43
45
// Baby - walk animation
44
- let mut source_rect_0 = Rect :: new ( 0 , 0 , sprite_tile_size. 0 , sprite_tile_size. 0 ) ;
45
- let mut dest_rect_0 = Rect :: new ( 0 , 0 , sprite_tile_size. 0 * 4 , sprite_tile_size. 0 * 4 ) ;
46
- dest_rect_0. center_on ( Point :: new ( -64 , 120 ) ) ;
46
+ let mut source_rect_0 = FRect :: new ( 0. , 0. , sprite_tile_size. 0 , sprite_tile_size. 0 ) ;
47
+ let mut dest_rect_0 = FRect :: new ( 0. , 0. , sprite_tile_size. 0 * 4. , sprite_tile_size. 0 * 4. ) ;
48
+ // dest_rect_0.center_on(FPoint ::new(-64. , 120. ));
47
49
48
50
// King - walk animation
49
- let mut source_rect_1 = Rect :: new ( 0 , 32 , sprite_tile_size. 0 , sprite_tile_size. 0 ) ;
50
- let mut dest_rect_1 = Rect :: new ( 0 , 32 , sprite_tile_size. 0 * 4 , sprite_tile_size. 0 * 4 ) ;
51
- dest_rect_1. center_on ( Point :: new ( 0 , 240 ) ) ;
51
+ let mut source_rect_1 = FRect :: new ( 0. , 32. , sprite_tile_size. 0 , sprite_tile_size. 0 ) ;
52
+ let mut dest_rect_1 = FRect :: new ( 0. , 32. , sprite_tile_size. 0 * 4. , sprite_tile_size. 0 * 4. ) ;
53
+ // dest_rect_1.center_on(FPoint ::new(0. , 240. ));
52
54
53
55
// Soldier - walk animation
54
- let mut source_rect_2 = Rect :: new ( 0 , 64 , sprite_tile_size. 0 , sprite_tile_size. 0 ) ;
55
- let mut dest_rect_2 = Rect :: new ( 0 , 64 , sprite_tile_size. 0 * 4 , sprite_tile_size. 0 * 4 ) ;
56
- dest_rect_2. center_on ( Point :: new ( 440 , 360 ) ) ;
56
+ let mut source_rect_2 = FRect :: new ( 0. , 64. , sprite_tile_size. 0 , sprite_tile_size. 0 ) ;
57
+ let mut dest_rect_2 = FRect :: new ( 0. , 64. , sprite_tile_size. 0 * 4. , sprite_tile_size. 0 * 4. ) ;
58
+ // dest_rect_2.center_on(Point::new(440, 360));
57
59
58
60
let mut running = true ;
59
61
while running {
0 commit comments