三角函数在编程中的实际运用—永劫无间脚本

前言

义务教育下,年轻人从初中就开始学三角函数却半辈子也没用上,除了特殊行业,做开发的可能也就大学oj刷题用到。在编写永劫无间脚本的时候,灵机一动用上了三角函数,实属有趣,记之。

需求

在永劫无间中,我需要做这么一个脚本功能。游戏中按下X+鼠标向方向移动+松开X就是发表情。用脚本实现快速转一圈把所有表情都发一遍并循环,而且还要跳过225°和270°的两个非表情动作。
在这里插入图片描述

思路

普通思路就是创建数组坐标常量,遍历循环,简单粗暴,没毛病。但是有洁癖的码农都会追求优雅,脑子里立马浮现了三角函数,利用角度可以计算正负数表示方向,改个参数就能换场景使用。

代码

话不多说,上代码。

■ 转义码

在这里插入图片描述

■ 源码

Sub 嘲讽()
	int num = 8
	count = 0
	pi = 3.1415926535897932
	degrees = 360/8
	For 1120
		mx = Sin(degrees * count * pi/180)*10
	    my = -Cos(degrees * count * pi/180)*10
		KeyDown "X", 1
		Delay 120
 		For 3
 			dm.MoveR mx, my
			Delay 10
 		Next
		KeyUp "X", 1
		count = count + 1
		// 跳过调息敬礼的位置
		If degrees * count mod 360 = degrees * 5 Then 
			count = count + 1
		End If
		If  degrees * count mod 360 = degrees * 6 Then
			count = count + 1
		End If 
	Next
End Sub

具体讲解

三角函数计算相对移动

我们以上面的表情作为第一个表情也就是起始位置,即为0°
一圈是360°,8个表情说明一个占用45°,第二表情就是45°。

第一个表情只需要鼠标向上移动,对应x轴不变,y轴负数移动。
三角函数可得Sin0°等于0,Cos0°等于1。

同理,第二个表情需要鼠标向右上移动,对应x轴正数移动,y轴负数移动。
三角函数可得Sin 45°等于0.707,Cos45°等于0.707。

推导得出,Sin可以表示x轴移动,-Cos表示y轴移动。

求余跳过不需要的位置

这个就经常用了,对总表情量取模,就可以表示循环中的位置,只不过要灵活运用,加入度数来计算。

degrees * count mod 360 = degrees * 5

成品

成品就不发了,有兴趣可以抖音搜索永劫无间求饶脚本查看。

最后

这样,我们就成功利用三角函数优雅的表示移动方向,是不是强迫症一下子就舒服了。很多知识可能花了我们很大精力去学习却无用武之地,但是增加储备粮,并活学活用,终有一天会在一个个小小的场景中起到丁点力量,虽微末,却心旷神怡,岂不乐哉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值