游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3876|回复: 12

为什么在MSDN找不到这个函数? ShowThePic

[复制链接]

14

主题

39

帖子

39

积分

注册会员

Rank: 2

积分
39
发表于 2007-3-21 18:54:00 | 显示全部楼层 |阅读模式
这个函数是在本论坛上的游戏编程第1部基础篇(偶尔发现的)里看到的

#define m_Width   32   // 每个动作的 宽度
#define m_Height  48   // 每个动作的 高度
 



void ShowThePic()
{
    static RECT rect;               // 矩形对象,用于精确定位所要的当前动作
    static int CurrentFrame = 0;    // 当前动作的编号
    static int Direction = 0;       // 当前的方向
    rect.top = Direction; rect.bottom = (Direction+1)*m_Height;       // 对当前矩形的大小定义,数学的问题哦
    rect.left = CurrentFrame; rect.right = (CurrentFrame+1)*m_Width;  // 根据英文的意思也可以知道在给谁赋值
    BltPicToScreen();               // 一个伪函数,作用是将当前矩形内的图形复制到屏幕上。
    CurrentFrame++;
    if( CurrrentFrame==3 )
        CurrentFrame = 0; // 这个步骤能够保证动作的循环

}

我考虑想到MSDN查找一下,发现没有这个函数,是DirectDraw 上的?如果是的话,可否给小弟解释一下DirectDraw 和DX的区别?多谢多谢,对待新人,请爱护我吧

[em5] [em5] [em5] [em5] [em5] [em5] [em5] [em5] [em5]

0

主题

275

帖子

676

积分

高级会员

Rank: 4

积分
676
发表于 2007-3-21 21:16:00 | 显示全部楼层

Re:为什么在MSDN找不到这个函数? ShowThePic

ShowThePic

是自????的函式?K不是API ?然MSDN??也坏

DirectX ??DX
DirectDraw 是DX家族的一部分

X=(draw+3d+sound+input+play)

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2007-3-21 21:24:00 | 显示全部楼层

Re: 为什么在MSDN找不到这个函数? ShowThePic

补充LS的发言

DX是DirectX的简称,X代表“多种”
其中DirectX是MS推出的一系列开发包
包含有游戏开发的相关内容
有:DirectInput(输入)、DirectDraw(2D显示)、Direct3D(3D显示)等
建议LZ上google搜索DirectX,会有更多更详细的内容

14

主题

39

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2007-3-21 22:48:00 | 显示全部楼层

Re:为什么在MSDN找不到这个函数? ShowThePic

原来如此,明白了,2楼,你的意思是这个函数是他本人自定义的?

86

主题

2251

帖子

2386

积分

金牌会员

Rank: 6Rank: 6

积分
2386
QQ
发表于 2007-3-22 09:21:00 | 显示全部楼层

Re:为什么在MSDN找不到这个函数? ShowThePic

是的,你放出来的就是函数定义

14

主题

39

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2007-3-22 12:05:00 | 显示全部楼层

Re:为什么在MSDN找不到这个函数? ShowThePic

好像函数内,C++不允许设置初始值吧,我记的类是这样的,因为调用函数的时候形参和实际参数是数值传递,除非这个不是函数,是结构体

28

主题

433

帖子

433

积分

中级会员

Rank: 3Rank: 3

积分
433
发表于 2007-3-22 22:00:00 | 显示全部楼层

Re:为什么在MSDN找不到这个函数? ShowThePic

你 好好 学学 语法 再来 吧~~

这个 不是 自定义函数 是什么~~

14

主题

39

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2007-3-23 14:09:00 | 显示全部楼层

Re:为什么在MSDN找不到这个函数? ShowThePic

第1,C++自定义函数,在内部允许在定义函数吗?或者说可以在内部可以调用库函数?
第2,类中确实不能定义初始值,如果要定义对象参数的初始值应该用到构造函数吧,这个我没记错吧
第3如果在结构前面加上,typedef代表什么呢?(书上对这方面没写清楚,一笔带过)
第4,函数如果不带return,意味着不是值传递是吗?
对于根本性的概念,请教一些谦虚的志同道合的朋友,对于7楼,无视

2

主题

45

帖子

45

积分

注册会员

Rank: 2

积分
45
发表于 2007-3-23 16:04:00 | 显示全部楼层

Re: 为什么在MSDN找不到这个函数? ShowThePic

1. 你?的?炔渴悄茄Y?不太明白~
2. ?中的成?T是不能定初始值,但涵??鹊淖??凳强梢远ǔ跏贾档摹
3. ???不太清楚,通常是?榱税岩?敌?e的名?定?成另一??名?,而用在???前好像是以前C留下?淼母袷桨桑?++可以不用(我印像中的,有?的指正^^)
4. ???~你真的要去看看?本,去看一下 By Value 跟 By Reference,跟Re不Return是???是?苫厥隆

有?的指正^^

86

主题

2251

帖子

2386

积分

金牌会员

Rank: 6Rank: 6

积分
2386
QQ
发表于 2007-3-23 16:29:00 | 显示全部楼层

Re:为什么在MSDN找不到这个函数? ShowThePic

LZ可能是读到一本烂书,或者没完整地阅读和理解书中内容而臆测了书中的某些知识点

1 不知道你说的内部指什么
2 问题不在于“类中确实不能定义初始值”,凡是能够给出定义的地方就能给出初始值;所以理解声明和定义的区别自然就理解了这个
3 见后面
4 没return就意味着函数调用时不是以右值的形式“返回”,这个返回是广义的,除了以右值形式返回,还有函数内部操作全局的“返回”,函数内部操作地址参数所指内存的“返回”

// 下面是我N早前初学时写的一篇blog《对C/C++中typedef的我的理解》

刚学的时候,对如:
typedef int INT;
这样的表达的理解是,给int换个名字叫INT。

但是,后来用到函数指针时,上面那种理解就让我对函数指针头大了。

仔细想了下,可以做这样理解:
typedef void(func_ptr*)();
func_ptr fptr;
就是把“fptr”代替“void(func_ptr*)()”中的“func_ptr”
即“func_ptr fptr;”就是“void(fptr*)();”

这么说还是不能很清楚表达我的理解。

那么回头看“typedef int INT;”
来用这个INT:
INT i;
把“typedef int INT”中的“INT”换成“i”,脑中闪过“typedef int i”这样一个念头,把“typedef”从脑中隐去……
那么:
“INT i;”就是“int i;”

呵呵,这样应该把我的理解表达清楚了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-4-13 02:19

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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