phzr
phzr copied to clipboard
Is this project still active?
I saw that this project hasn't been updated in 9 months and wondering if it's abandoned. I've been wanting to use CLJS and Phaser for a while. Would you recommend that I use phzr? If not, what did you learn from developing this library and what direction can you point me in? Thanks!
Hi @krisc ! I just started using phzr too (after using Phaser in js for more than a year, so I'm familiar with the framework already), and I have your same worries.
In case there is the need for devs to revive the project I can provide my help too :)
Hi @ff- how was your experience so far? And have you tried using Phaser through interop?
@krisc I just started fiddling with the examples, and I'm sticking to only phzr goodies at the moment (since avoiding interop is the point of this project IMO). So far I like it!
Hey all! Really sorry to have disappeared, I've been swamped at my day job. The inactivity is not for lack of interest, merely time. :sweat_smile:
@ff- Your assement is correct, the point of the project is to provide a thin, more idiomatic CLJS wrapper around PhaserJS. There has been some interest expressed in adding clojure-specific convenience functions, etc. Personally I'd prefer to write those in a library layer on top of phzr, but if that's the direction people want the project to go, I'm not opposed.
If anyone is interested in contributing or helping to maintain and drive the project, let me know and I'll do my best to make time to discuss. I'd love to work something out!
If anyone is interested in contributing or helping to maintain and drive the project, let me know and I'll do my best to make time to discuss. I'd love to work something out!
Thanks @dparis , that's great! I would love to have a chat about moving the project forward too 😊 We could agree on a time and do it on Gitter, or on the Clojurians Slack (I created a #phzr channel) sometime in the next days.
I checked out the Gitter and I like your outline of the next steps for the project, we could start from there.
@ff- Excellent! I have a work deadline coming due this Wednesday, after which I'll be free to chat more about phzr. I'll ping you whenever my schedule clears up after Wednesday and we can set up a time.
@dparis any updates on this? :)
@ff- Thanks for the ping! Last week's deadline was internal and, hence, subject to getting bumped. :stuck_out_tongue_closed_eyes:
We've got one of our first major external deliverable deadlines coming up the first week of next month on our company's first major clojure app. Been working on it from inception through to delivery for over a year. :smile: As you might imagine, everything's in delivery crunch mode and shifting around a lot, but there's finally light at the end of the tunnel.
I'll try to reach out before then, but for better or worse (cross your fingers!) we'll be done with this milestone soon and I some time should free up after then. Sorry for the delays!
It looks like the light at the end of the tunnel was just another train approaching ;)
I wanted to use phzr but it looks like it's quite unmaintained :(
Hello, 'phzr.easing' ns is pretty empty. How can I use the constants there? Generally, it would be cool if there were more examples.
Another question, when you add arguments to a signal's listener, in JS you can access it with 'arguments[index]' but how can we access them in phzr? I tried accessing an argument like this (first args)
or (args 0)
but it didn't work. Could there be an example how to achieve this?
var signal = new Phaser.Signal();
// listener 1
signal.add(function () {
console.log("listener 1");
for (var i = 0; i < arguments.length; i++) {
console.log("argument " + i + ": " + arguments[i]);
}
}, this, 0, "listener - 1", "listener - 2");
// listener 2
signal.add(function () {
console.log("listener 2");
for (var i = 0; i < arguments.length; i++) {
console.log("argument " + i + ": " + arguments[i]);
}
}, this);
//dispatch
signal.dispatch("dispatch - 1", "dispatch - 2");
Update on above question, I found this listener in your demo repo is serving as an example to get the arguments. So it works for me now :) But it was hard to figure out. Thanks for the great work.
(defn ^:private change-sprite
[pointer event sprite]
(if (= "monster" (:key sprite))
(ps/load-texture sprite "mummy" 0 false)
(ps/load-texture sprite "monster" 0 false)))