Mercurial > hg > Members > kono > tree_dandy2
comparison sgoex.c @ 27:8b80f670cf1c
cordinate fix
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 14 Dec 2010 12:58:20 +0900 |
parents | 6a8cb917e0ad |
children | 3b92a4b17049 |
comparison
equal
deleted
inserted
replaced
26:6a8cb917e0ad | 27:8b80f670cf1c |
---|---|
55 | 55 |
56 /*------------------------------------------------------------- | 56 /*------------------------------------------------------------- |
57 関数プロトタイプ | 57 関数プロトタイプ |
58 ---------------------------------------------------------------*/ | 58 ---------------------------------------------------------------*/ |
59 | 59 |
60 void DefSpriteEx(int number, short middlex, short middley) | |
61 { | |
62 sptable[number].mx = middlex; | |
63 sptable[number].my = middley; | |
64 } | |
65 | |
66 | |
67 void SDL_GL_Enter2DMode() | 60 void SDL_GL_Enter2DMode() |
68 { | 61 { |
69 // SDL_Surface *sc = SDL_GetVideoSurface(); | 62 // SDL_Surface *sc = SDL_GetVideoSurface(); |
70 | 63 |
71 /* Note, there may be other things you need to change, | 64 /* Note, there may be other things you need to change, |
117 value <<= 1; | 110 value <<= 1; |
118 } | 111 } |
119 return value; | 112 return value; |
120 } | 113 } |
121 | 114 |
122 | 115 void |
123 void DefSprite(int number, const char *name, float w, float h, int color, OBJECT *obj) | 116 DefSpriteEx(int number, short middlex, short middley) |
117 { | |
118 sptable[number].mx = middlex; | |
119 sptable[number].my = middley; | |
120 } | |
121 | |
122 void | |
123 DefSprite(int number, const char *name, float w, float h, int color, OBJECT *obj) | |
124 { | 124 { |
125 SURFACE *surfaces; | 125 SURFACE *surfaces; |
126 surfaces = search_node(obj, name); | 126 surfaces = search_node(obj, name); |
127 if(surfaces == NULL) | 127 if(surfaces == NULL) |
128 { | 128 { |
140 sptable[number].tex_h = power_of_two(sptable[number].h); | 140 sptable[number].tex_h = power_of_two(sptable[number].h); |
141 texMinX[number] = 0.0f; | 141 texMinX[number] = 0.0f; |
142 texMinY[number] = 0.0f; | 142 texMinY[number] = 0.0f; |
143 texMaxX[number] = (GLfloat)sptable[number].w / sptable[number].tex_w; | 143 texMaxX[number] = (GLfloat)sptable[number].w / sptable[number].tex_w; |
144 texMaxY[number] = (GLfloat)sptable[number].h / sptable[number].tex_h; | 144 texMaxY[number] = (GLfloat)sptable[number].h / sptable[number].tex_h; |
145 printf("texMaxX = %f, w = %d, tex_w = %d\n", | 145 // printf("texMaxX = %f, w = %d, tex_w = %d\n", texMaxX[number], sptable[number].w, sptable[number].tex_w); |
146 texMaxX[number], sptable[number].w, sptable[number].tex_w); | |
147 sptable[number].texture = surfaces->texture; | 146 sptable[number].texture = surfaces->texture; |
148 } | 147 } |
149 | 148 |
150 void PutSprite(int zorder, short x, short y, int number) | 149 void |
150 PutSprite(int zorder, short x, short y, int number) | |
151 { | 151 { |
152 glBindTexture(GL_TEXTURE_2D, (GLuint&)sptable[number].texture); | 152 glBindTexture(GL_TEXTURE_2D, (GLuint&)sptable[number].texture); |
153 glEnable(GL_BLEND); | 153 glEnable(GL_BLEND); |
154 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 154 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); |
155 glBegin(GL_QUADS); | 155 glBegin(GL_QUADS); |
159 glTexCoord2f(texMaxX[number],texMinY[number]); glVertex2i((GLuint)(x+sptable[number].tex_w), (GLuint)y); | 159 glTexCoord2f(texMaxX[number],texMinY[number]); glVertex2i((GLuint)(x+sptable[number].tex_w), (GLuint)y); |
160 glEnd(); | 160 glEnd(); |
161 glDisable(GL_BLEND); | 161 glDisable(GL_BLEND); |
162 } | 162 } |
163 | 163 |
164 void PutSpriteEx(int number, int x, int y, float scalex, float scaley, float angle) | 164 void |
165 PutSpriteEx(int number, int x, int y, float scalex, float scaley, float angle) | |
165 { | 166 { |
166 SpriteTable *m = &sptable[number]; | 167 SpriteTable *m = &sptable[number]; |
167 x -= m->w; | 168 x -= m->w; |
168 y -= m->h; | 169 y -= m->h; |
169 | 170 |