annotate webGL/dandy/resources/Player.js @ 6:881478004f18

update Bullet.js
author NOBUYASU Oshiro
date Mon, 21 Jun 2010 17:37:26 +0900
parents 7f615f5f5220
children 4343c1feedb5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
1 function Pad()
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
2 {
6
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
3 this.up=0;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
4 this.down=0;
4
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
5 this.right=0;
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
6 this.left=0;
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
7 this.count=0;
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
8 this.state=0;
6
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
9 this.k0=0;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
10 this.k1=0;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
11 this.k2=0;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
12 this.k3=0;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
13 this.k4=0;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
14 this.r2=0;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
15 this.r1=0;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
16 this.r2=0;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
17 this.l1=0;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
18 this.l2=0;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
19 this.l3=0;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
20 this.se=0;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
21 this.st=0;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
22
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
23 //勝手につけた
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
24 this.quit=0;
4
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
25 return this;
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
26 }
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
27
6
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
28 function makePlayer( object )
4
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
29 {
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
30 this.x = 0;
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
31 this.y = 0;
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
32 this.z = 10;
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
33 this.dx = 0;
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
34 this.dy = 0;
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
35 this.idle = object["player_idle"];
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
36 this.rightmove = object["player_rightmove"];
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
37 this.leftmove = object["player_leftmove"];
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
38 this.turntoright = object["player_turntoright"];
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
39 this.turntoleft = object["player_turntoleft"];
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
40 this.image = this.idle;
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
41 return this;
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
42 }
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
43 function movePlayer( player, pad )
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
44 {
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
45
6
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
46 pad.right = Math.min(pad.right, 0.7);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
47 pad.left = Math.min(pad.left, 0.7);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
48 pad.up = Math.min(pad.up, 0.7);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
49 pad.down = Math.min(pad.down, 0.7);
4
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
50
6
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
51 player.x -= pad.right;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
52 player.x += pad.left;
4
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
53 player.y += pad.up;
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
54 player.y -= pad.down;
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
55
6
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
56 player.x = Math.min(player.x, 100);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
57 player.x = Math.max(player.x, -100);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
58 player.y = Math.min(player.y, 70);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
59 player.y = Math.max(player.y, -70);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
60
4
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
61 if( pad.count == 1) pad.state=0;
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
62 if( pad.count > 0) pad.state=1;
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
63 if( pad.count > 10 ) pad.state=2;
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
64
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
65 if( pad.state == 0 ) player.image = player.idle;
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
66 if( pad.state == 1 ) {
6
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
67 if( pad.right > 0 ) player.image = player.turntoright;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
68 if( pad.left > 0 ) player.image = player.turntoleft;
4
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
69 }
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
70 if( pad.state == 2 ) {
6
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
71 if( pad.right > 0 ) player.image = player.rightmove;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
72 if( pad.left > 0 ) player.image = player.leftmove;
4
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
73 }
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
74
6
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
75
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
76
4
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
77
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
78 }
6
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
79
4
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
80 function drawPlayer(ctx, player, scale)
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
81 {
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
82 // setup VBOs
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
83 ctx.enableVertexAttribArray(0);
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
84 ctx.enableVertexAttribArray(1);
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
85 ctx.enableVertexAttribArray(2);
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
86
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
87 ctx.bindBuffer(ctx.ARRAY_BUFFER, player.image.vertexObject);
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
88 ctx.vertexAttribPointer(2, 3, ctx.FLOAT, false, 0, 0);
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
89
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
90 ctx.bindBuffer(ctx.ARRAY_BUFFER, player.image.normalObject);
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
91 ctx.vertexAttribPointer(0, 3, ctx.FLOAT, false, 0, 0);
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
92
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
93 ctx.bindBuffer(ctx.ARRAY_BUFFER, player.image.texCoordObject);
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
94 ctx.vertexAttribPointer(1, 2, ctx.FLOAT, false, 0, 0);
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
95
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
96 ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, player.image.indexObject);
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
97
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
98 // generate the model-view matrix
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
99 var mvMatrix = new CanvasMatrix4();
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
100 mvMatrix.scale(scale, scale, scale);
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
101 mvMatrix.rotate(180, 0,0,1);
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
102 mvMatrix.translate(player.x, player.y, player.z);
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
103
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
104 // construct the normal matrix from the model-view matrix
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
105 var normalMatrix = new CanvasMatrix4(mvMatrix);
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
106 normalMatrix.invert();
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
107 normalMatrix.transpose();
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
108 ctx.uniformMatrix4fv(ctx.getUniformLocation(ctx.program, "u_normalMatrix"), false, normalMatrix.getAsWebGLFloatArray());
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
109
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
110 // construct the model-view * projection matrix
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
111 var mvpMatrix = new CanvasMatrix4(mvMatrix);
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
112 mvpMatrix.multRight(ctx.perspectiveMatrix);
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
113 ctx.uniformMatrix4fv(ctx.getUniformLocation(ctx.program, "u_modelViewProjMatrix"), false, mvpMatrix.getAsWebGLFloatArray());
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
114
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
115 ctx.bindTexture(ctx.TEXTURE_2D, player.image.texture);
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
116 ctx.drawElements(ctx.TRIANGLES, player.image.numIndices, ctx.UNSIGNED_SHORT, 0);
7f615f5f5220 upload javascript file
NOBUYASU Oshiro
parents:
diff changeset
117 }
6
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
118
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
119
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
120 function Player(ctx, player, pad )
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
121 {
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
122 pad.right = Math.min(pad.right, 0.7);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
123 pad.left = Math.min(pad.left, 0.7);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
124 pad.up = Math.min(pad.up, 0.7);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
125 pad.down = Math.min(pad.down, 0.7);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
126
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
127 player.x -= pad.right;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
128 player.x += pad.left;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
129 player.y += pad.up;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
130 player.y -= pad.down;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
131
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
132 player.x = Math.min(player.x, 100);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
133 player.x = Math.max(player.x, -100);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
134 player.y = Math.min(player.y, 70);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
135 player.y = Math.max(player.y, -70);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
136
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
137 if( pad.count == 1) pad.state=0;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
138 if( pad.count > 0) pad.state=1;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
139 if( pad.count > 10 ) pad.state=2;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
140
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
141 if( pad.state == 0 ) player.image = player.idle;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
142 if( pad.state == 1 ) {
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
143 if( pad.right > 0 ) player.image = player.turntoright;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
144 if( pad.left > 0 ) player.image = player.turntoleft;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
145 }
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
146 if( pad.state == 2 ) {
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
147 if( pad.right > 0 ) player.image = player.rightmove;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
148 if( pad.left > 0 ) player.image = player.leftmove;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
149 }
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
150
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
151
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
152 drawPlayer(ctx, player, 1.2);//自機の描画(一先ずここでしておく)
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
153
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
154
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
155 //玉レベル1登録
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
156 if ((pad.k4 % 3 == 1) && (pad.k3 % 3 == 0)){
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
157 pad.k4 = 1;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
158
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
159 tama_lv1_end++;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
160
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
161 // if(tama_lv1_end > 19) tama_lv1_end = 0;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
162 var i = tama_lv1_end;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
163
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
164
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
165 var tama = new Tama1();
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
166 tama.x = player.x;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
167 tama.y = player.y;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
168 tama.r = 1;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
169 tama.l = 1;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
170 tama_lv1[i] = tama;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
171 }
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
172
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
173 //玉レベル1表示
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
174 for (i = 0; i < tama_lv1_end + 1; i++)
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
175 {
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
176 tama_lv1[i].y += 10;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
177
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
178 if (tama_lv1[i].r == 1) {
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
179 PutSpriteBullet(ctx, tama_lv1[i], bullets[1]);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
180 }
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
181 if (tama_lv1[i].y < -70) {
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
182 if(tama_lv1_end == i){
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
183 tama_lv1_end--;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
184 break;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
185 }
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
186 if(tama_lv1_end > i){
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
187 tama_lv1[i] = tama_lv1[tama_lv1_end];
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
188 tama_lv1_end--;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
189 break;
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
190 }
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
191
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
192 }
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
193
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
194 }
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
195
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
196 }
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
197
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
198
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
199 function PutSpriteBullet( ctx, tama, glObj)
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
200 {
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
201
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
202 // setup VBOs
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
203 ctx.enableVertexAttribArray(0);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
204 ctx.enableVertexAttribArray(1);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
205 ctx.enableVertexAttribArray(2);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
206
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
207 ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.vertexObject);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
208 ctx.vertexAttribPointer(2, 3, ctx.FLOAT, false, 0, 0);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
209 ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.normalObject);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
210 ctx.vertexAttribPointer(0, 3, ctx.FLOAT, false, 0, 0);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
211
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
212 ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.texCoordObject);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
213 ctx.vertexAttribPointer(1, 2, ctx.FLOAT, false, 0, 0);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
214
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
215 ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, glObj.indexObject);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
216
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
217 // generate the model-view matrix
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
218 var mvMatrix = new CanvasMatrix4();
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
219 mvMatrix.scale(1, 1, 1);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
220 mvMatrix.translate(0,0,0);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
221 mvMatrix.rotate(180, 0,0,1);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
222 mvMatrix.translate(tama.x,tama.y,10);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
223
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
224 // construct the normal matrix from the model-view matrix
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
225 var normalMatrix = new CanvasMatrix4(mvMatrix);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
226 normalMatrix.invert();
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
227 normalMatrix.transpose();
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
228 ctx.uniformMatrix4fv(ctx.getUniformLocation(ctx.program, "u_normalMatrix"), false, normalMatrix.getAsWebGLFloatArray());
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
229
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
230 // construct the model-view * projection matrix
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
231 var mvpMatrix = new CanvasMatrix4(mvMatrix);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
232 mvpMatrix.multRight(ctx.perspectiveMatrix);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
233 ctx.uniformMatrix4fv(ctx.getUniformLocation(ctx.program, "u_modelViewProjMatrix"), false, mvpMatrix.getAsWebGLFloatArray());
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
234
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
235 ctx.bindTexture(ctx.TEXTURE_2D, glObj.texture);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
236 ctx.drawElements(ctx.TRIANGLES, glObj.numIndices, ctx.UNSIGNED_SHORT, 0);
881478004f18 update Bullet.js
NOBUYASU Oshiro
parents: 4
diff changeset
237 }