浅谈基于SDL的2D纵版弹幕射击游戏相关经验心得

2023-10-27

  浅谈基于SDL的2D游戏开发相关

前言:本人才疏学浅,大一新生一枚   写这篇文章的目是为了跟大家分享下自己的一些经验。


进入正题:首先本文这一切的一切都是基于SDL开发WINDOWS平台上的游戏。如今做2D游戏用到的图形库很多,大一这一年来学过 EASYX  、SDL 、OPENGL,但是为什么我要选择SDL来开发2D游戏?


EASYX:用过EASYX的都知道,EASYX不支持PNG格式,要想达到较好的贴图,有两种方式,1、要么你用一张原图一张掩码图来亦或后贴图,2、要么逐像素处理,这些方法不仅麻烦而且贴出来的图效果都不是很理想,除非你想做渣画质,这里不是黑EASYX而是EASYX确实存在这么一个短板。就因为这个问题后面果断抛弃EASYX了。


OPENGL: 众所周知的图形库了,整一个高端大气上档次的玩意。强悍的图形渲染和加速能力,秒杀任何2D和大部分3D,当然跟DX比起来还是有那么一点不足(个人观      点),这里之所以没有选择OPENGL,是因为OPENGL太高端,不适合很多游戏初学者使用,OPENGL太吃代码了,如果是高手的话用OPENGL那是完全没      问题的。


SDL: 注:这里及以后谈到的是SDL2.0版本不是1.2老版!

个人觉得SDL是介于EASYX和OPENGL之间,SDL之于EAXYX的优势在全屏模式下SDL支持硬件加速,支持PNG。之于OPENGL的差距在于不支持3D,不好实现窗口震动等游戏效果。SDL在全屏模式下支持硬件加速,自动限帧(60帧),快速载入PNG图片 (当你需要导入一些光影特效的时候你就会发现这个功能是多么的便捷,OPENGL载入PNG还需要做很多技术处理!)但是SDL本身的优势也是很明显的虽然她不是那么高端,但是开发一款2D游戏够用了。令人兴奋的是SDL与OPENGL一样支持跨平台!


游戏:

编译环境:VS2010 + SDL2,0;

语言:C/C++






待更新!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

浅谈基于SDL的2D纵版弹幕射击游戏相关经验心得 的相关文章

  • 【硬创邦】跟hoowa学做智能路由(二):从芯片开始

    上一章我们讲了 这次DIY活动的来龙去脉 本章我们将一起了解下路由器的架构 芯片 操作系统相关的知识 我们的目标是让大家都能做智能路由 所以hoowa会尽可能少涉及到嵌入式的知识 因为这孩子本身学习就不好 他自己也害怕那些所谓的各种 定义
  • delphi xe10.2 FIREDAC 三种连接

    以下都是在DELPHI XE10 2中测试通过 FireDAC supports three distinct options for connecting to your database These are Temporary conn
  • 越狱iOS设备利用itms-services协议,实现Safari一键安装IPA

    http kryhear asia blog 2012 07 14 use itms services install ipa to a jailbreak ios device 利用MobileInstallation实现IPA程序安装后
  • Python 3.8 pandas 安装不了

    如果您在安装 Pandas 时遇到了问题 有以下几种常见解决方案 检查您的 Python 版本是否为 3 8 Pandas 对于 Python 3 8 的支持可能不是很好 因此您可以尝试安装旧版本的 Pandas 检查您是否安装了所有 Pa
  • C语言这么厉害,它自身又是用什么语言写的?

    作者 码农翻身刘欣 出自 码农翻身 ID coderising 这是来自我的星球的一个提问 C语言本身用什么语言写的 换个角度来问 其实是 C语言在运行之前 得编译才行 那C语言的编译器从哪里来 用什么语言来写的 如果是用C语言本身来写的
  • opencv中图像的旋转

    opencv中进行图像旋转的方法 flip函数 rotate函数但是这两种函数只能进行90 180 270的旋转 CV EXPORTS W void flip InputArray src OutputArray dst int flipC
  • 《数据挖掘导论》笔记(四)

    分类 本章介绍分类的基本概念 讨论诸如模型的过拟合等关键问题 并提供评估和比较分类技术性能的方法 尽管本章主要关注一种称作决策树归纳的技术 但是本章讨论的大部分内容也适用于其他的分类技术 预备知识 分类任务的输入数据是记录的集合 每条记录称
  • SQL查询半年内没有违纪记录,并且期末考试总分为每个班级前10名的学生名单。(日期函数、where、group by)

    面试题 有三张表 学生表 期末成绩表 违纪表 查询半年内没有违纪记录 并且期末考试总分为每个班级前10名的学生名单 解题思路 可以把这个复杂业务问题 使用多维度拆解分析方法 拆解为以下3个子问题 1 从 违纪表 中查询半年内有违纪记录的学生
  • MMClassification Python 教程(二)

    若纠结查看格式可以移步 学习笔记https study chenkequan cn E6 B7 B1 E5 BA A6 E5 AD A6 E4 B9 A0 E6 A1 86 E6 9E B6 openLab E7 B3 BB E5 88 9
  • FBX与Opengl骨骼系统

    转自 http blog csdn net mink365 article details 6328033 FBX是Autodesk提供的一个三维模型格式 由于AutoDesk已经收购了Maya 3D max等流行三维建模软件 FBX可以说
  • hadoop集群配置

    一个具体的配置 这里只搭建一个三台主机的小机群 10 37 128 2 master namenode jobtracker master 主机名 10 37 128 3 salve datanode tasktracker slave1
  • 在服务器上部署 Nginx 并设置图片服务器

    当您在服务器上部署 Nginx 并设置图片服务器时 以下是大致的步骤 安装 Nginx 使用适用于您的操作系统的包管理器安装 Nginx 编辑 Nginx 配置文件 找到 Nginx 的配置文件 通常位于 etc nginx nginx c
  • matplotlib柱状图给指定的柱换颜色_Python全栈之路-15-matplotlib

    本文jupyter notebook 地址 github com import numpy as np import pandas as pd import matplotlib import matplotlib pyplot as pl
  • Redis持久化RDB与AOF

    前言 我们知道Redis是一款内存服务器 就算我们对自己的服务器足够的信任 不会出现任何软件或者硬件的故障 但也会有可能出现突然断电等情况 造成Redis服务器中的数据失效 因此 我们需要向传统的关系型数据库一样对数据进行备份 将Redis
  • MySQL完整笔记

    注 本篇大部分内容都是尚硅谷mysql课程的笔记 如果需要课程以及源码 请至官网下载 下载地址 数据库 介绍 1 概念 1 DB 数据库 保存一组有组织的数据的容器 2 DBMS 数据库管理系统 又称为数据库软件 产品 用于管理DB中的数据
  • double类型(浮点数)是否相等的判断方法

    浮点数不精确 计算机内部无法用二进制的小数来精确的表达 public class Tesz public static void main String args double a 0 1 float c 0 1f System out p
  • MixFormer步骤流程概述

    参考图 Stage1 1 输入 模板 在线模板 搜索三组图像 2 为每个输入添加位置编码 实际上是nn Conv2d 通道3 gt 64 卷积核大小 7 7 步长 4 4 填充 2 2 的卷积操作 然后归一化 3 模板 在线模板和搜索做拼接
  • 二次函数求根c语言

    include
  • mac电脑 安装homebrew、nvm、node、nrm

    安装homebrew bin zsh c curl fsSL https gitee com cunkai HomebrewCN raw master Homebrew sh brew v 查看版本号 根据提示 继续执行 不然之后安装nvm
  • Linux正向区域dns搭建

    挂载光盘使用本地yum源文件 root www yum repos d mv repo bak root www yum repos d cd mnt root www mnt mkdir cdrom root www mnt mount

随机推荐

  • Java常用集合类、接口

    在Java中有一套设计优良的接口和类组成了Java集合框架 使程序员操作成批的数据或对象元素极为方便 所有的Java集合都在java util包中 1 List接口及其实现类 List接口继承于Collection接口 List接口及其实现
  • Django视图学习——在视图中使用模型

    视图不仅可以获取客户端长传的数据 还可以通过模型访问后台的数据库 本文介绍以下内容 1 在视图中输出模型数据 2 数据分页 1 在视图中输出模型数据 任务 定义一个模型 然后通过该模型范围访问数据库 1 在项目子文件夹chapter5中添加
  • go-gin 自定义应用metrics

    文章目录 前言 一 gin添加go运行时metrics 1 创建一个gin server 2 创建一个metrics的路由 3 启动服务 4 查看结果 metrics页面 pprof页面 二 gin自定义应用程序metrics 官方库示例
  • 在python环境下使用selenium + chromedriver截屏网页

    在python环境下使用selenium和chromedriver工具 自动将网页内容进行截屏保存 安装 selenium比较简单 如下即可 pip install selenium 据说 chromedriver的版本一定要与Chrome
  • 顺序表起步

    时间限制 1000ms 内存限制 256MB 1 按照课本 编写顺序表及其基本运算 顺序表定义使用以下代码 typedef int datatype 结点的数据类型 假设为int const int maxsize 100 最大表长度 假设
  • fstream、ifstream、ofstream和stringstream

    ifstream ifstream 是 C 标准库中用于文件读取的输入流类之一 用于从文件中读取数据 可以通过打开文件并将其与 ifstream 对象绑定 然后使用输入操作符 gt gt 从文件中读取数据 代码示例 include
  • pgsql删除表中所有数据_PostgreSQL数据库中的表和数据(Tables & Data)

    照顾好你的数据 数据库也会照顾你 保持数据库的整洁 查询起来也会更快 应用也会少些错误 半夜被叫醒解决数据问题并不酷 接下来 就和章郎虫博主一起来了解postgresql的表和数据吧 一 选择一个好的数据库对象名 Choosing good
  • Cascade-MVSNet CVPR-2020 学习笔记总结 译文 深度学习三维重建

    文章目录 4 Cascade MVSNet CVPR 2020 4 0 主要特点 4 1 背景介绍 4 2 代价体构造回顾 4 3 Cascade MVSNet 4 4 Loss的设置 4 5 Cascade MVSNet实战操作 4 6
  • echarts图表,利用仪表盘类型变换成环形渐变图

    使用仪表盘类型图表type gauge 变换成以上图片样式 实现环形图的渐变以及背景环 1 计算当前数据占总数的比例 从而得出当前环开始角度和结束角度 目前上图中开始角度都是0 结束角度通过数据占比得到 当前数据 三个数和 360 得到结束
  • 【JS案例】分页器——使用原生JavaScript实现

    在使用vue编写完一个分页器组件后 我对分页器的底层逻辑产生了兴趣 想在此组件的基础上再深入了解一些分页器的底层逻辑 了解vue与原生js的区别 我在github上看了一些大神写的分页器 属实牛逼 之后自己也根据他们的编写逻辑 反复推敲了个
  • 批量挖掘SRC思路与实践二

    批量刷SRC实践 1 用友nc的命令执行漏洞案例 Poc http xxx xxxx xxxx xxxx servlet ic bsh servlet BshServlet gt http xxx xxxx xxxx xxxx servle
  • Windows下装linux子系统

    1 打开 适用于linux的windows子系统 功能 控制面板 程序 启用或关闭windows功能 找到 适用于linux的windows子系统 并打钩 如图 2 打开 开发者选项 设置 搜索 开发者设置 开启 3 去微软自带软件商店下载
  • 宝塔面板+悟空CRM功能模块安装搭建部署教程 环境配置

    悟空CRM目录结构 wk modules module 无代码模块 common 基础模块 平台使用的主要技术栈 名称 版本 说明 spring cloud alibaba 2021 0 4 核心框架 spring boot 2 6 11
  • L2TP&PPTP

    L2TP 1 引言 隧道技术是建立安全VPN的基本技术之一 类似于点对点连接技术 在公用网建立一条数据遂道 让数据包通过这条隧道传输 隧道是由隧道协议形成的 分为第二 三层隧道协议 第二层隧道协议有L2F PPTP和L2TP等 是先把各种网
  • eclipse cdt无法调试_【STM32】搭建基于Eclipse平台的STM32调试环境

    以NuttX工程为例 硬件平台STM32F103C8 1 导入工程 File gt Import 选择Existing Code as Makefie Project 点击next 输入工程名字 nuttx 以及工程路径 home boot
  • r语言 list添加_R语言 第五章 高级绘图工具(5)

    散点图 散点图可用来描述两个连续型变量间的关系 在lattice中 可以使用xyplot函数生成散点图 散点图可以用来描述两个连续型变量间的关系 再lattice中 可以使用xyplot函数生成散点图 实例 利用R自带的焉尾花数据集iris
  • 字符串转化为对象的几种方法

    参考 https www cnblogs com UniverseWang p 6973396 html
  • Spring 中@Transactional(rollbackFor = Exception.class) 事物回滚

    Transactional rollbackFor Exception class 事物回滚 public JsonResult addLike Integer userId List
  • java fx exe_javaFx打包exe流程

    环境 oracle jdk 11 0 2 LTS gitBash cmd javafx13 gradle 5 2 1 首先打包jar 两个压缩包都一样的 解压后会有javafx的依赖jar包和项目jar包 在这里 需要用到几个工具 安装就不
  • 浅谈基于SDL的2D纵版弹幕射击游戏相关经验心得

    浅谈基于SDL的2D游戏开发相关 前言 本人才疏学浅 大一新生一枚 写这篇文章的目是为了跟大家分享下自己的一些经验 进入正题 首先本文这一切的一切都是基于SDL开发WINDOWS平台上的游戏 如今做2D游戏用到的图形库很多 大一这一年来学过