Mercurial > hg > Members > e085711
view webGL/dandy/resources/bom.js~ @ 12:61febc94fa62
upload dandy4.html,new xmlFile
author | NOBUYASU Oshiro |
---|---|
date | Thu, 15 Jul 2010 07:08:37 +0900 |
parents | a959cdca5b62 |
children | 4684e849866c |
line wrap: on
line source
bomend = 0; bchar = []; function bcharClass() { this.x = 0; this.y = 0; this.no = 0; this.scale = 2.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 = 2.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++; } 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 CanvasMatrix4(); 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 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); }