问题标签 [craftyjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 使用 Crafty 响应触摸
我正在尝试使用 Crafty JS 创建一个游戏,我最终想通过 PhoneGap 进行部署。开箱即用,该.fourway()
方法对我的 Android 设备上的触摸没有响应。是否有内置的触摸支持?是否有我可以用来添加触摸功能的组件,或者我必须手动设置它?
javascript - 如何在 div 中包含我的 JavaScript 游戏?
在我的 HTML 中,我有一个部分,其中有 JavaScript,它添加了一个运行我的游戏的事件侦听器:
如何使 JavaScript 包含在它上面的 div 中?当它显示时,游戏完全在它之外。
我正在使用crafty.js 框架。此处的文档:http: //craftyjs.com/api/
javascript - 在 crafty.js 中的精灵上显示背景
在一个小型的 crafty.js 项目中,我使用了一个精灵作为背景图像,但它呈现在其他精灵之上。我该如何解决?主场景代码如下:
craftyjs - 如何使用 Craftyjs 通过鼠标交互使动画精灵移动?
我有一个使用 Craftyjs 编写的 HTML5 画布游戏。我使用箭头键可以正常进行键盘交互,但在添加鼠标交互时遇到问题。精灵确实会随着鼠标轻微移动,但与使用箭头键的方式不同,当它碰到另一个组件时,它似乎会崩溃。我在组件中添加了一个函数来处理不起作用的鼠标交互,因此它被注释掉了。这是我的精灵组件的代码;
这是天使在场景中实例化的代码。我向它添加了一个绑定函数来尝试使鼠标交互工作,但这不能正常工作。
这是游戏的链接;
http://users.aber.ac.uk/rig6/achievement_unlocked/index.html
我已经尝试了所有方法,但在网上找不到对此有帮助的示例。请问有人可以帮忙吗?
javascript - Calling a function or focusing a programmatically generated Iframe from an HTML5 canvas
I have an HTML5 canvas controlled and generated by a library of JavaScript files (Craftyjs library mostly).
The canvas generates 2 regular html iframes (same domain) which are stacked on top of each other.
The canvas switches between the two iframes based on calls from the iframes to the parent so I know the code controlling the canvas is easily accessed by their common parent.
I want the parent canvas to either call a function in the iframes to have them focus on a specific element in them or to somehow just have the iframes get focus in general.
I would also prefer to not have to constantly reload/recreate the iframes to get focus.
These are things I have tried to get to work
When it doesn't throw an error it doesn't do anything in chrome or FireFox.
(Object [object global] has no method 'focusThis') is a common error
Any help would be greatly appreciated.
javascript - 基本的狡猾游戏填满移动设备的整个屏幕
我正在尝试 Crafty.js 来做一些基本的游戏,它在桌面浏览器上完美运行,但在移动设备上填满了整个屏幕。这是我的网页:
最后是我的游戏(homegame.js):
我尝试使用视口元标记,但没有奏效 此外,crafty.js 网站上的入门游戏在移动设备上也有同样的问题:http: //buildnewgames.com/assets/article//introduction-to-crafty /tut_bng/index.html。
任何想法如何解决它?
javascript - 测量时间流逝的脚本?
我目前正在使用 Crafty 为班级开发一个小游戏,而我们的游戏需要时间的流逝。为了给出上下文,这是一个类似电子宠物的游戏,玩家控制一个生物并在需要时喂养它、梳理它等,所以我们需要测量诸如“每五分钟生物会饿”之类的时间或“经过一定时间(比如 20 分钟),该生物将因自然原因死亡,游戏将结束”。我的问题是我不确定解决此问题的最佳方法是什么。我应该使用 setInterval 吗?设置超时?我自己的计时器课?我不知道此类实例最常见的解决方案是什么。到目前为止,我已经尝试了前两个选项,但没有成功。
我还尝试寻找时间的任何狡猾的功能;我能找到的最接近的是
Crafty.bind("EnterFrame", function() { ... })
,所以我可以逐帧“操纵”时间,但这也不起作用。提前致谢。
node.js - socket.io 数据似乎被多次发送(nodejs 和craftyjs)
我正在关注制作 HTML5 游戏的本教程。我想尝试混合节点以使其成为多人游戏。我在服务器上使用 node.js(v0.10.4),在前端使用crafty.js。
我正在使用 socket.io 发送和接收消息。现在只有我(不是多个客户)。发生的奇怪事情是来自服务器的消息似乎被发送了多次。我在 socket.io 中打开了调试模式,但它似乎只发送了一次数据,但在前端,数据似乎是多个进来的。我在数据上设置了一个增量器,似乎增量器没有多次增量,而是我得到了相同数据的多个副本。
这是节点代码:
这是前端代码:
最后,这是调试过程中的屏幕截图。正如您所看到的,数字并不总是在递增,它看起来就像是数据正在被存储。谢谢!
javascript - RequireJS 一些(不是全部)函数是未定义的
我不确定那里的任何人都可以对此提供帮助,但是可以。我目前正在重构我正在使用CraftyJS(一个优秀的基于组件的游戏引擎)编写的游戏以使用 RequireJS。一切都很顺利,但突然间我遇到了障碍。我构建了一个模块,在其中定义了一个小的 Crafty 组件,它基本上只是事件监听的瓶颈。在其中一个回调中,我调用了本地模块中定义的几个函数。我在许多情况下都在 RequireJS 中使用过这种模式,而且它总是对我有用。出于某种原因,在这种情况下,一些函数是未定义的。不是所有的人。一些。这是一些代码:
组件:
对于那些不熟悉 Crafty 的人,Crafty.c
创建一个以后可以实例化的组件。作为第二个参数传递的对象字面量将被附加(扩展?)到任何包含TurnStateMachineObserver
作为其组件之一的对象(即使用Crafty.e("TurnStateMachineObserver")
)。
组件内部使用的函数稍后在同一个文件中定义(整个文件包含在一个define()
调用中):
现在,当POST+PHASE_CHANGE
事件被触发时,在调用 时会抛出异常nextPhase()
,但不会在调用currentPhase()
! 经过一些调试,我确定,事实上,虽然模块中定义的所有函数在define()
第一次进入正文时都已正确定义,但其中大部分在组件的回调中未定义。事实上,当组件被实例化时
在init
函数(模块返回)nextPhase()
中定义了,但如果我进入_observer.startListening()
,它不是,虽然currentPhase()
是。啊!我正在把我剩下的头发拉到这个上面。让我真正感到困惑的是这些函数是兄弟姐妹。如何定义更高范围的某些功能而没有定义其他功能?!