webjoystick
SDU_WebJoystick a open source project create by FourDays base on Html5 websocket and Device API. we aim to develop a new way to play game--- use your mobile as gamepad, so you can play your web games in your PC and use he special feature of your phone.
Install
it's a module of Node.js. first you need install node,see < http://nodejs.org/> with the help of Node Packaged Modules tool npm, you can easily install it by
# npm install webjoystick -g
or download the source by
$ git clone https://github.com/z-yn/webjoystick.git
and run
# npm install ./webjoystick/ -g
Quick start
if you install webjoystick as global with option -g you can create a simple template project by
$ webjoystick <foldername>
or just deploy a simple example by
$ webjoystick -e <foldername>
Usage
webjoystick
var webjoystick = require('webjoystick');
var server = webjoystick.createServer(config);
config is used to create a websocket server,so you can see https://github.com/Worlize/WebSocket-Node/wiki/Documentation
GameWatcher
you need add public/javascripts/gamewatcher.js of the template
Methods
GameWatcher(url)
Arguments
-
url
: the url of the websocket
Example
var url = "ws://" + document.URL.substr(7).split('/')[0];
var gamewatcher = new GameWatcher(url)
connect()
connect to the websocket server
on(msg,func)
handle the event named msg
with the function func
Arguments
-
msg
: then event name -
func(data)
: the function to handle this event. data.uid---the uid of gamepad ;data.gamedata--- the data about the event
vabrate(uid,ruler)
send vabrate message to the gamepad
Arguments
-
uid
: the uid of gamepad -
ruler
: the ruler of vibration
Events
- connected--connected to server
- stop---stop game signal, the reason given by data
- gamepadAdded---new gamepad added to server, uid given by data
- gamepadRemoved----gamepad removed from server, it's uid given by data
- start---gamepad send start game signal, it's uid given by data
- deviceorientation-----DeviceOrientation Event of html5 Device API
- devicemotion-----DeviceMotion Event of html5 Device API
Gamepad
you need add public/javascripts/gamepad.js of the template
Methods
Gamepad(url,uid)
Arguments
-
url
: the url of the websocket -
uid
: the unique id of a gamepad
Example
var url = "ws://" + document.URL.substr(7).split('/')[0];
var gamepad = new Gamepad(url,'gamepad1')
connect()
connect to the websocket server
on(msg,func)
handle the event named msg
with the function func
Arguments
-
msg
: then event name -
func(data)
: the function to handle this event. data.uid---the uid of gamepad ;data.gamedata--- the data about the event
sendMessage(msg,data)
send message to GameWatcher,it can deal with by on(msg,data) in GameWatcher
Arguments
-
msg
: title of the message -
data
: data of the message ,can be json object
Example send 'hello' as title and 'world' as data to GameWatcher
var url = "ws://" + document.URL.substr(7).split('/')[0];
var gamepad = new Gamepad(url,'gamepad1')
gamepad.sendMessage('hello','world');
and GameWatcher get message like
gamewatcher.on('hello',function(data) {
console.log(data.uid);//"gamepad1"
console.log(data.gamedata);//"world"
});
start_devicemotion() / stop_devicemotion()
start/stop the devicemotion event listen
start_deviceorientation / stop_deviceorientation()
start/stop the deviceorientation event listen
disable_vibrate() / enable_vibrate()
disable/enable vibrate
Events
- connected---connected to server
License
Copyright 2013 FourDays
SDU_WebJoystick is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
SDU_WebJoystick is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with SDU_WebJoystick. If not, see <http://www.gnu.org/licenses/>.
We referred to Node.js with honor, here is its license
====
Copyright Joyent, Inc. and other Node contributors. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
====