问题
I'm trying to make a game in HTML5 canvas, but instead of uploading a ton of images I want to just upload one image that has all of the tiles on it. The problem is, I don't know how to make only one part of the image show up. Basically I want to do what Google does with this image: http://www.google.com/images/srpr/nav_logo27.png except with fixed height/width tiles. Can someone explain to me how to do this? Also, if it's different in canvas than in a regular html page without canvas, how would I do it in canvas?
回答1:
You can use the slicing parameters of drawImage
drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)
sx
,sy
: left and top offset of the part to be slicedsWidth
,sHeight
: dimensions of the part to be sliceddx
,dy
: left and top offset for the image on the canvas to be rendered atdWidth
,dHeight
: image dimensions on the canvas
More info at: Using images - Slicing (MDC)
回答2:
Take a look at SpriteJS https://github.com/batiste/sprite.js/blob/master/sprite.js there the work is based on offset at the moment of drawing the sprite from a single picture.
回答3:
This is how I do it with GWT: http://code.google.com/p/gwt-examples/wiki/gwt_hmtl5
来源:https://stackoverflow.com/questions/4419505/tileset-for-html5-canvas-game