| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 43218 人关注过本帖, 15 人收藏
标题:原创~~自制-拼图游戏
只看楼主 加入收藏
forrest123
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-10-13
收藏
得分:0 
"resource.h"是什么??
2008-10-13 14:43
smallmoon521
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:517
专家分:1373
注 册:2008-4-21
收藏
得分:0 
[bo][un]forrest123[/un] 在 2008-10-13 14:43 的发言:[/bo]

"resource.h"是什么??

资源的头文件。因为资源要添加,所以直接复制代码编译会报错,找不到"resource.h"。
代码是没有问题的。我也是自学的,理解不深,觉得这个头文件里面是定义了资源名的宏。

为游戏狂~~!!    大家努力编哈!
2008-10-13 19:01
a123456789hn
Rank: 1
等 级:禁止访问
帖 子:3
专家分:0
注 册:2008-10-22
收藏
得分:0 
有什么好的学习方法吗,我是新手有的话麻烦发到我QQ邮件657668816
愿意收徒弟吗?
2008-10-22 20:45
smallmoon521
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:517
专家分:1373
注 册:2008-4-21
收藏
得分:0 
[bo][un]a123456789hn[/un] 在 2008-10-22 20:45 的发言:[/bo]

有什么好的学习方法吗,我是新手有的话麻烦发到我QQ邮件657668816
愿意收徒弟吗?

学习方法就是多看书,要看自己想看的方面.强迫的看是不会有长足的进步的.然后自己写代码,写喜欢的东西,不懂的地方就上网查或问别人,
弄懂了继续写.写完了再把别人的代码弄来看看,别人又是什么样的一种思想.
   这样你会进步很快的~       考研中,没时间上网,见谅~

为游戏狂~~!!    大家努力编哈!
2008-10-23 08:29
rengang2005
Rank: 2
等 级:论坛游民
帖 子:23
专家分:57
注 册:2006-10-20
收藏
得分:0 
喜欢游戏编程
rengang2005@,谢谢;把你的大作给我传一下;
2008-10-23 08:48
smallmoon521
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:517
专家分:1373
注 册:2008-4-21
收藏
得分:0 
[bo][un]rengang2005[/un] 在 2008-10-23 08:48 的发言:[/bo]

rengang2005@,谢谢;把你的大作给我传一下;

过奖了,互相交流.已经传给你了

为游戏狂~~!!    大家努力编哈!
2008-10-23 11:29
hoodlum1980
Rank: 2
来 自:浙江大学
等 级:论坛游民
威 望:2
帖 子:289
专家分:23
注 册:2008-2-24
收藏
得分:0 
for(int i=1;i<=25;i++)
        {
            switch(i)
            {
            case 1:
                  BitBlt(hdc,0,0,120,96,mdc,point[i].x,point[i].y,SRCCOPY);               
                break;
            case 2:
                BitBlt(hdc,120,0,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 3:
                BitBlt(hdc,240,0,120,96,mdc,point[i].x,point[i].y,SRCCOPY);               
                break;
            case 4:
                BitBlt(hdc,360,0,120,96,mdc,point[i].x,point[i].y,SRCCOPY);               
                break;
            case 5:
                BitBlt(hdc,480,0,120,96,mdc,point[i].x,point[i].y,SRCCOPY);               
                break;
            case 6:
                  BitBlt(hdc,0,96,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 7:
                BitBlt(hdc,120,96,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 8:
                BitBlt(hdc,240,96,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 9:
                BitBlt(hdc,360,96,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 10:
                BitBlt(hdc,480,96,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 11:
                  BitBlt(hdc,0,192,120,96,mdc,point[i].x,point[i].y,SRCCOPY);        
                break;
            case 12:
                BitBlt(hdc,120,192,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 13:
                BitBlt(hdc,240,192,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 14:
                BitBlt(hdc,360,192,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 15:
                BitBlt(hdc,480,192,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 16:
                  BitBlt(hdc,0,288,120,96,mdc,point[i].x,point[i].y,SRCCOPY);        
                break;
            case 17:
                BitBlt(hdc,120,288,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 18:
                BitBlt(hdc,240,288,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 19:
                BitBlt(hdc,360,288,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 20:
                BitBlt(hdc,480,288,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 21:
                  BitBlt(hdc,0,384,120,96,mdc,point[i].x,point[i].y,SRCCOPY);        
                break;
            case 22:
                BitBlt(hdc,120,384,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 23:
                BitBlt(hdc,240,384,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 24:
                BitBlt(hdc,360,384,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 25:
                BitBlt(hdc,480,384,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            default:
                MessageBox(NULL,"贴图序列号错误!","",NULL);
            }

-----------------
好比这段代码吧,大量的重复,而且是手工硬编码,代码灵活性很差。(因为代码都写死了,一旦修改一下贴图快大小,不知道程序中要改多少个地方);
那个default分支显然也是没用的。
看上面这段代码,可见所有case中的代码都是那么一句BitBlt,唯一不同的是目标矩形的起始点(TopLeft)在变化而已。实际上完全可以改成循环。

for(j=0;j<5;j++)
  for(i=0;i<5;i++)
    BitBlt(hdc, i*120, j*96, 120, 96, mdc, point[j*5+i+1].x, point[j*5+i+1].y, SRCCOPY);


关于贴图,msdn在讲c#和C++互操作的时候有一个很经典的例子,大概叫做tilepuzzle吧。底层算法是用c++写的,
里面用自动求解的过程,用4种算法各开一个线程寻解。

[[it] 本帖最后由 hoodlum1980 于 2008-10-23 12:01 编辑 [/it]]
2008-10-23 11:54
smallmoon521
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:517
专家分:1373
注 册:2008-4-21
收藏
得分:0 
回复 117# hoodlum1980 的帖子
多谢高手指点~

为游戏狂~~!!    大家努力编哈!
2008-10-23 19:32
smallmoon521
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:517
专家分:1373
注 册:2008-4-21
收藏
得分:0 
回复 118# smallmoon521 的帖子
没人教我,都是自己看书学的一些,在这遇到你这样的热心人帮助很高兴!
   真的谢谢你~

为游戏狂~~!!    大家努力编哈!
2008-10-23 19:35
applev6
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-10-26
收藏
得分:0 
liguangming_1984@163.com
发我一份嘛 liguangming_1984@
2008-10-26 21:33
快速回复:原创~~自制-拼图游戏
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015049 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved