游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2862|回复: 5

8个方向移动判定,因该怎么实现?

[复制链接]

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2006-12-7 18:34:00 | 显示全部楼层 |阅读模式
键盘的上下左右控制人物8个方向上的移动.
我是这么想的.
int fangxiang=0;
if(key'W')fangxiang+=1;
if(key'S')fangxiang+=2;
if(key'A')fangxiang+=4;
if(key'D')fangxiang+=8;

有没有更简单的方法?
比如,不用 +=,
用 fangxiang or 00000001B 这样的方法?

C++里面怎么使用或计算?

49

主题

1388

帖子

1432

积分

金牌会员

Rank: 6Rank: 6

积分
1432
发表于 2006-12-7 21:38:00 | 显示全部楼层

Re:8个方向移动判定,因该怎么实现?

^_^||  fangxiang+=2 <---这个什么意思fangxiang自加2=向下移动?

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
 楼主| 发表于 2006-12-8 17:12:00 | 显示全部楼层

Re:8个方向移动判定,因该怎么实现?

其实我是想问,在VC++里,怎么实现 或计算

int a=0;
or a,0x01;

这样可以让 a变成 0x01 吗?

49

主题

1388

帖子

1432

积分

金牌会员

Rank: 6Rank: 6

积分
1432
发表于 2006-12-8 20:36:00 | 显示全部楼层

Re: Re:8个方向移动判定,因该怎么实现?

snhun: Re:8个方向移动判定,因该怎么实现?

其实我是想问,在VC++里,怎么实现 或计算

int a=0;
or a,0x01;

这样可以让 a变成 0x01 吗?

按位操作? c++应该有啊~~~ java就是||,c忘记了,查下书就有

0

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2006-12-9 20:17:00 | 显示全部楼层

Re:8个方向移动判定,因该怎么实现?

int a = 0;
    a |= 0x01;

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
 楼主| 发表于 2006-12-9 21:38:00 | 显示全部楼层

Re: Re:8个方向移动判定,因该怎么实现?

zwzzj: Re:8个方向移动判定,因该怎么实现?

int a = 0;
    a |= 0x01;

非常感谢![em3]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 00:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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