游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1741|回复: 1

近日发现windows游戏编程的一处错误

[复制链接]

5

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2006-4-23 08:19:00 | 显示全部楼层 |阅读模式
近日发现windows游戏编程的一处错误

来自第十二章的demo12_3.cpp, void Init_Rocks() 函数

#define ROCK_LARGE            0   
#define ROCK_MEDIUM          1
#define ROCK_SMALL            2

int rock_sizes[3] = {96,56,32};  


    rocks[rock].varsI[0] = rand()%3;
    rocks[rock].varsI[1] = rock_sizes[rocks[rock].varsI[0]];
    //这时rocks[rock].varsI[1]的值为rock_sizes数组中之一
   //而switch中的case语句 为 o,1,2,这样switch语句不会执行,此处多余
   
switch(rocks[rock].varsI[1])
{
        case ROCK_LARGE:               
        {
            // copy dd bitmap surfaces
            memcpy(rocks[rock].images,rock_l.images,sizeof(LPDIRECTDRAWSURFACE)   
                        *MAX_BOB_FRAMES);

        // set width and height (incase)
        rocks[rock].width  = rock_l.width;
        rocks[rock].height = rock_l.height;

        } break;

        case ROCK_MEDIUM:
        {
            // copy dd bitmap surfaces
            memcpy(rocks[rock].images,rock_m.images,sizeof(LPDIRECTDRAWSURFACE)
                           *MAX_BOB_FRAMES);

        // set width and height (incase)
        rocks[rock].width  = rock_m.width;
        rocks[rock].height = rock_m.height;

        } break;

        case ROCK_SMALL:
        {
            // copy dd bitmap surfaces
            memcpy(rocks[rock].images,rock_s.images,sizeof(LPDIRECTDRAWSURFACE)
                            *MAX_BOB_FRAMES);

          // set width and height (incase)
        rocks[rock].width  = rock_s.width;
      rocks[rock].height = rock_s.height;

        } break;
               
default: break;

} // end switch*/

0

主题

30

帖子

30

积分

注册会员

Rank: 2

积分
30
QQ
发表于 2006-4-24 08:19:00 | 显示全部楼层

Re:近日发现windows游戏编程的一处错误

嗯,看来应该改为switch (rocks[rock].varsI[0])
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 07:04

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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