Web游戏开发编程:最神奇的“触觉振动”

简介:

谈起“触觉反馈”,大家可能从字面上并不能理解它是如何工作的。触觉反馈是指在一些支持触摸电子设备中嵌入的技术。如果你手里刚好有一个触摸屏手机,你会经常碰到这种体验。触觉反馈机制响应触摸、模拟键入灵敏度高。通过轻微的质感振动可以触发这种响应。而且这种响应不受真实的设备操作干扰。

      Vibration API为宿主设备提供“触觉反馈式”编程机制。Vibration API常用于Web游戏开发人员,处理一些与游戏相关的触觉操作。

  Vibration 接口定义如下:

Navigator implements Vibration;
所有Navigator类型的实例均实现Vibration接口。

  Vibration 接口方法定义如下:

interface Vibration {

  void vibrate (unsigned long time) raises (NotSupportedError);

  void vibrate (unsigned long[] pattern) raises (NotSupportedError);

  };


1.vibrate (unsigned long time)方法说明

  参数: time

  参数类型: unsigned long

  参数是否为NULL:否

  参数必选/可选:必选

  参数描述: 振动时间(毫秒)

  异常:NotSupportedError

  描述:当time参数超过规定时间,则抛出异常

  返回值:Void

  2.vibrate (unsigned long[] pattern)方法说明

  参数: pattern

  参数类型: unsigned long[]

  参数是否为NULL:否

  参数必选/可选:必选

  参数描述: 时间数组。数组偶数下标表示振动时间(毫秒),奇数下标表示间隔时间(毫秒)。

  异常:NotSupportedError

  描述:当pattern数组长度超过规定数值,或者数组超过规定时间,则抛出异常。

  返回值:Void

  vibrate (unsigned long[] pattern)方法算法如下:

  1. Pattern数组长度为0,则程序退出。

  2. 如果pattern数组长度超过规定数值,或者数组超过规定时间,则抛出异常。

  3. 保证pattern数组长度为偶数,否则去掉最后一个元素。

  4. 遍历pattern数组长度,遇到奇数,则该时间为振动时间(毫秒),遇到偶数,则该时间为间隔时间(毫秒).

  实例分析

  实例1 —— 触屏设备振动1秒钟

         // vibrate for 1 second

  navigator.vibrate(1000);

  // or alternatively

  navigator.vibrate([1000]);


实例2 —— 触屏设备振动1秒钟,静止0.5秒后,再次振动2秒钟。

navigator.vibrate([1000, 500, 2000]);
实例3 —— 触屏设备不振动。

   navigator.vibrate(0);

  // or alternatively

  navigator.vibrate([]);

        总之,触觉反馈可以激起设备的振动,所谓的触觉播放软件实际上重在控制执行器振动的激烈程度以及何时振动。许多触摸屏手机支持触觉反馈,因此用户能够准确知道何时触碰了屏幕。有些游戏控制器可以使用触觉反馈来增强球员与视频游戏的互动。
 










本文转自 wws5201985 51CTO博客,原文链接:http://blog.51cto.com/wws5201985/784570,如需转载请自行联系原作者
目录
相关文章
|
自然语言处理 Java 数据库连接
掌握JSP页面编程:动态生成Web内容
【4月更文挑战第3天】Java Server Pages (JSP) 是一种用于创建动态Web内容的Java技术,它结合HTML并允许在页面中嵌入Java代码。JSP支持代码片段、表达式语言(EL)和JSTL标签库,简化动态内容生成。当服务器接收到请求时,执行JSP中的Java代码并将结果嵌入HTML返回给客户端。示例展示了如何显示当前日期和时间。JSP可与Servlet、JavaBeans、数据库等结合,用于构建功能丰富的交互式Web应用。
432 5
掌握JSP页面编程:动态生成Web内容
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
598 3
|
存储 Java 关系型数据库
JSP考试质量分析系统myeclipse开发mysql数据库bs框架java编程web网页结构
JSP 考试质量分析系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
396 1
|
中间件 关系型数据库 数据库
docker快速部署OS web中间件 数据库 编程应用
通过Docker,可以轻松地部署操作系统、Web中间件、数据库和编程应用。本文详细介绍了使用Docker部署这些组件的基本步骤和命令,展示了如何通过Docker Compose编排多容器应用。希望本文能帮助开发者更高效地使用Docker进行应用部署和管理。
379 19
|
机器学习/深度学习 开发框架 API
Python 高级编程与实战:深入理解 Web 开发与 API 设计
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化、调试技巧以及数据科学和机器学习。本文将深入探讨 Python 在 Web 开发和 API 设计中的应用,并通过实战项目帮助你掌握这些技术。
|
Java API Apache
从零到英雄的蜕变:如何用Apache Wicket打造你的第一个Web应用——不仅是教程,更是编程之旅的启航
【9月更文挑战第4天】学习Apache Wicket这一开源Java Web应用框架是一段激动人心的旅程。本文将指导你通过Maven搭建环境,并创建首个“Hello, World!”应用。从配置`pom.xml`到实现`HelloWorldApplication`类,再到`web.xml`的设置,一步步教你构建与部署简单网页。适合初学者快速上手,体验其简洁API与强大组件化设计的魅力。
461 1
|
存储 关系型数据库 MySQL
PHP编程基础:构建你的第一个Web应用
【8月更文挑战第31天】 在数字时代的海洋里,每个人都可以成为自己命运的船长。本文将引领初学者启航,用PHP语言搭建起第一个属于自己的网站。我们将从浅入深,逐步探索PHP的世界,最终实现一个简单的个人博客系统。这不仅是一段代码的旅程,更是一次思维和技术的飞跃。
|
开发框架 开发工具 Java
从零到高手:一文教你快速上手Vaadin,打造首个炫酷Web应用,开启编程新世界的大门
【8月更文挑战第31天】Vaadin是一款基于Java的Web应用开发框架,以其丰富的组件库、简洁的API及对现代Web标准的支持而广受开发者欢迎。本文将指导你从零开始快速搭建一个简单的Vaadin应用。首先确保已安装JDK 11及以上版本和IDE(如IntelliJ IDEA或Eclipse)。接着使用Spring Initializr创建新项目,并选中“Spring Web”和“Vaadin”依赖。创建项目后,编写主应用类和主页类,实现基本页面功能。最后配置启动页面并运行应用。通过这些步骤,你将成功搭建一个基础Vaadin应用,开启探索更多特性的旅程。
1921 0
|
开发者 Python
神秘编程世界惊现强大调试法宝!FastAPI 究竟藏着怎样的秘密?带你解决 Web 应用问题大揭秘!
【8月更文挑战第31天】在 Web 应用开发中,调试至关重要,有助于迅速定位并解决问题,确保应用稳定运行。不同于传统框架依赖打印日志和手动检查代码的方式,FastAPI 作为现代 Python Web 框架,提供了内置开发服务器和自动重载功能,极大提升了开发效率。结合 Python 调试器,开发者可通过设置断点来逐步执行代码,直观精确地观察变量值与执行流程,快速定位问题。此外,FastAPI 还提供详细错误信息和日志记录,帮助开发者更高效地解决应用问题,提升应用质量。
275 0
|
存储 前端开发 数据库
神秘编程世界惊现强大架构!Web2py 的 MVC 究竟隐藏着怎样的神奇魔力?带你探索实际应用之谜!
【8月更文挑战第31天】在现代 Web 开发中,MVC(Model-View-Controller)架构被广泛应用,将应用程序分为模型、视图和控制器三个部分,有助于提高代码的可维护性、可扩展性和可测试性。Web2py 是一个采用 MVC 架构的 Python Web 框架,其中模型处理数据和业务逻辑,视图负责呈现数据给用户,控制器则协调模型和视图之间的交互。
221 0