japanese-drum-game/public/src/js/circle.js

84 lines
1.4 KiB
JavaScript
Raw Normal View History

2018-09-15 22:34:53 +08:00
class Circle{
2018-09-20 07:20:26 +08:00
constructor(config){
// id, ms, type, text, speed, endTime, requiredHits
this.id = config.id
this.ms = config.start
this.type = config.type
this.text = config.txt
this.speed = config.speed
this.endTime = config.endTime || this.ms + 150
this.isPlayed = 0
2018-09-15 22:34:53 +08:00
this.animating = false
this.animT = 0
this.score = 0
2018-09-20 07:20:26 +08:00
this.lastFrame = this.ms + 100
2018-09-15 22:34:53 +08:00
this.animationEnded = false
this.status = -1
this.timesHit = 0
2018-09-20 07:20:26 +08:00
this.requiredHits = config.requiredHits || 0
this.rendaPlayed = false
2018-09-20 07:20:26 +08:00
this.gogoTime = config.gogoTime
this.gogoChecked = false
2018-09-15 22:34:53 +08:00
}
getMS(){
return this.ms
}
getEndTime(){
return this.endTime
}
getType(){
return this.type
}
getLastFrame(){
return this.lastFrame
}
incFrame(){
this.lastFrame += 20
}
animate(){
this.animating = true
}
isAnimated(){
return this.animating
}
getAnimT(){
return this.animT
}
incAnimT(){
this.animT += 0.05
}
updateStatus(status){
this.status = status
}
getStatus(){
return this.status
}
getPlayed(){
return this.isPlayed
}
isAnimationFinished(){
return this.animationEnded
}
endAnimation(){
this.animationEnded = true
}
played(score, big){
2018-09-15 22:34:53 +08:00
this.score = score
this.isPlayed = big ? 2 : 1
2018-09-15 22:34:53 +08:00
}
hit(){
this.timesHit++
}
getScore(){
return this.score
}
getID(){
return this.id
}
getText(){
return this.text
}
getSpeed(){
return this.speed
}
2015-07-17 16:22:46 +08:00
}