游戏开发论坛

 找回密码
 立即注册
搜索
楼主: instemast

我改学C++,用C++开发游戏,是不是一个错?

[复制链接]

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-6-27 14:27:00 | 显示全部楼层

Re:我改学C++,用C++开发游戏,是不是一个错?

只不过C++写的几万行底层类库,无法包装成COM供给VB利用,而C++代码内,
却封装了类似VB6的一些优秀特性,如 Event,哭笑不得;

如果起初采用VB6编写可能不会有这个问题,而且和C++区别不大,因为C++里我也参考了VB的一些特性比如event。。。

0

主题

53

帖子

53

积分

注册会员

Rank: 2

积分
53
发表于 2008-6-27 20:07:00 | 显示全部楼层

Re:我改学C++,用C++开发游戏,是不是一个错?

从上述言论看出楼主或许是个高手,但如果是高手我想也不会问出这种低级问题,值不值得你该问自己,别人说的对你有用吗?再说听上去楼主口气很强硬,那还来问什么啊?不情愿问还是别问的好!

8

主题

130

帖子

156

积分

注册会员

Rank: 2

积分
156
发表于 2008-6-27 20:42:00 | 显示全部楼层

Re:我改学C++,用C++开发游戏,是不是一个错?

现在我们开发游戏都是用的C++做的。选择C++是因为他有适合的特定优势。但是,如果哪天D语言成长起来了,我想用它开发游戏的也会很多。什么语言都有他所内在的思维引导信息,抓住了就好,而且语言之间通常是相通的。像很多人都懂好几门语言的。我读大学时也是C/C++/Java/VB/汇编。我同事也是类似,连我们公司的策划也用过VB。
所以,用C++做游戏有没有错的问题,其实是不存在的。

35

主题

1735

帖子

1739

积分

金牌会员

Rank: 6Rank: 6

积分
1739
QQ
发表于 2008-6-27 21:22:00 | 显示全部楼层

Re:我改学C++,用C++开发游戏,是不是一个错?

嗯,有道理。想必是楼主看到游戏之家用VB做了不少游戏后,觉得自己抛弃VB有些可惜而发此感慨吧?毕竟楼主也是精通VB的。 [em17]

34

主题

629

帖子

629

积分

高级会员

Rank: 4

积分
629
发表于 2008-6-27 21:30:00 | 显示全部楼层

Re:我改学C++,用C++开发游戏,是不是一个错?

家里蹲大学的高材生我见过不少,他们当中有一些最终成为了高手,不过都是在工作很多年以后

7

主题

438

帖子

438

积分

中级会员

Rank: 3Rank: 3

积分
438
发表于 2008-6-28 13:34:00 | 显示全部楼层

Re:我改学C++,用C++开发游戏,是不是一个错?

没有包含任何第三方头文件(连标准库都没有包含)
————
Bjarne stroustrup知道你这么用C++,肯定很伤心,更不要说Alexander Stepanov了。

2

主题

9

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2008-6-29 23:31:00 | 显示全部楼层

Re:我改学C++,用C++开发游戏,是不是一个错?

对,你错了,你应该用汇编作游戏,运行速度比C++快很多~很~~多~~~……

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-6-30 01:51:00 | 显示全部楼层

Re: Re:我改学C++,用C++开发游戏,是不是一个错?

ricohcanon: Re:我改学C++,用C++开发游戏,是不是一个错?

嗯,有道理。想必是楼主看到游戏之家用VB做了不少游戏后,觉得自己抛弃VB有些可惜而发此感慨吧?毕竟楼主也是精通VB的。 [em17]


呵呵,确实如此。
在我看来,C++是最最美妙的语言,只有C++才是王道,可是,一些VB6用户居然。。
所以时而不免会有些感触啊。
===================
托各位的福,在不修改现有C++代码的前提下,我已经解决了Event的COM封装,以及包装成COM时我的RTTI的兼容性问题。可以从我C++的某个接口型,"Cast"到外围的com包装类的IUnknown,这很重要,可以实现接口和COM包装后的down-cast。方法是:
首先继承我的某个C++类,比如
class _CButton_ : public inst::ui::CButton { IUnknown *pOuter;
并重写 Cast 方法。对于参数"COM@IUnknown" 返回 pOuter。
而 ::CButton (CoClass) 包含 _CButton_ 并保持一个在virtual根类的RefCount.
为什么不直接让CoClass继承CButton?这是因为RefCount,我不想改原有代码

Event也非常有意思。其实,我Event主要是通过队列实现的。但不采用恶心的消息映射,而用动态回调。但本质却是队列。要支持COM也很简单,只要在RaiseEvent的时候多加一个事件代码,而且不管有没有handler,都放入队列(把handler队列当作MSG队列用),不过,我不想改动原来代码,所以,
可以让包装的COM类,添加handler到被包装的对象的所有Event中,等到接受到事件时,
用COM, VB可以支持的方法,通知VB程序(用消息队列,或ActiveX标准的event)

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-6-30 01:52:00 | 显示全部楼层

Re: Re:我改学C++,用C++开发游戏,是不是一个错?

ricohcanon: Re:我改学C++,用C++开发游戏,是不是一个错?

嗯,有道理。想必是楼主看到游戏之家用VB做了不少游戏后,觉得自己抛弃VB有些可惜而发此感慨吧?毕竟楼主也是精通VB的。 [em17]


呵呵,确实如此。
在我看来,C++是最最美妙的语言,只有C++才是王道,可是,一些VB6用户居然。。
所以时而不免会有些感触啊。
===================
托各位的福,在不修改现有C++代码的前提下,我已经解决了Event的COM封装,以及包装成COM时我的RTTI的兼容性问题。可以从我C++的某个接口型,"Cast"到外围的com包装类的IUnknown,这很重要,可以实现接口和COM包装后的down-cast。方法是:
首先继承我的某个C++类,比如
class _CButton_ : public inst::ui::CButton { IUnknown *pOuter;
并重写 Cast 方法。对于参数"COM@IUnknown" 返回 pOuter。
而 ::CButton (CoClass) 包含 _CButton_ 并保持一个在virtual根类的RefCount.
为什么不直接让CoClass继承CButton?这是因为RefCount,我不想改原有代码

Event也非常有意思。其实,我Event主要是通过队列实现的。但不采用恶心的消息映射,而用动态回调。但本质却是队列。要支持COM也很简单,只要在RaiseEvent的时候多加一个事件代码,而且不管有没有handler,都放入队列(把handler队列当作MSG队列用),不过,我不想改动原来代码,所以,
可以让包装的COM类,添加handler到被包装的对象的所有Event中,等到接受到事件时,
用COM, VB可以支持的方法,通知VB程序(用消息队列,或ActiveX标准的event)

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-6-30 01:57:00 | 显示全部楼层

Re: Re:我改学C++,用C++开发游戏,是不是一个错?

dantezhangyi: Re:我改学C++,用C++开发游戏,是不是一个错?

从上述言论看出楼主或许是个高手,但如果是高手我想也不会问出这种低级问题,值不值得你该问自己,别人说的对你有用吗?再说听上去楼主口气很强硬,那还来问什么啊?不情愿问还是别问的好!


您说的很有道理,实话说,问这个问题的时候也只是有感而发,也不知道问这个有什么意义。。也许,就是“无厘头”的发帖把,见谅
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-22 01:27

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表