SDL/SDL2_小恐龙游戏初尝试

第一次尝试,抱住路过的佬们的大腿!(带带我呀)


前言

现在是2023.1.15.23:08,又在赶ddl,但其实1月初就做完了,但一直拖延到今晚才来记录一下,也是借机再复盘一下这次4个星期的历程,以及遇到的问题吧!作为纯纯新手小白的我,这篇记录肯定会有很多不严谨,甚至是错误的地方,也请看到的佬们多多指教,如果能够纠正我,真的感激不尽!!!(真的对很多东西一知半解,甚至是完全不明白,仅限于拿过来用,甚至是照抄的程度!)


一、SDL学习的历程

这部分看了两个系列的视频,时长总计

1.【事SDL2的一些基本操作捏~】 https://www.bilibili.com/video/BV1QZ4y197Yk/?          share_source=copy_web&vd_source=9d1b426da133239720fc8c3d6510f712

sa酱带领我进入SDL的世界。认识的最基本的:main函数的创建,renderer的渲染,事件处理模块,QUIT以及free的重要性。

2.【SDL入门教程】 https://www.bilibili.com/video/BV1gs411X7zz/?share_source=copy_web&vd_source=9d1b426da133239720fc8c3d6510f712

同样也是SDL基础的入门引领。


3.【SDL2 C语言跨平台游戏开发基础 陈云老师】 https://www.bilibili.com/video/BV1rK411V7eu/?share_source=copy_web&vd_source=9d1b426da133239720fc8c3d6510f712

开始实现动画,但是后来才发现,实现动画和游戏操控的逻辑完全不一样,又反复纠结,思考了一个星期左右。


4.【C语言编写游戏(SDL)】 https://www.bilibili.com/video/BV11W411373o/?share_source=copy_web&vd_source=9d1b426da133239720fc8c3d6510f712

我真正领悟了,什么是游戏的操控!从这里,项目才有了实质性的进展。

二、问题以及我的解决方法

1.环境配置

至今还是感觉环境配置真的好难,好难!!!

我的方法是把SDL的库下载之后,直接在CMakelist里面写下了如下的代码,但是现在也不知道什么才是标准的写法。

(sa酱gg的指引)

(【【配环境如此简单】C 图形界面 SDL2 配置教程(2022新版)】 https://www.bilibili.com/video/BV1w841157uD/?share_source=copy_web&vd_source=9d1b426da133239720fc8c3d6510f712

target_link_libraries(V2V_Adventure  mingw32)
target_link_libraries(V2V_Adventure SDL2main)
target_link_libraries(V2V_Adventure  SDL2)
target_link_libraries(V2V_Adventure SDL2_image)
target_link_libraries(V2V_Adventure SDL2_ttf)

2.如何渲染图片

sa酱gg的教程里教了,SDL_Createsurface+SDL_CreateTextureformSurface+SDL_Rendererpresent,不过这里写的不能保证对,在IDE(编译器)里面输入一点就会有提示啦,不过后来我改成直接CreateTexture了,前一种方法内存占用更多,但反应更快,后一种则相反,


3.如何做动画

刚开始是每次先全部present之后,clear,再重新present,来改变人物的位置,后来才发现可以直接通过修改图像的x,y来更新位置。


4.如何更新位置

从这里开始才是精髓!用了一个结构体存储所有需要的东西,eg:人物,障碍物,道具;然后在draw,gameplay模块都当做参数传进去!就起到控制的效果啦!这一步简直就是灵魂!


5.怎样渲染分数

因为分数是在实时变化的,可是SDL的渲染字体部分函数只支持const char类型的,那要怎么把一个变量给渲染出来呢?用sprintf函数!每次都sprintf一次就好啦!!!


6.段错误

段错误的类型很多,我这次犯的是乱用指针,具体表现为在函数体内部又开了一个SDL_Renderer,导致renderer冲突了,所以不可以乱用指针!!!


7.电脑插上电就跑得快???

emem,这个也是我没有完善的地方,是因为没有控制帧率,导致虽然游戏的速度虽然是设置好的,但是,与电脑的cpu性能直接挂钩惹!

三.心得

第一次接触编程的世界,我现在的水平在与链表搏斗的阶段,真的觉得程序员真的各个都是聪明人!!编程让我看待世界发生了改变,也逐渐开始习惯于分析现象背后的原理了,我不像佬们,三两天搞定,这个小游戏,我总共花了三到四个星期,但其实最多的时间还是花在了找引导资源以及做自我的心理建设了,希望以后做事情,特别是写程序可以不要急躁,不要崩溃,要有韧性,有三四个小时毫无进展的淡定,骂归骂,编程在我心里,其实真的还是挺有意思的,希望未来的我看到这篇记录,能够会心一笑吧!

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值