Woo-hoo!
So, bidding has ended, MyPlayYard(5hippos) won the game!
It was released yesterday to public and got Daily 2nd Place on Newgrounds. And that makes me happy. 🙂
Today it was published on Kongregate as well, but they have more hard-core audience, so I’m not waiting anything big.
Now I have to wait 6 weeks to start selling site-locks, but hope to put version with my brandings to Pozirk Games website much sooner.
As for now, you can play sponsor-branded version of Dolly The Sheep.
Almost, almost.
All the graphics, 40 levels, gameplay, awards, almost everything ready.
We need to beta-test it a little bit, and I’m still looking for someone, who can provide us the sounds effect and music.
Our intro for the game:
So, I have added Gaps Solitaire to All-in-One Solitaire game.
And I’m planning to add at least two more solitaire games: Spider and Free Cell.
I have moved website to another hoster, so it took me some days and nights to configure my first self-managed VPS.
We are working “hard” on Dolly The Sheep game.
There are still not all the graphics ready, but we are making levels already.
I think, I will be able to release a couple of smaller games, before we finish with DTS.
Here are some videos with gameplay:
For Dolly The Sheep game I’m using WCK + Box2D Alchemy Port.
It’s a very handy framework, but unfortunately, it lacks documentation and has some bugs.
One of the bugs, I have recently discovered was with the build-in Conveyor belt.
Here is an example.
There are 3 boxes, they should move to the same direction, while they are lying on the conveyor, but… their behavior is unpredictable.
I’ve decided to make my own simple Conveyor Belt, by listening Contact Events.
Here is my code:
...
public override function create():void{
friction = 0; //this is very important, otherwise objects on conveyor will be moving with different speed
reportBeginContact = true;
reportEndContact = true;
super.create();
listenWhileVisible(this, ContactEvent.BEGIN_CONTACT, onBeginContact);
listenWhileVisible(this, ContactEvent.END_CONTACT, onEndContact);
}public override function update(param:Param):void//your own update function, calls every frame{//set velocity to objects lying on the conveyor belt, I'm only using horizontal velocity here//_dir - direction, where object on conveyor should move to//_shape._normal - only the "y" of the normal, when object has contacted conveyor, in my case it can be only 1(from above) or -1(from below)foreach(_shape in _shapes)//go through all the objects, contacting conveyor{
_shape2 = _shape._shape;
_shape2.b2body.SetLinearVelocity(new V2(_dir*_shape._normal*_speed, 0));
}}
protected function onBeginContact(event:ContactEvent):void{//add object and its contact normal to the list//event.other.m_userData - our object//event.normal - our normal of the contact, that points from conveyor belt to object//if event.normal.y > 0, object has contacted conveyor from below//if event.normal.y 0 ? -1 : 1)));}
protected function onEndContact(event:ContactEvent):void{//remove object, that is not contacting with conveyor from the list
...
}
...
public override function create():void
{
friction = 0; //this is very important, otherwise objects on conveyor will be moving with different speed
reportBeginContact = true;
reportEndContact = true;
super.create();
listenWhileVisible(this, ContactEvent.BEGIN_CONTACT, onBeginContact);
listenWhileVisible(this, ContactEvent.END_CONTACT, onEndContact);
}public override function update(param:Param):void //your own update function, calls every frame
{
//set velocity to objects lying on the conveyor belt, I'm only using horizontal velocity here
//_dir - direction, where object on conveyor should move to
//_shape._normal - only the "y" of the normal, when object has contacted conveyor, in my case it can be only 1(from above) or -1(from below)
for each(_shape in _shapes) //go through all the objects, contacting conveyor
{
_shape2 = _shape._shape;
_shape2.b2body.SetLinearVelocity(new V2(_dir*_shape._normal*_speed, 0));
}
}protected function onBeginContact(event:ContactEvent):void
{
//add object and its contact normal to the list
//event.other.m_userData - our object
//event.normal - our normal of the contact, that points from conveyor belt to object
//if event.normal.y > 0, object has contacted conveyor from below
//if event.normal.y 0 ? -1 : 1)));
}
protected function onEndContact(event:ContactEvent):void
{
//remove object, that is not contacting with conveyor from the list
...
}
Of course, my version has some problems too, mainly because of the zero friction.
Hope, new version of Box2D Alchemy Port with fixed bugs will be released soon.
Ok. Small demo from Dolly The Sheep.
Game still lacks animation as well as graphics and sound, but it looks funny.
The idea of the game is to remove obstacles on Dolly’s way by shooting them with balloons.
So these obstacles fly up and you let Dolly to move from A to B(exit) and help to escape from Labs, where evil 👿 scientists carry out their terrible experiments.
After some thoughts, I have decided to start making two new games:
Dolly The Sheep – Box2D based game, where you have to help the sheep to escape from evil scientists.
For this game, I’m going to use WCK. It’s a handy Box2D-based framework, that allows to create game levels within Flash IDE.
All-in-One Solitaire – 5+ solitaire games in one.
While searching for images for solitaire game, I have found a good website with tons of absolutely free images:
“Openclipart is the largest collaboration community that create, share and remix cliparts. All cliparts are released to the Public Domain so they can be freely used in any project for free.”