游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3067|回复: 7

高手帮忙!SDK开发游戏的一般过程!

[复制链接]

4

主题

17

帖子

24

积分

注册会员

Rank: 2

积分
24
发表于 2005-7-21 09:28:00 | 显示全部楼层 |阅读模式
我听说做游戏的大部分都是SDK模式

我不喜欢MFC的模式,用SDK很容易理解

但是我不清楚究竟该如何下手,我是菜鸟,很菜的那种

以前做VB,后来做ASP,这两个我都比较熟悉,也做过大项目

以前我不敢学VC,C++也不怎么样

但是制作游戏的热情很高,我现在就是一定要学好这个

希望大家给我一个用SDK制作游戏的一般流程

除了生成必要的窗体代码,消息循环,自定义函数在哪里定义?

全局变量在哪里定义?

以及最初该做些什么,希望高手给予指教,感激不尽

18

主题

631

帖子

660

积分

高级会员

Rank: 4

积分
660
发表于 2005-7-21 17:34:00 | 显示全部楼层

Re:高手帮忙!SDK开发游戏的一般过程!

找点简单的代码看看。你windows下API基础没有的话可能比较艰难。

11

主题

123

帖子

123

积分

注册会员

Rank: 2

积分
123
发表于 2005-7-21 17:56:00 | 显示全部楼层

Re:高手帮忙!SDK开发游戏的一般过程!

你还是先学c,c++比较实际,你的问题不是游戏问题,是C语言的问题

4

主题

17

帖子

24

积分

注册会员

Rank: 2

积分
24
 楼主| 发表于 2005-7-22 08:45:00 | 显示全部楼层

Re:高手帮忙!SDK开发游戏的一般过程!

我现在C++问题不大

但是怎么走这个框架有点郁闷,就是说开发游戏的一个一般过程该如何走

现在有点无处下手的感觉

不知道从哪个方面开始

14

主题

118

帖子

118

积分

注册会员

Rank: 2

积分
118
发表于 2005-7-22 15:51:00 | 显示全部楼层

Re:高手帮忙!SDK开发游戏的一般过程!

类似这样吧:
1.游戏循环
do(PeekMessage())
{
   GameMain();  //游戏逻辑
   DrawScreen();//更新画面
    ....
}

2.游戏逻辑
void GameMain()
{
    switch(state)
   {
      case 开头动画:
       case 游戏选项:
      caes 游戏运行:
      case 游戏结束:
   }
}

void DrawScreen()
{
.....
}

大概是这样了。

14

主题

118

帖子

118

积分

注册会员

Rank: 2

积分
118
发表于 2005-7-22 15:53:00 | 显示全部楼层

Re:高手帮忙!SDK开发游戏的一般过程!

最好是从WIN32 API,不过我反觉得。
用VC中自动生成的无MFC窗口是一个好例子。

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
发表于 2005-7-22 16:24:00 | 显示全部楼层

Re:高手帮忙!SDK开发游戏的一般过程!

你的所有问题都可以参考这个文档http://dev.gameres.com/Program/Abstract/Thinking/Gpguide.doc

18

主题

631

帖子

660

积分

高级会员

Rank: 4

积分
660
发表于 2005-7-23 15:26:00 | 显示全部楼层

其实就是WinMain,然后其他的函数加到消息循环里面去。这

/*
==================
WinMain

==================
*/
HINSTANCE        global_hInstance;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    MSG                                msg;
        int                                time, oldtime, newtime;
        char                        *cddir;

    /* previous instances do not exist in Win32 */
    if (hPrevInstance)
        return 0;

        global_hInstance = hInstance;

        ParseCommandLine (lpCmdLine);

        // if we find the CD, add a +set cddir xxx command line
        cddir = Sys_ScanForCD ();
        if (cddir && argc < MAX_NUM_ARGVS - 3)
        {
                int                i;

                // don't override a cddir on the command line
                for (i=0 ; i<argc ; i++)
                        if (!strcmp(argv, "cddir"))
                                break;
                if (i == argc)
                {
                        argv[argc++] = "+set";
                        argv[argc++] = "cddir";
                        argv[argc++] = cddir;
                }
        }

        Qcommon_Init (argc, argv);
       
        //exit(0);

        oldtime = Sys_Milliseconds ();

    /* main window message loop */
        while (1)
        {
                // if at a full screen console, don't update unless needed
                if (Minimized || (dedicated && dedicated->value) )
                {
                        Sleep (1);
                }

                while (PeekMessage (&msg, NULL, 0, 0, PM_NOREMOVE))
                {
                        if (!GetMessage (&msg, NULL, 0, 0))
                                Com_Quit ();
                        sys_msg_time = msg.time;
                        TranslateMessage (&msg);
                           DispatchMessage (&msg);
                }

                do
                {
                        newtime = Sys_Milliseconds ();
                        time = newtime - oldtime;
                } while (time < 1);

//                        Con_Printf ("time:%5.2f - %5.2f = %5.2f\n", newtime, oldtime, time);

                //        _controlfp( ~( _EM_ZERODIVIDE /*| _EM_INVALID*/ ), _MCW_EM );
                _controlfp( _PC_24, _MCW_PC );
                Qcommon_Frame (time);

                oldtime = newtime;
        }

        // never gets here
    return TRUE;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-26 13:28

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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