Mercurial > hg > Members > e085711
view webGL/dandy/resources/bom.js @ 10:a959cdca5b62
add bom.js
author | NOBUYASU Oshiro |
---|---|
date | Sat, 10 Jul 2010 16:38:23 +0900 |
parents | |
children | 680b5b0cd1e4 |
line wrap: on
line source
bomend = 0; bchar = []; function bcharClass() { this.x = 0; this.y = 0; this.no = 0; this.flag = 0; return this; } function bom2(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].no = 0; bchar[i].flag = 0; loadBomImage(0, bchar[i]); bomend++; return ; } function loadBomImage(charano, p) { p.image = bom[charano]; p.texture = bom[charano].texture; p.w = bom[charano].w; p.h = bom[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], bom[bchar[i].no]); // PutSpriteEx(gl, bchar[i], enemy[0]); PutSprite(gl, bchar[i], bchar[0]); bchar[i].no++; } // if(bchar[i].no == 8){ if(bchar[i].no == 7){ if(bonmed == i) { 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 CanvasMatrix4(); mvMatrix.scale(1.0, 1.0, 1.0); mvMatrix.translate(glObj.x,glObj.y,10); // construct the normal matrix from the model-view matrix var normalMatrix = new CanvasMatrix4(mvMatrix); normalMatrix.invert(); normalMatrix.transpose(); ctx.uniformMatrix4fv(ctx.getUniformLocation(ctx.program, "u_normalMatrix"), false, normalMatrix.getAsWebGLFloatArray()); // construct the model-view * projection matrix var mvpMatrix = new CanvasMatrix4(mvMatrix); mvpMatrix.multRight(ctx.perspectiveMatrix); ctx.uniformMatrix4fv(ctx.getUniformLocation(ctx.program, "u_modelViewProjMatrix"), false, mvpMatrix.getAsWebGLFloatArray()); ctx.bindTexture(ctx.TEXTURE_2D, image.texture); ctx.drawElements(ctx.TRIANGLES, image.numIndices, ctx.UNSIGNED_SHORT, 0); }