实例介绍
【实例简介】用c 和sdl游戏库开发游戏的教程
【实例截图】
【核心代码】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 | Table of Contents Preface 1 Chapter 1: Getting Started with SDL 5 Why use SDL? 6 What is new in SDL 2.0? 6 Migrating SDL 1.2 extensions 7 Setting up SDL in Visual C Express 2010 8 Using Mercurial to get SDL 2.0 on Windows 8 Cloning and building the latest SDL 2.0 repository 8 I have the library; now what? 10 Hello SDL 13 An overview of Hello SDL 14 SDL initialization flags 16 SDL renderer flags 17 What makes up a game 17 Breaking up the Hello SDL code 18 What does this code do? 20 The Game class 21 Fullscreen SDL 26 Summary 28 Chapter 2: Drawing in SDL 29 Basic SDL drawing 29 Getting some images 29 Creating an SDL texture 30 Source and destination rectangles 32 Animating a sprite sheet 35 Flipping images 37 Installing SDL_image 38 Using SDL_image 40 Table of Contents [ ii ] Tying it into the framework 42 Creating the texture manager 42 Using texture manager as a singleton 46 Summary 47 Chapter 3: Working with Game Objects 49 Using inheritance 49 Implementing polymorphism 55 Using abstract base classes 60 Should we always use inheritance? 61 Could the same thing be achieved with a simpler solution? 61 Derived classes should model the "is a" relationship 61 Possible performance penalties 62 Putting it all together 62 Summary 67 Chapter 4: Exploring Movement and Input Handling 69 Setting up game objects for movement 70 What is a vector? 70 Some common operations 72 Addition of two vectors 72 Multiply by a scalar number 73 Subtraction of two vectors 73 Divide by a scalar number 74 Normalizing a vector 74 Adding the Vector2D class 75 Adding velocity 76 Adding acceleration 77 Creating fixed frames per second 77 Input handling 79 Creating our input handler class 79 Handling joystick/gamepad input 80 SDL joystick events 80 Initializing joysticks 81 Listening for and handling axis movement 84 Dealing with joystick button input 91 Handling mouse events 93 Using mouse button events 93 Handling mouse motion events 95 Implementing keyboard input 96 Wrapping things up 98 Summary 100 Table of Contents [ iii ] Chapter 5: Handling Game States 101 A simple way for switching states 101 Implementing finite state machines 103 A base class for game states 103 Implementing FSM 106 Implementing menu states 110 Function pointers and callback functions 114 Implementing the temporary play state 117 Pausing the game 120 Creating the game over state 123 Summary 130 Chapter 6: Data-driven Design 131 Loading XML files 131 Basic XML structure 132 Implementing Object Factories 134 Using Distributed Factories 135 Fitting the factory into the framework 138 Parsing states from an XML file 140 Loading the menu state from an XML file 147 Loading other states from an XML file 150 Loading the play state 150 Loading the pause state 152 Loading the game over state 153 Summary 155 Chapter 7: Creating and Displaying Tile Maps 157 What is a tile map? 158 Getting familiar with the Tiled application 160 Parsing and drawing a tile map 165 Creating the TileLayer class 167 Creating the LevelParser class 168 Parsing tilesets 170 Parsing a tile layer 171 Drawing the map 175 Scrolling a tile map 180 Parsing object layers 182 Developing the ObjectLayer class 184 Summary 189 Table of Contents [ iv ] Chapter 8: Creating Alien Attack 191 Using the SDL_mixer extension for sound 193 Creating the SoundManager class 193 Setting up the basic game objects 196 GameObject revamped 196 SDLGameObject is now ShooterObject 199 Player inherits from ShooterObject 200 Lots of enemy types 204 Adding a scrolling background 205 Handling bullets 207 Two types of bullets 207 The BulletHandler class 209 Dealing with collisions 211 Creating a CollisionManager class 214 Possible improvements 216 Summary 216 Chapter 9: Creating Conan the Caveman 217 Setting up the basic game objects 218 No more bullets or bullet collisions 218 Game objects and map collisions 219 ShooterObject is now PlatformerObject 219 The Camera class 222 Camera-controlled map 224 The Player class 225 Possible additions 231 Summary 231 Index 233 |
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论