使用C++编游戏需要有学编程需要什么基础础吗

拒绝访问 | www.ggdoc.com | 百度云加速
请打开cookies.
此网站 (www.ggdoc.com) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(3e7bd47e3b3e439a-ua98).
重新安装浏览器,或使用别的浏览器51CTO旗下网站
使用C++编写游戏
《通过游戏编程实战教新手学C++编程》第1章类型、变量与标准I/O:Lost Fortune,本章将介绍编写一流游戏的标准语言-- C++的基础知识。本节为大家介绍如何使用C++编写游戏。
作者:万千 译来源:清华大学出版社| 09:58
第1章 类型、变量与标准I/O:Lost Fortune
游戏编程的要求很高。它要求程序员和硬件将其能力都发挥到极致。但即便是没有做到极致,游戏也能让玩家非常满意。本章将介绍编写一流游戏的标准语言-- C++的基础知识。具体而言,本章内容如下:
在控制台窗口中显示输出
执行算术运算
使用变量对数据进行存储、操作和检索
获取用户输入
使用常量与枚举类型
使用字符串
1.1& C++简介
全世界数以百万计的程序员都在使用C++。它是编写计算机应用程序的最流行的语言之一,而且是编写大预算计算机游戏的最流行的语言。
Bjarne Stroustrup发明的C++是C语言的直系后代。实际上,C++作为C语言的超集,几乎包含它的所有内容。不仅如此,C++还提供了更好的问题解决方式和一些全新的功能。
1.1.1& 使用C++编写游戏
游戏程序员选择C++的原因各种各样,下面列出其中一些:
高速。经过精良编写的C++程序速度明显要快。C++的设计目标之一就是实现高性能。如果您想从程序中获取更多的性能提升,可以在C++中使用汇编语言(一种最底层的、人类可读的编程语言)来与计算机硬件直接通信。
灵活。C++是一种支持包括面向对象编程在内的不同编程方式的多范型语言。与其他一些现代语言不同,C++并不会强制程序员使用某一特定编程方式。
良好的支持。源于C++在游戏行业的悠久历史,现在有大量资源库可供C++游戏程序员使用。这些资源包括图形API、2D、3D、物理以及声音引擎。为了尽可能加快游戏开发的进度,C++程序员可以使用所有这些已有的代码。【责任编辑: TEL:(010)】 &&&&&&
大家都在看猜你喜欢
热点热点头条头条热点
24H热文一周话题本月最赞
讲师:51278人学习过
讲师:132692人学习过
讲师:153613人学习过
精选博文论坛热帖下载排行
JBuilder 2006是一款强大的Java企业级开发平台,其集成了几乎所有的Java技术,涵盖了软件开发生命周期的各个过程。本书深入浅出地介绍了JBu...
订阅51CTO邮刊用C++编游戏的话用哪个编译器?Visual C++吗,或者用其它语言
我打算搞游戏编程,请游戏行业的前辈们帮个忙推荐个编译器...
08-11-12 &
C++编译器如下: GCC家族有 Cygwin Mingw32 DJGPP Dev-C++(Mingw32) 还有正宗的GNU GCC 2.95.5~3.0.0.4版本 MS家族有 MSC 5.0、6.0、7.0 MSQC 1.0、2.5 MSVC 1.0、4.2、6.0、7.0 Borland家族有 TC 1.0、2.0 TC++ 1.01、3.0 BC 3.0、3.1、4.0、4.5、5.0、5.02 BCB 3.0、5.0、6.0 其它有 Intel C/C++ 5.0 Watcom C/C++ 11.0、11.0c VectorC 1.3.3 IBM VisualAge for C++ DigitalMars C/C++ KAI C/C++ 4.03f for RedHat 7.2 Lcc4.1 LCC-WIN32 ~日版 Small C CC386 Pacific C 另外还有C的解释器 Quincy Eic CINT 上面提到的编译器/解释器,大部分我都使用过。现在固定使用VC7.0 Cygwin Mingw32 VectorC和LCC-WIN32这五种编译器。 在GCC家族中GNU GCC是根本,其它的编译器版本都是从它导出的。其中,Cygwin和Mingw32都是WIN32平台下的编译器,DJGPP是DOS下的32位编译器。大家所熟知的DEV-C++充其量只是GCC的一个外壳,它所自带的编译器就是Mingw32的一个版本。这些GCC的版本中,Cygwin是最大的,它与其说是一个编译器,倒不如说是一套编程工具。它不仅有编译器,还有其它很多的工具。其实,它就是一个UNIX系统在WIN32平台上的实现。实现了大多常用的UNIX工具,最近的版本中连Apache这样的“工具”都集成进来的。不过,Cygwin虽然功能强大,但它却不是很易用(和UNIX相似,熟悉UNIX的人用它可以很快上手),因为太多其它的工具分散了人们的注意力。相比之下Mingw32就要好用得多,它只有最基本的几个编程工具(只可惜它不自带GDB)。GCC中并不只是C/C++编译器,其中还有很多其它的编译器如JAVA,Fortran,ADA等。它是一个编译器集合,不过有些编译器只能在UNIX系统上用。MS家族的编译器就不用说了,大家对它们都很熟悉。VC 7.0()是它的最新产品。Borland家族也不用说,大家也是耳熟能详。最近它才推出了BCB 6.0。 其它的编译器如:Intel C/C++大家一看名称就知道是Intel的东西,它和VC6完全兼容,不过要挂在VC6下才能用。Watcom C/C++是早先编译器四国大战中的一员,原本是很不错的东西,可惜战略不对,现在已不见声息了。倒是以它为基础的一个OpenWatcom现在还在奋战。VectorC是我近日才发现的一个好东东,它是个纯C的编译器。IBM的VisualAge for C++原本是IBM想用来淌C++编译器这片浑水的东西,不过IBM的战略改了,它就被放弃了。DigitalMars C/C++的前身的Symantec C++(它也是编译器四国大战中的一员),不过现在Symantec不做了,于是它的作者就把它改成了DigitalMars C/C++开放给大家使用。以上这些都是WIN32平台上的东西。KAI C/C++是个很强大的C/C++编译器,它是个多平台的编译器。不过现在被INTEL收购了,已经停止开发了。Lcc4.1是个纯C的编译器它是开放源代码的。不过不怎么好用。LCC-WIN32是一个在LCC基础上开发的C语言的集成开发环境,很好用,而且有很详细的资料,FREE!Pacific C是一个纯DOS的C的集成开发环境,就不多说了。Small C CC386都是开放源代码的编译器,它们都很简单,应用来给大家学习编译器的。Quincy Eic CINT都是C的解释器,是用来让大家学习C语言的其中CINT的功能很强大,还支持一些C++的特性。 当然还有很多其它的编译器,这里我给出的编译器都是可以在WIN32或DOS平台上用的(除KAI外)。UNIX平台上的编译器还是以GNU的为主,其它的我就不是很清楚了。 在以上的编译器中,最特别的就是VectorC这个东西只支持纯C。但它却号称是最快的编译器,不过经过我的试验,它的确在有些情况下强过其它编译器很多!而且它还有个交互式的优化器,可以让你直接看到C代码对映的汇编代码。Cygwin和Mingw32为一母所生,其运行效果相差不大。它们生成的代码效率都很不错,编译的速度也很快,最值得一提的是它们对C++的特性的支持算是所有编译器中最完全的,而且它们还支持C99的大部分特性。这一点很是不错!大家对MS的VC已经很熟悉了,本不用我多说。不过在它的最新的产品VC7.0中,有很大的改进。它对C++的特性的支持比6.0有了很大的提高,是我所用的编译器中是仅次于GCC的。而且它编译出的程序,运行速度很快!仅有少数时候次于VectorC与GCC,其它情况都是最快的!其平均运行速度是最快的。对Borland的产品我也无需多说。它的TC2.0与BC3.1都是我最喜欢的东西。可是现在的BCB却大不如前了,编译的速度和VC6一样慢!IDE还有较多的BUG。最令人想不通的是它生成的代码的运行速度很慢,比LCC-WIN32还慢!它唯一值得一提的就是它的RAD做的比MS的好。Intel的编译器大家可能不熟,它太贵了!还要有VC的支持,很不划算,而且编译速度比VC6还慢。不过它的代码质量很不错。DigitalMars C/C++没有什么亮点,编译速度较快,代码执行速度适中,对C++特性支持还算不错。LCC-WIN32是个很不错的集成开发环境,它只支持纯C。它的编译速度极快!代码执行速度较慢。不过它的最大亮点在于它的IDE,在所有的FREE编程工具中,它的IDE是最专业的,有很强大的代码分析,管理功能。而且它提供了大量的编程资料。 我曾对一些编译器的代码执行效率做过一些测试,以下是概况: 1. VectorC、VC 7.0 (极快) 2. Intel C/C++、VC 6.0、GCC (很快) 3. DigitalMars C/C++ (一般) 4. LCC-WIN32、BCB、BC5.02 (较慢) 当然,我所做的测试比较片面。不过在很大程度上已能反映其大概状况。参考资料:soft/15754.html
请登录后再发表评论!&>&用C++编写的一个小游戏
用C++编写的一个小游戏
上传大小:400KB
24点,一个用c++编写的游戏棋牌游戏
// Dot04_20Doc.cpp : implementation of the CDot04_20Doc class
#include &stdafx.h&
#include &Dot04_20.h&
#include &Dot04_20Doc.h&
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
/////////////////////////////////////////////////////////////////////////////
// CDot04_20Doc
IMPLEMENT_DYNCREATE(CDot04_20Doc, CDocument)
BEGIN_MESSAGE_MAP(CDot04_20Doc, CDocument)
//{{AFX_MSG_MAP(CDot04_20Doc)
// NOTE - the ClassWizard will add
and remove mapping macros here.
DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDot04_20Doc construction/destruction
CDot04_20Doc::CDot04_20Doc()
// TODO: add one-time construction code here
CDot04_20Doc::~CDot04_20Doc()
BOOL CDot04_20Doc::OnNewDocument()
if (!CDocument::OnNewDocument())
return FALSE;
// TODO: add reinitialization code here
// (SDI documents will reuse this document)
return TRUE;
/////////////////////////////////////////////////////////////////////////////
// CDot04_20Doc serialization
void CDot04_20Doc::Serialize(CArchive& ar)
if (ar.IsStoring())
// TODO: add storing code here
// TODO: add loading code here
/////////////////////////////////////////////////////////////////////////////
// CDot04_20Doc diagnostics
#ifdef _DEBUG
void CDot04_20Doc::AssertValid() const
CDocument::AssertValid();
void CDot04_20Doc::Dump(CDumpContext& dc) const
CDocument::Dump(dc);
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CDot04_20Doc commands
...展开收缩
综合评分:4(10位用户评分)
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有3条
界面清楚,适合初学者用,容易看得懂,而且很好用。
真的不错的,学到了不少东西
通俗易懂,也很全面,有利于对C++基础进一步的理解,谢谢~
综合评分:
积分/C币:6
综合评分:
积分/C币:3
nateYang123
综合评分:
积分/C币:3
综合评分:
积分/C币:3
综合评分:
积分/C币:3
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
用C++编写的一个小游戏
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
(仅够下载10个资源)
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
用C++编写的一个小游戏

我要回帖

更多关于 c 游戏编程基础 的文章

 

随机推荐