Subject: Mitt fritidsprojekt: Ett Javascript game-framework

Mitt fritidsprojekt: Ett Javascript game-framework

From: Björn Göransson <bornemix_at_gmail.com>
Date: Sun, 12 Feb 2012 15:50:20 +0100

Hej,

Nu är mitt projekt "Gamework" redo för en liten demo:
http://gamework-sample.bedr.se/

Se spellogiken här: http://localhost/scripts/game.js

(Koden är släppt under GPL.)

-----

Tanken med detta framework är att på ett semantiskt sätt kunna programmera
spellogik i Javascript. Dock så borde framework:et kunna portas till andra
språk ganska enkelt.

Ett spel består av instanser, som i sin tur (ibland) har en sprite som
renderas på skärmen.

En sprite laddas såhär:

game.sprites.add("square");

Och en instans med denna sprite skapas såhär:

create("square");

På så sätt skapas en instans med namnet "square" och som har spriten som
heter samma sak. Du kan även ändra namnet:

create("square").set("name", "'bullseye'");

Man hämtar egenskaper från instanserna på samma sätt, och du kan även
inkludera uträkningar:

take("square").get("height/2 + 1");

Man kan även ha klasser för ens instanser. Då använder man
.addClass("foo")och lägger till de klasser man vill på de instanser
man vill, och använder
sedan take(".foo") för att få tillbaka dem.

Öppnar man upp konsolen i sin webbläsare så kan man leka med instanser
live. Tex för mitt spelexempel: take(".pot").animate({x:500,y:300})

Något fint med take("...") är att man inte får någon null pointer exception
om man tex exekverar animate, det spelar ingen roll om man får tillbaka 0,
1 eller 300 element.

Jag har just gjort ett exempel för hur man får instanser att "snappa" till
ett grid om 30px, se http://gamework-sample.bedr.se/snapping/ med
tillhörande kod: http://gamework-sample.bedr.se/snapping/scripts/game.js

OBS, kör med Chrome så vet ni att det fungerar ungefär lika bra som när jag
testat...

-- 
Med vänlig hälsning,
Björn A. Göransson

_______________________________________________
http://www.foss-sthlm.se/
http://cool.haxx.se/cgi-bin/mailman/listinfo/foss-sthlm
Received on 2012-02-12