Javascript 试图建立一个基本的游戏引擎
我试图通过构建自己的游戏引擎来教会自己游戏引擎的功能。当我说基本的游戏引擎时,那不是打字错误。到目前为止,我所拥有的只是一个简单的文本加载器,我正在开发一个图像加载器。即使使用and.onload=函数样式技术,我也无法使图像显示在画布中。事实上,我总是在图像加载方面遇到问题,我只是为了大便和傻笑,制作了一个视频加载程序,加载了四个短视频,制作并附加了视频标签和保存它们的div,但图像仍然让我疯狂!世界跆拳道联盟!任何帮助,但更重要的是,洞察力将是无价的,有助于新手尝试理解,而不是抄袭而不理解。提前谢谢Javascript 试图建立一个基本的游戏引擎,javascript,canvas,html5-canvas,game-engine,drawimage,Javascript,Canvas,Html5 Canvas,Game Engine,Drawimage,我试图通过构建自己的游戏引擎来教会自己游戏引擎的功能。当我说基本的游戏引擎时,那不是打字错误。到目前为止,我所拥有的只是一个简单的文本加载器,我正在开发一个图像加载器。即使使用and.onload=函数样式技术,我也无法使图像显示在画布中。事实上,我总是在图像加载方面遇到问题,我只是为了大便和傻笑,制作了一个视频加载程序,加载了四个短视频,制作并附加了视频标签和保存它们的div,但图像仍然让我疯狂!世界跆拳道联盟!任何帮助,但更重要的是,洞察力将是无价的,有助于新手尝试理解,而不是抄袭而不理解。
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
function drawText(context, pxSize, fontStyle, color, text, x, y){
context.font = pxSize + 'px ' + fontStyle;
context.fillStyle = color;
context.fillText(text, x, y);
}
function drawHero(src, sourceX, sourceY, sourceWidth, sourceHeight, x, y, height, width){
var hero = {
image: new Image(),
src: src,
sourceX: sourceX,
sourceY: sourceY,
sourceWidth: sourceWidth + 'px',
sourceHeight: sourceHeight + 'px',
x: x,
y: y,
width: width + 'px',
height: height + 'px'
};
hero.image.onload = function(){
context.drawImage(hero.image, hero.sourceX, hero.sourceY, hero.sourceWidth,
hero.sourceHeight, hero.x, hero.y, hero.width, hero.height);
}
hero.image.src = src;
}
drawHero("sonic.png" , "sonic1", 0, 0, 85, 119, 10, 10, 85, 119);
您将
hero.width
和hero.height
定义为字符串,这会导致错误,因为context.drawImage
需要一个数字作为高度和宽度
取下宽度:宽度+“px”
和高度:高度+“px”
并将其替换为宽度:宽度
和高度:高度
编辑:刚刚意识到您对hero.sourceWidth
和hero.sourceHeight
也做了同样的操作
编辑2:刚刚意识到您将10个参数传递给了drawHero
,而它只接受9个参数。您应该删除“sonic1”
编辑3:您将参数排序为context.drawImage
也错误。
您可能需要阅读以下内容:。
使用以下命令:
context.drawImage(hero.image,hero.x,hero.y,hero.width,hero.height,hero.sourceX,hero.sourceY,hero.sourceWidth,hero.sourceHeight)代码>
祝你的游戏引擎好运 您将hero.width
和hero.height
定义为字符串,这会导致错误,因为context.drawImage
需要一个数字作为高度和宽度
取下宽度:宽度+“px”
和高度:高度+“px”
并将其替换为宽度:宽度
和高度:高度
编辑:刚刚意识到您对hero.sourceWidth
和hero.sourceHeight
也做了同样的操作
编辑2:刚刚意识到您将10个参数传递给了drawHero
,而它只接受9个参数。您应该删除“sonic1”
编辑3:您将参数排序为context.drawImage
也错误。
您可能需要阅读以下内容:。
使用以下命令:
context.drawImage(hero.image,hero.x,hero.y,hero.width,hero.height,hero.sourceX,hero.sourceY,hero.sourceWidth,hero.sourceHeight)代码>
祝你的游戏引擎好运 要正确加载您的图像和更一般的资源,请使用单独的功能创建资源,并使用“启动”功能在加载每个资源后启动引擎
var resourceCount = 0;
function loadResource(type, src) {
if (type == Image) {
resourceCount++;
var newImage = new Image();
newImage.onload = resourceLoaded;
// you might want to handle errors to ease debugging.
// newImage.onerror = ...
newImage.src = src;
return newImage;
}
// ... some other code for your text / sound / ... ressources
}
function resourceLoaded(loadedEvt) {
resourceCount--;
if (resourceCount == 0) startEngine();
}
// use with :
var heroImage = loadResource(Image, 'hero.png');
要正确加载图像和更一般的资源,请使用单独的功能创建资源,并使用“启动”功能在加载每个资源后启动引擎
var resourceCount = 0;
function loadResource(type, src) {
if (type == Image) {
resourceCount++;
var newImage = new Image();
newImage.onload = resourceLoaded;
// you might want to handle errors to ease debugging.
// newImage.onerror = ...
newImage.src = src;
return newImage;
}
// ... some other code for your text / sound / ... ressources
}
function resourceLoaded(loadedEvt) {
resourceCount--;
if (resourceCount == 0) startEngine();
}
// use with :
var heroImage = loadResource(Image, 'hero.png');
我相信这个问题可能更适合我相信这个问题可能更适合我抱歉,我已经忙得不可开交了,但我只是想说谢谢你的帮助,我们必须团结一致,并确保表示赞赏,你的建议发挥了巨大的作用,现在我想看看我是否能理解游戏炼金术士的帖子以获取更多图片,我正试图得到一个平滑、简单的瓷砖加载系统,尤其是正交贴图,这让我大吃一惊。我是一个巨大的文明迷,但我在努力做到这一点时伤了脑筋,为什么我决定再试一次?不管怎样,我非常感谢你的帮助。对不起,我的工作忙得不可开交,但我只想说谢谢你的帮助,我们必须团结一致,确保表示感谢,你的建议很有魅力,现在我想看看我是否能理解游戏炼金术士的帖子,获得更多的图片,我正在尝试顺利,轻松加载系统的瓷砖,尤其是正交地图,这让我震惊。我是一个巨大的文明迷,但我在努力做到这一点时伤了脑筋,为什么我决定再试一次?不管怎么说,我非常感谢你的帮助。我只是想看看这个,我相信分享,所以我一直在看这段视频,讲述奇怪的部分,以克劳福德为例,这家伙知道他的东西,无论如何,谢谢,谢谢,谢谢,谢谢你的帮助。我没有试过,但我现在正在研究它,这样我可以理解,而不是仅仅复制,我知道你在做什么,但不是很深入,这样我可以自己复制它,例如,我尝试使用JSON对象来保存图片的src、名称和索引,这样我就可以制作一个平铺图,我是一个巨大的civ迷,我很想建造类似的东西。无论如何,谢谢你的帮助!PS我看到听到一些关于吸血鬼的事情,如果我有很多问题的话,我怎么才能不成为吸血鬼中的一员呢?我只是想看看这个,我相信分享,所以我一直在看这个视频JavaScript奇怪的部分,以克劳福德为例,这个家伙知道他的东西,无论如何,谢谢你,谢谢你,谢谢你,谢谢你的帮助。我没有试过,但我现在正在研究它,这样我可以理解,而不是仅仅复制,我知道你在做什么,但不是很深入,这样我可以自己复制它,例如,我尝试使用JSON对象来保存图片的src、名称和索引,这样我就可以制作一个平铺图,我是一个巨大的civ迷,我很想建造类似的东西。无论如何,谢谢你的帮助!PS我看到或听到一些关于吸血鬼的事情,如果我有很多问题,我怎么不成为其中之一?