关于cocos2d-x的几个问题
warning C4530: 使用了 C++ 异常处理程序,但未启用展开语义。请指定 /EHsc
不知道什么意思,网上的方法也没有。
第二:纹理是什么意思啊,我理解的就是个图片,可是图片不是有精灵类吗,要纹理干什么
还有,游戏中的渲染是什么意思啊。
求懂的人指点一下,谢了。 展开
这个警告的意思是说你在代码的某个地方执行了异常处理,比如try{}catch{}语句,但编译选项里面没有支持异常处理的操作。
解决方法是:在makefile文件中加上“/EHsc”这几个字,这是命令行命令,参数意义如下:
/EH{s|a}[c][-]
参数
a 捕获异步(结构化)异常和同步 (C++) 异常的异常处理模型。
s 仅捕获 C++ 异常并通知编译器假定 extern C 函数确实引发了异常的异常处理模型。
c 如果与 s (/EHsc) 一起使用,则仅捕获 C++ 异常并通知编译器假定 extern C 函数从未引发 C++ 异常。/EHca 等效于 /EHa。
使用 /EHs 指定同步异常处理模型(没有结构化异常处理异常的 C++ 异常处理)。如果使用 /EHs,那么 catch 子句将不会捕获异步异常。此外,在 Visual C++ 2005 中,当生成异步异常时,即使处理了异步异常也不会损坏范围内的所有对象。在 /EHs 下,catch(...) 仅捕获 C++ 异常。将不捕获访问冲突和 System.Exception 异常。
使用 /EHa 指定异步异常处理模型(具有结构化异常处理异常的 C++ 异常处理)。/EHa 可能导致映像性能较差,因为编译器将不会积极地优化 catch 块,即使编译器没有发现 throw 异常。
如果希望捕获由 throw 以外的内容引发的异常,请使用 /EHa。
纹理确实是图片,只不过是一张大图,比如一个游戏中很多的人物,树木,房屋图片等等,这些都是一个一个的精灵,把他们都画在一张大纸上,这张大纸就是纹理。
这样做的原因是:进入游戏处理逻辑之前先加载这张大纸,这张大纸就在缓存里了,以后每次要用不同精灵的时候都从这张大纸上取,速度就很快。如果不用纹理,每次生成精灵都要返回到工程目录去查找文件,再加载,会很慢,影响性能。
总结来说就是,用纹理是缓存级别的存取,不用纹理是硬盘级别的存取;一次加载,终身受益。
一般的做法是:用专门的软件先把单个图片拼成一张大图,即纹理图。再加载纹理图。
渲染是对显卡而言的,是显卡把图片画出来的过程。比如一个正方形放在平面坐标系中,它有大小,位置,旋转角度,颜色,这四个属性,所以它可以被等比例的放大缩小,平移到其他位置,绕中心点或某个点旋转一个角度,涂上任意颜色。这四个过程就叫做渲染。
万事开头难,加油!
你的回答让我明白了不少,还有一种说法是这样的,图片在硬盘上就叫做图片,如果图片在缓存或者是内存中的话就叫做纹理,单个图片也是这样。而渲染就是将内存中的纹理画到屏幕上的过程。请问,大神如何看。
意思都差不多。
每个人都不一样,看你自己怎么理解了,实践+理解,确保学到的是正确的东西,要有自己的一套思想,我说的也不一定适合你的想法。
2023-12-06 广告