SDL2
cuiyong_cn
这个作者很懒,什么都没留下…
展开
-
0. SDL游戏开发
文章目录环境准备还是hello world简单解释环境准备IDE选用codeblock带mingw(跨平台, 可定制, 轻量), 编译器gcc.SDL库编译(或下载预编译的库)这里不教怎么搭环境, 任何语言开发, 自己都应该学会如何搭环境. 自行搜索资料还是hello world#include <SDL.h>#include <ios原创 2019-03-14 22:49:47 · 8502 阅读 · 2 评论 -
9. 处理输入
文章目录输入类型上代码输入类型游戏有很多输入, 如键盘, 鼠标, 手柄等. SDL库将这些处理变得非常简单, 我们这里将这几种输入统一到一起. 这里不讲太多, 因为目前我们对输入的处理就是检测输入设备的状态, 来更新游戏对象的状态.上代码看下代码就行了, 然后对于游戏中的对象怎么使用输入设备的状态, 自己发挥// InputHandler.h#ifndef INPUTHANDLER_H...原创 2019-03-22 19:44:21 · 179 阅读 · 0 评论 -
6. GameObject
文章目录为什么需要上代码后续为什么需要一个游戏包含很多对象, 如NPC(non-player character), 怪物, 子弹, 门等. 如果包含这么多对象, 如果管理就成了问题, 这里就用到C++中OOP(Object-Oriented Programming).上代码OO的一个难点是如何开始. 我们可以简单分析一下. 游戏中所有对象的共性是什么, 将这些抽出来就能简单的形成一个基类...原创 2019-03-19 12:19:52 · 191 阅读 · 0 评论 -
5. TextureManager
文章目录问题解决问题随着游戏assets的增多, 资源一直在init中管理, 会给后期维护或修改带来挑战.解决所以我们可以将其抽离出来.// TextureManager.h#ifndef TEXTUREMANAGER_H_INCLUDED#define TEXTUREMANAGER_H_INCLUDED#include "SDL.h"#include <string&g...原创 2019-03-18 13:20:40 · 743 阅读 · 0 评论 -
4. 让图片动起来
文章目录资源原理解释资源原理动画其实就是利用人眼视觉的暂留效应, 将一帧一帧的图片快速播放, 看起来就像物体动起来了. 上述是一张由6帧图片组成的一张图片, 每一帧为128*82. 我们为了实现动态效果, 将src_rect.x每隔一段时间向前推进128px就行了.(即上图中的红框, 每个一段时间移动到下一帧, 也就是蓝框的位置). 图片的加载和第三篇文档一样. 主要代码变更如下// G...原创 2019-03-17 16:07:11 · 1865 阅读 · 0 评论 -
8.物体速度和加速度, 帧率问题
文章目录问题向量帧率问题问题目前我们的物体都是以匀速来运动的. 但是现实中能动的物体基本都会有速度变化的过程. 如何实现速度的变化. 这里会用到向量的知识.向量向量有2个属性, 方向和大小. 方向就是x和y(针对2D). 大小是x2+y2\sqrt{x^2+y^2}x2+y2. 代码如下:// Vector2D.h#ifndef VECTOR2D_H_INCLUDED#define...原创 2019-03-20 17:30:22 · 990 阅读 · 0 评论 -
3. 图片资源加载
文章目录图片资源加载简单解释图片资源加载SDL可加载很多格式的图片资源, 自带bmp格式加载. 扩展包SDL_image中有其他格式的加载API. 我们先看bmp加载. 自行找bmp资源(会自己制作游戏资源的就更好了).//Game.h#ifndef GAME_H_INCLUDED#define GAME_H_INCLUDED#include &amp;lt;SDL.h&amp;gt;class...原创 2019-03-15 14:21:22 · 259 阅读 · 0 评论 -
2. Game Class
文章目录Game ClassGame Class根据上面那个简单框架结构, 将代码包装到一个Game类里// Game.h#ifndef GAME_H_INCLUDED#define GAME_H_INCLUDED#include <SDL.h>class Game{public: bool init(const char* title, ...原创 2019-03-15 13:34:44 · 369 阅读 · 0 评论 -
7. 重新审视
文章目录重新审视重新审视如果按照上一节讲的来做, 那么后续我们可以以GameObject来衍生处很多其他类, 但是这里有个问题. 如果导出类忘记了实现其中的几个方法, 那么游戏运行中可能会出现意外情况. 还有就是无法实现统一管理, 因此需要借助抽象类. 因此重新定义GameObject.// GameObject.hclass GameObject{public: virtua...原创 2019-03-19 16:45:01 · 221 阅读 · 0 评论 -
1. 游戏的结构
结构图游戏一旦初始化之后, 接着就会进入到一个无限循环中, 根据用户的输入, 更新状态, 然后重新渲染. 直到点击退出后, 跳出循环, 进行资源释放并退出.这是一个游戏开发的基本架子. 后面的就按照这个架子走....原创 2019-03-14 23:15:08 · 569 阅读 · 0 评论 -
10. 游戏状态
文章目录资源状态机我们进入一个游戏的时候, 通常会播放一段开场动画, 然后显示一个菜单界面. 动画(splash)稍微难一点, 我们先不做, 先看如何实现菜单.资源资源的加载还使交由TextureManager来完成即可.状态机为了便于管理资源和对象, 我们这里来使用有限状态机(Finite State Machine)来重写我们的程序. 首先我们创造一个抽象类, 然后以此为基础创建M...原创 2019-03-27 00:22:45 · 442 阅读 · 0 评论