Project1.exe已停止工作.我似乎找不到我的SDL代码到底出了什么问题

Project1.exe Has Stopped Working. I cant seem to find what the heel is wrong with my SDL Code

本文关键字:代码 问题 什么 SDL 我的 停止工作 exe 找不到 Project1      更新时间:2023-10-16

好吧,我马上道歉,因为代码实际上有点大。问题是,我在SDL工作,实际上是在学习。我已经设法制作了动画,但我决定要更深入一点。这就是代码的工作原理

应用程序-用途:这有主循环,初始化函数,渲染函数和整个软件都源于此。

动画-用途:这将包含并声明类动画中的所有函数。只有当名为Running的bool变量为true时,它才有效。

表面-用途:这将把文件加载到表面上,使某些颜色透明,并在主表面上绘制图像或部分图像。

事件-用途:这具有事件的所有虚拟功能

对象-用途:这是主要部分。它运行得很好。之前,我会在主类上有一个名为Yoshi的曲面,我会使用该曲面与动画交互。我认为在主类上显示"Character"的方法有点令人困惑,当屏幕上显示多个图像时,这会给我带来问题。因此,我决定创建一个名为Object的类,它将有自己的SDL_Surface,在屏幕上有自己的位置,它自己的变量决定了它是哪个框架。。。类似的东西

Object MainCharacter;

因此,我可以单独操作该角色,如果我需要在屏幕上有另一个对象,我只需要使用

Object *SecondCharacter;

等等。。。因此,OBJECT类将调用Animation。APP类将通过一个类似的函数来渲染所有图像

MySurface::OnDraw(Surf_Display, MainCharacter.Img_Surface, MainCharacter.RetrievePosX(), MainCharacter.RetrievePosY(), MainCharacter.RetrieveFrameByID(0), MainCharacter.RetrieveFrameByID(1), 64, 64);

嗯。。。但问题是:代码停止工作。这还远远不是一个完成的代码,但我想立即解决这个问题,所以我只能在它已经有了基础之后才能完成。

以下是所有的文件:有些文件的行数不多。我还写了一些评论来帮助任何可能帮助我的人。


标头:

动画.h-http://pastebin.com/v4REcmBd

对象.h-http://pastebin.com/KdeamZTG

事件.h-http://pastebin.com/dpQ7zwpG

CA第h-页http://pastebin.com/5zZYwDjv

表面.h-http://pastebin.com/S66ChQ3f


来源:

Surface.cpp-http://pastebin.com/KRgAkHpw

对象.cpp-http://pastebin.com/RtDRwVj4

Events.cpp-http://pastebin.com/dpXn8Rh3

OnRender.cpp-http://pastebin.com/AqgMTacb

OnLoop.cpp-http://pastebin.com/UAeAt7y6

OnInit.cpp-http://pastebin.com/1iiZVeyK

OnEvent.cpp-http://pastebin.com/AjRXnKC1

OnCleanUp.cpp-http://pastebin.com/cv0M11nV

CApp.cpp-http://pastebin.com/L0jhfWY8

动画.cpp-http://pastebin.com/0BZhh6TG


好的,就是这些。有些真的很短。如果有人能帮我找出我的错误在哪里,我会很高兴的。除此之外,我真的很想对软件的结构发表意见,你认为我所做的是实用的吗?你在创建SDL软件或游戏时使用什么设计???

在评论中被告知,这发生在Source.cpp的第12行,上面写着

Res = SDL_DisplayFormat(Temp);

并在谷歌上为您搜索了SDL_DisplayFormat,我发现了这个手册页面

底部附近写着:

新手提示

在使用SDL_DisplayFormat函数之前,必须调用SDL_Init。如果不这样做,您的程序将因访问违规而崩溃。