Mercurial > hg > Game > WebGL
view dandy/resources/bom.js @ 1:54589bb5e57d
add dandy
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 23 Feb 2012 14:51:33 +0900 |
parents | |
children |
line wrap: on
line source
bomend = 0; bchar = []; function bcharClass() { this.x = 0; this.y = 0; this.no = 0; this.scale = 1.0; this.flag = 0; this.image = new Object(); this.texture = new Object(); return this; } function Bom(x, y) { var i; if ( bomend > 49) { bomend = 49; return ; } i = bomend; bchar[i] = new bcharClass(); bchar[i].x = x; bchar[i].y = y; bchar[i].scale = 1.0; bchar[i].no = 0; bchar[i].flag = 0; bomend++; return ; } function loadBomImage(charano, p) { p.image = bomImage[charano]; p.texture = bomImage[charano].texture; p.w = bomImage[charano].w; p.h = bomImage[charano].h; } function PutBom(gl) { for(var i=0; i < bomend ; i++) { if(bchar[i].no != 8) { count++; // DefSpriteEx(30 + bchar[i].no, 8, 8); // PutSpriteEx(30 + bchar[i].no, bchar[i].x+96, bchar[i].y+96, 2, 2, 1); PutSpriteEx(gl, bchar[i], bomImage[bchar[i].no]); bchar[i].no++; } /* bchar[] の中身は Character.js の celete_obj() で消す if(bchar[i].no == 8){ if(bomend == i-1 ){ bomend--; break; } if(bomend > i) { bchar[i] = bchar[bomend]; bomend--; i--; } } */ } } //function PutSpriteEx(number, x, y, scalex, scaley, angle) function PutSpriteEx( ctx, glObj, image) { // setup VBOs ctx.enableVertexAttribArray(0); ctx.enableVertexAttribArray(1); ctx.enableVertexAttribArray(2); ctx.bindBuffer(ctx.ARRAY_BUFFER, image.vertexObject); ctx.vertexAttribPointer(2, 3, ctx.FLOAT, false, 0, 0); ctx.bindBuffer(ctx.ARRAY_BUFFER, image.normalObject); ctx.vertexAttribPointer(0, 3, ctx.FLOAT, false, 0, 0); ctx.bindBuffer(ctx.ARRAY_BUFFER, image.texCoordObject); ctx.vertexAttribPointer(1, 2, ctx.FLOAT, false, 0, 0); ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, image.indexObject); // generate the model-view matrix var mvMatrix = new J3DIMatrix4(); mvMatrix.scale(glObj.scale, glObj.scale, glObj.scale); mvMatrix.translate(glObj.x,glObj.y,10); // construct the normal matrix from the model-view matrix var normalMatrix = new J3DIMatrix4(mvMatrix); normalMatrix.invert(); normalMatrix.transpose(); normalMatrix.setUniform(ctx, ctx.getUniformLocation(ctx.program, "u_normalMatrix"), false); // construct the model-view * projection matrix var mvpMatrix = new J3DIMatrix4(ctx.perspectiveMatrix); mvpMatrix.multiply(mvMatrix); mvpMatrix.setUniform(ctx, ctx.getUniformLocation(ctx.program, "u_modelViewProjMatrix"), false); ctx.bindTexture(ctx.TEXTURE_2D, image.texture); ctx.drawElements(ctx.TRIANGLES, image.numIndices, ctx.UNSIGNED_SHORT, 0); }