游戏开发论坛

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

唐老师,请问这两行偏移计算公式是怎么算出来的呢?

[复制链接]

3

主题

16

帖子

20

积分

注册会员

Rank: 2

积分
20
发表于 2004-12-23 10:43:00 | 显示全部楼层 |阅读模式
void game::setobj(int q)//对象显示
{        CString cc;
        int x=man[q].xix-scrx-man[q].w/2;                //x当前位置
        int y=man[q].xiy-scry-man[q].h;                        //y当前位置
        if(inscreer(q))//在显示区?
        {if(man[q].lb==0) {cc="人";}
         if(man[q].lb==1) {cc="兽";}
         if(man[q].lb==2) {cc="景";}
         if(getpic(cc,man[q].p)==FALSE) return;
         if(man[q].lb!=2)//调角色的偏移位置
     {int x0=0,y0=0;
          if(man[q].lb==0) {x0=rbufx[man[q].p];y0=rbufy[man[q].p];}
          if(man[q].lb==1) {x0=sbufx[man[q].p];y0=sbufy[man[q].p];}
          if(man[q].fw>4) x0=w-x0;//是东北、东、东南方位
          x=man[q].xix-scrx-x0;
          y=man[q].xiy-scry-y0;
         }
         TransparentBlt2(BkDC1,x,y,w,h,MemDC,0,0,w,h,RGB(255,255,255));//透明显示
         mans++;
        }
///////////////////////////////////////////////////////////////////////
        if(man[q].lb==2) return;
        else        manmove(q);                                  //活动对象的移动
        man[q].p++;                                                  //下一动作
        if(man[q].p>=man[q].m1)        {bianfw(q);}//本动作完成,进行方位转换
}

如下:
x=man[q].xix-scrx-x0;
y=man[q].xiy-scry-y0;

3

主题

16

帖子

20

积分

注册会员

Rank: 2

积分
20
 楼主| 发表于 2004-12-23 14:24:00 | 显示全部楼层

Re:唐老师,请问这两行偏移计算公式是怎么算出来的呢?

有点眉目了,偏移量X,Y是一图片中人物的左脚相对于图片左上角的偏移量,
显示在桌面上时,要减掉这个偏移值,人物走动才不会感觉跳动状态.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-23 19:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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