游戏开发论坛

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

问问大家一个游戏<英雄救美>的问题?

[复制链接]

1

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2004-8-26 15:57:00 | 显示全部楼层 |阅读模式
//检测方向键
                if(GetAsyncKeyState(VK_UP))                                        //上
                {
                        Hero.Way=3;
                        if( SY>0 && Hero.y <= 264 )
                        {
                                DY += Hero.Speed;
                                if( DY>=0 ) { DY=-32; SY--; }
                        }
                        else if( SY==0 && DY!=0 )
                        {
                                DY += Hero.Speed;
                        }
                        else Hero.y -= Hero.Speed;
                }
                else if(GetAsyncKeyState(VK_DOWN))                        //下
                {
                        Hero.Way=0;
                        if( SY < Map[ Scene ].Hight - 15 && Hero.y >=264  )
                        {
                                DY -= Hero.Speed;
                                if( DY<=-32 ) { DY=0; SY++; }
                        }
                        else Hero.y += Hero.Speed;
                }
                else if(GetAsyncKeyState(VK_LEFT))                        //左
                {
                        Hero.Way=1;
                        if( SX>0 && Hero.x <= 304 )
                        {
                                DX += Hero.Speed;
                                if( DX>=0 ) { DX=-32; SX--; }
                        }
                        else if( SX==0 && DX!=0 )
                        {
                                DX += Hero.Speed;
                        }
                        else Hero.x -= Hero.Speed;
                }
                else if(GetAsyncKeyState(VK_RIGHT))                        //右
                {
                        Hero.Way=2;
                        if( SX < Map[ Scene ].Width - 20 && Hero.x >= 304 )
                        {
                                DX -= Hero.Speed;
                                if( DX<=-32 ) { DX=0; SX++; }
                        }
                        else Hero.x += Hero.Speed;
                }
                else if(GetAsyncKeyState(VK_ESCAPE))                //主菜单
                {
                        while(GetAsyncKeyState(VK_ESCAPE)) {}
                        Menu();
                        return;
                }
里面的DX和SX的变化不懂? 请执教
我只知道是关于卷屏实现的

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20547
发表于 2004-8-26 16:09:00 | 显示全部楼层

Re:问问大家一个游戏<英雄救美>的问题?

这段代码这么看是比较乱,不过总体的意思就是
先判断是否滚屏,然后根据按键,对DX、DY的值进行偏移,偏移的量来源于Hero.Speed。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-17 17:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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