12321官方游戏论坛

 找回密码
 立即注册
查看: 3959|回复: 10

AS3游戏开发实用技巧汇总

[复制链接]

76

主题

131

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
17958
发表于 2017-7-7 11:53:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
谈到数学计算的优化,大家都会很自然地想到位运算,以求模(取余数)为例,如果除数是2的整数次方(即2,4,8,16,32.....这一系列的数),就可以用位运算代替%运算符,例如判断正整数n是否为2的倍数就可以这么写:

  • if(n & 1 == 0)

[color=rgb(51, 102, 153) !important]复制代码



同理,求n除以4的余数也可以写成:

  • n & 3

[color=rgb(51, 102, 153) !important]复制代码



以此类推,可得
n % 8 = n & 7
n % 16 = n & 15
n % 32 = n & 31
......

可见当除数为2的整数次方时,我们可通过以下公式求余数使其运算速度更快:

n % 除数 = n & (除数 - 1)

但如果除数不满足以上公式的条件,那就还得用回效率不高的%运算。

事实上,之所以效率不高,是因为这个取余运算相当强大,它甚至支持小数求模:

  • trace(7.7 % 2.4); //返回0.5000000000000004(准确值为0.5,输出值最后面的4是精度损失的结果)

[color=rgb(51, 102, 153) !important]复制代码



而大多数情况下我们都不会用到小数,此时用%来计算就未免有点屈才了。为此,在确保被除数和除数都是正整数的情况下,iloveas给出一个通用的优化公式:

result = n - int(n / 除数) * 除数;
在iloveas的电脑上测试,此法的效率比%高出一倍左右,对于运算量大,运算频率也高的游戏来说,这样的优化效果已经很不错了。

回复

使用道具 举报

61

主题

2万

帖子

3万

积分

管理员

野心家

Rank: 9Rank: 9Rank: 9

积分
38159
QQ
发表于 2017-7-7 12:03:02 | 显示全部楼层
顶      
既然无法一起出生,  那就一起祸害苍生。
回复

使用道具 举报

37

主题

1536

帖子

5272

积分

论坛元老

念旧

Rank: 8Rank: 8

积分
5272
发表于 2017-7-22 14:24:34 | 显示全部楼层
顶              
“i love u three thousand times”
回复

使用道具 举报

0

主题

20

帖子

24

积分

新手上路

Rank: 1

积分
24
发表于 2017-7-22 15:46:19 | 显示全部楼层
顶!!!!!
回复

使用道具 举报

0

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2017-7-22 18:08:46 | 显示全部楼层
看不懂也顶
回复

使用道具 举报

55

主题

714

帖子

6327

积分

管理员

愿5DPLAY再次翱翔

Rank: 9Rank: 9Rank: 9

积分
6327
发表于 2017-7-22 18:15:56 | 显示全部楼层
dd
きんいろモザイク
回复

使用道具 举报

2

主题

49

帖子

409

积分

中级会员

Rank: 3Rank: 3

积分
409
发表于 2018-12-2 14:45:15 | 显示全部楼层
6666666666666666666
回复

使用道具 举报

0

主题

24

帖子

78

积分

注册会员

Rank: 2

积分
78
发表于 2019-9-14 15:49:56 来自手机 | 显示全部楼层
啊哈哈看不懂。。
回复

使用道具 举报

0

主题

25

帖子

27

积分

新手上路

Rank: 1

积分
27
发表于 2020-12-23 05:13:27 来自手机 | 显示全部楼层
6666666666666
回复

使用道具 举报

0

主题

24

帖子

50

积分

注册会员

Rank: 2

积分
50
发表于 2021-6-14 14:10:32 | 显示全部楼层
6666666666666666666666
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|12321官方游戏论坛  

GMT+8, 2024-3-29 19:41 , Processed in 0.027819 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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