关于cocos2d-x的几个问题

本人最近再学cocos2d-x,每次拿vs2012编译源代码的时候都有一下警告warningC4530:使用了C++异常处理程序,但未启用展开语义。请指定/EHsc不知道... 本人最近再学cocos2d-x,每次拿vs2012编译源代码的时候都有一下警告
warning C4530: 使用了 C++ 异常处理程序,但未启用展开语义。请指定 /EHsc
不知道什么意思,网上的方法也没有。
第二:纹理是什么意思啊,我理解的就是个图片,可是图片不是有精灵类吗,要纹理干什么
还有,游戏中的渲染是什么意思啊。
求懂的人指点一下,谢了。
展开
 我来答
马克思教导我们
2013-10-28 · TA获得超过117个赞
知道答主
回答量:57
采纳率:0%
帮助的人:41.1万
展开全部
  1. 这个警告的意思是说你在代码的某个地方执行了异常处理,比如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。


  2. 纹理确实是图片,只不过是一张大图,比如一个游戏中很多的人物,树木,房屋图片等等,这些都是一个一个的精灵,把他们都画在一张大纸上,这张大纸就是纹理。

    这样做的原因是:进入游戏处理逻辑之前先加载这张大纸,这张大纸就在缓存里了,以后每次要用不同精灵的时候都从这张大纸上取,速度就很快。如果不用纹理,每次生成精灵都要返回到工程目录去查找文件,再加载,会很慢,影响性能。

    总结来说就是,用纹理是缓存级别的存取,不用纹理是硬盘级别的存取;一次加载,终身受益。

    一般的做法是:用专门的软件先把单个图片拼成一张大图,即纹理图。再加载纹理图。


  3. 渲染是对显卡而言的,是显卡把图片画出来的过程。比如一个正方形放在平面坐标系中,它有大小,位置,旋转角度,颜色,这四个属性,所以它可以被等比例的放大缩小,平移到其他位置,绕中心点或某个点旋转一个角度,涂上任意颜色。这四个过程就叫做渲染。


    万事开头难,加油!

追问
你的回答让我明白了不少,还有一种说法是这样的,图片在硬盘上就叫做图片,如果图片在缓存或者是内存中的话就叫做纹理,单个图片也是这样。而渲染就是将内存中的纹理画到屏幕上的过程。请问,大神如何看。
追答
意思都差不多。
每个人都不一样,看你自己怎么理解了,实践+理解,确保学到的是正确的东西,要有自己的一套思想,我说的也不一定适合你的想法。
网易云信
2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同... 点击进入详情页
本回答由网易云信提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式