`
chenpeilei2003
  • 浏览: 187474 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android游戏-air control lite里的曲线平滑处理

阅读更多
想山寨一个空中管制(Air control lite)游戏自己玩玩儿,但对于触屏绘制航线这块一直没找到好方法, 直接画出来的曲线由于手指的颤动很不平滑, 所以要进行平滑处理后再用作飞机的飞行航线。

找了一个 比较简单的方法:用移动平均值平滑处理
--//平滑处理, 用移动平均值
       --self.x,self.y是从触屏取得的一长串坐标
	local k = 5
	local x1={}
	for i=1,#self.x - k  do
		local n = (self.x[i] + self.x[i+1]+self.x[i+2]+self.x[i+3]+self.x[i+4])/ k
		table.insert(x1,n)
	end
	local y1 ={}
	for i=1,#self.y  - k do
		local n = (self.y[i] + self.y[i+1]+self.y[i+2]+self.y[i+3]+self.y[i+4])/ k
		table.insert(y1,n)
	end
	for i=1,#x1 do
		self.x[i] = x1[i]	
		self.y[i] = y1[i]	
	end
	x1 =nil
	y1 =nil

这样处理后,航线比原先平滑多了。 但感觉还是没有android那个好, 等找到更好的方法再说吧。
注:
烂机器的触屏取点速度很慢,如果手指滑动太快,所取的点就很不连续,会导致飞机跳跃式前进,这里还要处理下,要让飞机沿着连续的曲线飞行才是正常的。


  • 大小: 62.5 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics