游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2704|回复: 4

小弟初学编游戏,看了visual c++游戏设计入门

[复制链接]

6

主题

73

帖子

73

积分

注册会员

Rank: 2

积分
73
发表于 2006-10-29 17:12:00 | 显示全部楼层 |阅读模式
小弟初学编游戏,看了visual   c++游戏设计入门   
  第2章第7个例子关于半透明运算的例子运行错误,请大家帮忙,万分感谢   
  就是做数组运算的时候出错,不知道哪有问题   
   
                      BITMAP   bm;                         //声明bm为BITMAP数据结构   
  int   x,y,i=0;   
  GetClientRect(&rect);   
  mdc   =   new   CDC;                  
  bitmap   =   new   CBitmap;   
  bgbmp   =   new   CBitmap;   
  mdc->CreateCompatibleDC(dc);   //建立与dc兼容的DC   
  bgbmp->m_hObject   =   (HBITMAP):oadImage(NULL,"bground.bmp",IMAGE_BITMAP,rect.right,rect.bottom,LR_LOADFROMFILE);   //载入背景图   
  bitmap->m_hObject   =   (HBITMAP)::LoadImage(NULL,"girl.bmp",IMAGE_BITMAP,298,329,LR_LOADFROMFILE);   //载入源位图   
  bitmap->GetObject(sizeof(BITMAP),&bm);   //取得   bitmap   位图的信息   
  unsigned   char   *px   =   new   unsigned   char[bm.bmHeight*bm.bmWidthBytes];   //声明暂存数组   
  bitmap->GetBitmapBits(bm.bmHeight*bm.bmWidthBytes,px);   //取得源位图各像素点的   RGB   值存入   px   数组中   
  for(y=0;y<bm.bmHeight;y++)   
  for(x=0;x<bm.bmWidth;x++)   
  {   
  px[x*3+y*bm.bmWidthBytes]   *=   0.5;       //将   B   色彩值乘以   50%   
  px[x*3+1+y*bm.bmWidthBytes]   *=   0.5;   //将   G   色彩值乘以   50%   
  px[x*3+2+y*bm.bmWidthBytes]   *=   0.5;   //将   R   色彩值乘以   50%   
  }   
  bgbmp->GetObject(sizeof(BITMAP),&bm);   //取得   bgbmp   位图的信息   
  unsigned   char   *px1   =   new   unsigned   char[bm.bmHeight*bm.bmWidthBytes];     //声明暂存数组   
  bgbmp->GetBitmapBits(bm.bmHeight*bm.bmWidthBytes,px1);   //取得源位图各像素点的   RGB   值存入   px1   数组中   
  for(y=20;y<=348;y++)   
  for(x=150;x<=447;x++)   
  {   
  px1[x*3+y*bm.bmWidthBytes]   =   px1[x*3+y*bm.bmWidthBytes]*0.5   +   px;   //将   B   色彩值乘以   50%   并与   px   相加   
  px1[x*3+1+y*bm.bmWidthBytes]   =   px1[x*3+1+y*bm.bmWidthBytes]*0.5   +   px[i+1];//将   G   色彩值乘以   50%   并与   px   相加   
  px1[x*3+2+y*bm.bmWidthBytes]   =   px1[x*3+2+y*bm.bmWidthBytes]*0.5   +   px[i+2];//将   R   色彩值乘以   50%   并与   px   相加   
  i=i+3;   
  }   
  bgbmp->SetBitmapBits(bm.bmHeight*bm.bmWidthBytes,px1);   //重设背景图的颜色   
  mdc->SelectObject(bgbmp);     //选择位图对象到mdc中   
  delete   px;   
  delete   px1;

23

主题

111

帖子

111

积分

注册会员

Rank: 2

积分
111
发表于 2006-10-30 21:29:00 | 显示全部楼层

Re:小弟初学编游戏,看了visual c++游戏设计入门

很是晕啊,这类问题一般都石沉大海,还是先多看看书吧,别纠缠了

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2006-10-31 09:48:00 | 显示全部楼层

Re:小弟初学编游戏,看了visual c++游戏设计入门

LZ如果有些东西不明白
先表急
只管copy/paste
慢慢得积累exp
等到你level up的那一天
自然就会慢慢明白
太早沉溺于细节
对成长不好

1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2006-11-3 06:00:00 | 显示全部楼层

Re:小弟初学编游戏,看了visual c++游戏设计入门

你还算个鸟啊,头文件都没有的!看来你得要从汇编学起了。

35

主题

370

帖子

376

积分

中级会员

Rank: 3Rank: 3

积分
376
发表于 2006-11-8 21:53:00 | 显示全部楼层

Re:小弟初学编游戏,看了visual c++游戏设计入门

楼上的说话也不客气点..
你也是菜鸟吧..给编码看一定要头文件吗
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 19:26

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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