Picha ya Kijogo
- Picha ya Kwanza Makosa ya Kijogo
- Picha ya Kina Sound ya Kijogo
Bonyeza butuni kufikia kushika msaada wa mwelezo:
Kutumia picha?
Kama unaonesha kuongeza picha kwenye kanvasi, tuma kufungua tabia za picha na vifaa vya objecti ya "getContext("2d")":
Kwenye kipindi chetu, kama unaonesha kufanya komponzi kama picha, tuma kufungua mfano wa komponzi, lakini wakati huo tunahitaji kurejea URL ya picha, hata tupu ya rangi. Kwa hivyo, tunahitaji kumtaarifu mfano wa komponzi kama "image":
mimba
function startGame() { myGamePiece = new component(30, 30, "smiley.gif", 10, 120, "image"); myGameArea.start(); }
Kwenye mfano wa komponzi, tunafikia ina kwenye aina "image", na tunafungua kiobjecti cha "new Image()" cha mfano wa kufungua tovuti ya picha. Kama tunapumzika kuandaa tovuti ya picha, tunatumia method ya drawImage hata method ya fillRect:
mimba
function component(width, height, color, x, y, type) { this.type = type; if (type == "image") {}} this.image = new Image(); this.image.src = color; } this.width = width; this.height = height; this.speedX = 0; this.speedY = 0; this.x = x; this.y = y; this.update = function() { ctx = myGameArea.context; if (type == "image") {}} ctx.drawImage(this.image, this.x, this.y, this.width, this.height); } else { ctx.fillStyle = color; ctx.fillRect(this.x, this.y, this.width, this.height); } } }
更改图像
您可以随时通过更改组件的 image
对象的 src
属性来更改图像。
如果您想在每次移动时更改笑脸,请在用户单击按钮时更改图像源,并在未单击按钮时恢复正常:
mimba
function move(dir) { myGamePiece.image.src = "angry.gif"; if (dir == "up") {myGamePiece.speedY = -1; } if (dir == "down") {myGamePiece.speedY = 1; } if (dir == "left") {myGamePiece.speedX = -1; } if (dir == "right") {myGamePiece.speedX = 1; } } function clearmove() { myGamePiece.image.src = "smiley.gif"; myGamePiece.speedX = 0; myGamePiece.speedY = 0; }
背景图片
通过将背景图像添加为组件,可将其添加到游戏区域,并在每个帧中更新背景:
mimba
var myGamePiece; var myBackground; function startGame() { myGamePiece = new component(30, 30, "smiley.gif", 10, 120, "image"); myBackground = new component(656, 270, "citymarket.jpg", 0, 0, "image"); myGameArea.start(); } function updateGameArea() { myGameArea.clear(); myBackground.newPos(); myBackground.update(); myGamePiece.newPos(); myGamePiece.update(); }
移动背景
更改背景组件的 speedX
属性可使背景移动:
mimba
function updateGameArea() { myGameArea.clear(); myBackground.speedX = -1; myBackground.newPos(); myBackground.update(); myGamePiece.newPos(); myGamePiece.update(); }
Ugumu wa mgongo
Kuwa sababu inayofikia inayotokana na mabaki ya mabaki ya mgongo huu inayotokana na teknolojia ya kipekelewa.
Kwanza, tukifaa kumtaarifu kifaa cha ujenzi kwamba hii ni mgongo. Kifaa cha ujenzi cha komponenti kinakamilika picha mara mbili, kinakamilika picha ya pili kwa picha ya kwanza.
katika newPos()
katika method, tukichukua kiweza kumekaa mwelekeo wa x wa komponenti kufikia mwisho wa picha, ikiwa ni kama hivi, tukichukua komponenti ya x
Mwiliwe ukiwa 0:
mimba
function component(width, height, color, x, y, type) { this.type = type; ina (type == "image" aupe) type == "background") { this.image = new Image(); this.image.src = color; } this.width = width; this.height = height; this.speedX = 0; this.speedY = 0; this.x = x; this.y = y; this.update = function() { ctx = myGameArea.context; ina (type == "image" aupe type == "background") { ctx.drawImage(this.image, this.x, this.y, this.width, this.height); ina (type == "background") { ctx.drawImage(this.image, this.x + this.width, this.y, this.width, this.height); } } ctx.fillStyle = color; ctx.fillRect(this.x, this.y, this.width, this.height); } } this.newPos = function() { this.x += this.speedX; this.y += this.speedY; ina (this.type == "background") { if (this.x == -(this.width)) { this.x = 0; } } } }
- Picha ya Kwanza Makosa ya Kijogo
- Picha ya Kina Sound ya Kijogo