vue-buzzer-game
v1.3.0
Published
Plugin um ein konfigurierbares Buzzer-Game zu entwickeln
Downloads
7
Readme
vue-buzzer-game - BUZZ the game!
Install
To install the buzzergame please include in your main.js
following code:
import VueBuzzer from 'vue-buzzer.plugin'
Vue.use(VueBuzzer);
Game Setup
First of all, these routines have to insert in your App.vue
:
// Add a language
this.$vueBuzzer.setLanguage("de")
// Add a Player (with Avatar)
this.$vueBuzzer.addPlayer({ de: "Spieler 1" }, "img/image.jpg")
// Multilingual
this.$vueBuzzer.addPlayer({ de: "Spieler 1", fr: "Joueur 1"}, "img/image.jpg")
// Add a Buzzer for the Player (has to be done for each Player) (in standard-language)
this.$vueBuzzer.addBuzzer("Player1", "buzzer1", "[key]", "#ff6900")
// Add a question catalogue
this.$vueBuzzer.addCatalog("cata1")
// Add a question to a catalogue
this.$vueBuzzer.addQuestion("cata1", "Question Text?", ["txt", "img", "video"], [
{"content": "./img/img.jpg", "is": true },
{"content": "./img/img.jpg", "is": false },
{"content": "./img/img.jpg", "is": false }
])
Finally when everything is set up, you can create the game:
// run the game
this.$vueBuzzer.createGame()
Eventlisteners
The buzzergame works a lot with events.
Key events
General registred is the "keypress" event, which is for the buzzers
Custom events
A bunch of custom events ar registred to track of the state and to manage the UI. The following list ar all events which are available.
To control the Route use:
event-name | Emit Event | this.$vueBuzzer.next([...])
--- | --- | ---
view-start-game
| yes | required: next('view-sel-lang')
view-sel-lang
| yes | required: next('view-sel-cata')
view-sel-cata
| yes | required: next('view-player-ready')
view-player-ready
| yes | required: next('view-question')
view-question
| yes | event / optional: next()
(eg. if time is expired)
view-right
| yes | required: next()
(if there are unused Questions, redirects to view-question
, if not to ```view-result)
view-wrong| yes | required:
next()(if its the first time, the other user(s) have a chance to answer)
view-nobody-was-right| yes | required:
next()(if there are unused Questions, redirects to
view-question, if not to
view-result)
view-question-end| no | required:
none(automatically forwards, when questions are available)
view-result| yes | required:
next('view-thankyou')
view-thankyou| yes | required:
next('[view-start-game / view-sel-lang / view-sel-cata / view-player-ready]')``
To process specific events use:
event-name | Parameter | Description
--- | --- | ---
player-registered
| Nummber: Index of registred player |
all-player-registered
| - |
buzzer-right
| Object: {player: [0], buzzer: [1], question: true}
|
buzzer-wrong
| Object: {player: [0], buzzer: [1], question: false}
|
Hooks
To interrupt the state switch of the program, you can use hooks.
Usage
These hooks are functions, you have to overwrite:
this.$vueBuzzer.hookQuestionBeforeSwitchToAnswer = function (next) {
// your code
// alert("hello")
next() // important: call the callback function
}
Available Hooks
hook | Description | Use case
--- | --- | ---
hookQuestionBeforeSwitchToAnswer | Before the event ```view-rightor
view-wrong`` is called. | Animation, Data manipulation
Get data
To get Data, there are following functions: