I might be able to help a bit. I just discovered the wick editor though and want to find out, what it is capable of, but I am a flash and js veteran.
I don’t know how far you progressed since you posted this or if you are still working on it, but there are different ways to achieve what you want.
Very simple ones that work for just this exact type of level, or advanced ones, that gives you more power later on.
I would probably make use of a physics libary, like Box2D, which might look scary at first look, but gives very nice results.
So you would define your walls as static boxes(that cannot move) and the player and the enemies as a circle with a given size and mass and friction. Moving would mean applying a force to them. All a bit complex, but it also means that you get effects like pushed back by a stroke.
You can have magic projectiles that bounce of enemies for example and have all the logic and movement done by the engine.
The simple solution would be to all do this by hand.
Which is easy, but exhausting with the walls, so you can only move in one direction, if there is not alreay a wall.
So instead of simple
if (key === 'a') {
this.x -= 5
}
We would have to check if it is a allowed move
if (key === 'a' && isPointAllowed({x:this.x-5, this.y}) {
this.x -= 5
}
And the logic to work
var forbiddenAreas=[ {x:0,y:0,w:64,h:64*4},{x:64,y:0,w:64*3,h:64*2}]
function isPointAllowed(p){
for(var i=0;i<forbiddenAreas.length;i++){
if (isPointInRectangle(p,forbiddenAreas[i])
return 1
}
}
function isPointInRectangle(p,r){
if(p.x>r.x && p.x< r.x+w && p.y>r.y && p.y< r.y+h )
return 1
}
But you also would have to do that with the enemies. And you cannot make things as easy, as having a explosion that pushes game objects around as you would have to check for every element, if it is a aloowed position and if it is not a allowed position than where to place to instead etc.
I play around a bit with it, and might post a update to your game.