JavaScriptLib
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Javascript</language>
Auf dieser Seite finden Sie einige JavaScript Bibliotheksfunktionen. Sie können diese in Ihre Wikiseiten einbinden (siehe [[Code referenzieren]]).
== JavaScript Hamster ==
Beispiel für graphische Ausgabe. Einbinden mit <nowiki>[[JavaScriptLib|Hamster]]</nowiki>.
<code id="Hamster">
var GridSize = 50;
function Hamster(Spielfeld) {
this.x = 0;
this.y = 0;
this.look = 0; // 0 up, 1 right, 2 down, 3 left
this.speed = 50;
this.Feld = Spielfeld;
this.inMouth = 0;
this.wait = function() {
if(this.speed < 1) this.speed = 1;
if(this.speed > 100) this.speed = 100;
//Thread.sleep(1000-(this.speed-1)*10);
};
this.vor = function() {
this.wait();
this.Feld.drawField(this.x,this.y);
if(this.look == 0)
if(this.y > 0) this.y--; else this.y = this.Feld.sizeY-1;
if(this.look == 1)
if(this.x < this.Feld.sizeX-1) this.x++; else this.x = 0;
if(this.look == 2)
if(this.y < this.Feld.sizeY-1) this.y++; else this.y = 0;
if(this.look == 3)
if(this.x > 0) this.x--; else this.x = this.Feld.sizeX-1;
this.draw();
};
this.linksUm = function() {
this.wait();
if(this.look == 0) this.look = 3; else
if(this.look == 1) this.look = 0; else
if(this.look == 2) this.look = 1; else
if(this.look == 3) this.look = 2;
this.draw();
}
this.nimm = function() {
this.wait();
if(this.Feld.map[this.x][this.y] > 0) {
this.Feld.map[this.x][this.y]--;
this.inMouth++;
this.draw();
}else alert("Kein Korn hier");
}
this.gib = function() {
this.wait();
if(this.inMouth > 0){
this.Feld.map[this.x][this.y]++;
this.inMouth--;
this.draw();
}else alert("Kein Korn im Mund");
}
this.vornFrei = function() {
if(this.look == 0)
if(this.y > 0) return this.Feld.map[this.x][this.y-1] != -1;
if(this.look == 1)
if(this.x < this.Feld.sizeX-1) return this.Feld.map[this.x+1][this.y] != -1;
if(this.look == 2)
if(this.y < this.Feld.sizeY-1) return this.Feld.map[this.x][this.y+1] != -1;
if(this.look == 3)
if(this.x > 0) return this.Feld.map[this.x-1][this.y] != -1;
return false;
}
this.kornDa = function() {
return this.Feld.map[this.x][this.y] > 0;
}
this.maulLeer = function() {
return this.inMouth == 0;
}
this.draw = function(){
this.Feld.drawField(this.x,this.y);
this.Feld.canvas.drawImage(this.x*GridSize,this.y*GridSize,GridSize,GridSize,"http://michael-hielscher.de/hamster/hamster"+this.look+".png");
}
return this;
}
function Spielbrett(c) {
this.sizeX = 8;
this.sizeY = 8;
this.map= [[]];
this.canvas = c;
this.initMap = function(){
canvas.clear();
this.map = [];
for(var x=0; x < this.sizeX; x++){
this.map.push([]);
for(var y=0; y < this.sizeY; y++){
this.map[x].push(0);
if(x==0 ||y == 0||x == sizeX-1|| y == sizeY-1) map[x][y] = -1;
}
}
this.drawMap();
}
this.placeWall = function(x,y){
if(x>=0 && y >= 0 && x < this.sizeX && y < this.sizeY) { this.map[x][y] = -1; this.drawField(x,y); }
}
this.clearWall = function(x,y){
if(x>=0 && y >= 0 && x < this.sizeX && y < this.sizeY) { this.map[x][y] = 0; this.drawField(x,y); }
}
this.drawMap = function(){
for(var y=0; y < this.sizeY; y++)
for(var x=0; x < this.sizeX; x++)
this.drawField(x,y);
}
this.drawField = function(x,y) {
canvas.setColor(255,255,255);
canvas.fillRect(x*GridSize,y*GridSize,GridSize,GridSize);
canvas.setColor(0,0,0);
canvas.rect(x*GridSize,y*GridSize,GridSize-1,GridSize-1);
if(this.map[x][y] == -1) {
canvas.drawImage(x*GridSize,y*GridSize,GridSize,GridSize,"http://michael-hielscher.de/hamster/brick_wall.png");
}
if(this.map[x][y] > 0) {
var image = this.map[x][y];
if(image > 9) image = 9;
canvas.drawImage(x*GridSize,y*GridSize,GridSize,GridSize,"http://michael-hielscher.de/hamster/grain"+image+".png");
}
}
this.putGrain = function(x,y,count) {
this.map[x][y] = count;
this.drawField(x,y);
}
return this;
}
</code>
<run id="54e7b178d1bbe"></run>