Speechbubble work

This commit is contained in:
Ruben Müller 2014-12-07 15:52:54 +01:00
parent e26acf2c2e
commit 6f482e8d2c
5 changed files with 35 additions and 4 deletions

View file

@ -21,7 +21,7 @@ gulp.task('server', function() {
}); });
gulp.task('compile', function() { gulp.task('compile', function() {
return gulp.src(['src/entities/*.coffee', 'src/items/*.coffee', , 'src/tiles/*.coffee', 'src/tools.coffee', 'src/app.coffee', 'src/game.coffee', 'src/hud.coffee']) return gulp.src(['src/entities/*.coffee', 'src/items/*.coffee', , 'src/tiles/*.coffee', 'src/tools.coffee', 'src/app.coffee', 'src/game.coffee', 'src/hud.coffee', 'src/speechbubble.coffee'])
.pipe(sourcemaps.init()) .pipe(sourcemaps.init())
.pipe(coffee({bare: true})) .pipe(coffee({bare: true}))
.pipe(concat('app.js')) .pipe(concat('app.js'))

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -5,7 +5,7 @@ app = playground(
smoothing: false, smoothing: false,
create: -> create: ->
@loadImages "layers", "active", "progress", "selected", "entities", "hud", "actions" @loadImages "layers", "active", "progress", "selected", "entities", "hud", "actions", "speechbubbles"
@currentHoveredTile = new Tile @currentHoveredTile = new Tile
ready: -> ready: ->

View file

@ -4,11 +4,15 @@ app.game =
@map[i] = new Tile(i) @map[i] = new Tile(i)
@map[20*5+10].entity = new Base @map[20*5+10].entity = new Base
@mouseX = 0
@mouseY = 0
@currentHoveredTile = new Tile(-1) @currentHoveredTile = new Tile(-1)
@currentSelectedTile = null @currentSelectedTile = null
window.setInterval @tick, 1000 window.setInterval @tick, 1000
@hud.start() @hud.start()
@speechbubble.start()
render: -> render: ->
for tile, i in @map for tile, i in @map
@ -16,6 +20,7 @@ app.game =
x = i-(y*20) x = i-(y*20)
tile.render(x, y) tile.render(x, y)
@hud.render() @hud.render()
@speechbubble.render()
mousedown: (event)-> mousedown: (event)->
if @isMouseInView event.x/8, event.y/8 if @isMouseInView event.x/8, event.y/8
@ -32,6 +37,9 @@ app.game =
@currentSelectedTile = null @currentSelectedTile = null
mousemove: (event)-> mousemove: (event)->
@mouseX = event.x
@mouseY = event.y
if @isMouseInView event.x, event.y if @isMouseInView event.x, event.y
tile = posToTile(Math.floor(event.x/8), Math.floor(event.y/8)) tile = posToTile(Math.floor(event.x/8), Math.floor(event.y/8))
@ -67,8 +75,12 @@ app.game =
@currentSelectedTile.entity = new Miner @currentSelectedTile.entity = new Miner
createSilo: -> createSilo: ->
if @currentSelectedTile and @checkPosition(@currentSelectedTile) and @checkResource('stardust', 20, true) if @currentSelectedTile
if @checkPosition(@currentSelectedTile)
if @checkResource('stardust', 20, true)
@currentSelectedTile.entity = new Silo @currentSelectedTile.entity = new Silo
else
@speechbubble.say 'toofar'
checkResource: (type, amount, drain = false) -> checkResource: (type, amount, drain = false) ->
if @resources[type] >= amount if @resources[type] >= amount

19
src/speechbubble.coffee Normal file
View file

@ -0,0 +1,19 @@
app.game.speechbubble =
start: ->
@sprite = [0, 0, 27, 13]
say: (text) ->
clearTimeout(@timeout) if @timeout
switch text
when 'help' then @sprite = [0, 0, 27, 13]
when 'toofar' then @sprite = [0, 13, 90, 13]
@visible = true
@timeout = window.setTimeout @hide, 1000
hide: =>
app.game.speechbubble.visible = false
render: ->
app.layer.drawRegion app.images.speechbubbles, @sprite, app.game.mouseX+5, app.game.mouseY-15 if @visible