- for (int i=0; i<PLAYGROUND_COLS; i++) \r
- for (int j=0; j<PLAYGROUND_ROWS; j++)\r
- switch(scheme->PlayField[j*PLAYGROUND_NUMFIELD_X+i]) {\r
+ for (int col=0; col<PLAYGROUND_COLS; col++) \r
+ {\r
+ for (int row=0; row<PLAYGROUND_ROWS; row++)\r
+ {\r
+ int subsprite = -1;\r
+ switch(scheme->PlayField[row*PLAYGROUND_NUMFIELD_X+col]) {\r
- //field[i][j] = new Item(foreground, 0, FIELD_UNIT_WIDTH, FIELD_UNIT_HEIGHT, i, j);\r
+ subsprite = SPR_SUB_BRICK;\r
- #ifdef WIN32\r
- field[i][j] = new Item(foreground, 1, FIELD_UNIT_WIDTH, FIELD_UNIT_HEIGHT, i, j);\r
- #endif // WIN32\r
+ subsprite = SPR_SUB_SOLID;\r
/*\r
// put in desctructible blocks with chance 90%\r
for (int i=0; i<PLAYGROUND_COLS; i+=2) \r
for (int j=0; j<PLAYGROUND_ROWS; ++j)\r
/*\r
// put in desctructible blocks with chance 90%\r
for (int i=0; i<PLAYGROUND_COLS; i+=2) \r
for (int j=0; j<PLAYGROUND_ROWS; ++j)\r
- if ((double)rand()/RAND_MAX <= 0.9) field[i][j] = new Item(foreground, 0, i, j);\r
+ if ((double)rand()/RAND_MAX <= 0.9) field[i][j] = new Tile(foreground, 0, i, j);\r
- if ((double)rand()/RAND_MAX <= 0.9) field[i][j] = new Item(foreground, 0, i, j);\r
+ if ((double)rand()/RAND_MAX <= 0.9) field[i][j] = new Tile(foreground, 0, i, j);\r
CMMPointer<Sprite> s = this->getKernel()->getSpriteManager()->getSprite(SPR_FIELD);\r
\r
s->blit(0, 0, 1.0, 1.0, 0, 0, COLOUR_RGBA(0, 0, 255, 255));\r
CMMPointer<Sprite> s = this->getKernel()->getSpriteManager()->getSprite(SPR_FIELD);\r
\r
s->blit(0, 0, 1.0, 1.0, 0, 0, COLOUR_RGBA(0, 0, 255, 255));\r
- #ifdef WIN32\r
- if(CInputTask::keyDown(DIK_ESCAPE))CKernel::GetSingleton().KillAllTasks();\r
-\r
- d3dspt->Begin(NULL); // begin sprite drawing\r
-\r
- // draw the sprite\r
- D3DXVECTOR3 center(0.0f, 0.0f, 0.0f); // center at the upper-left corner\r
- D3DXVECTOR3 position(0.0f, 0.0f, 0.0f); // position at 50, 50 with no depth\r
- d3dspt->Draw(background, NULL, NULL, NULL, D3DCOLOR_XRGB(255, 255, 255));\r
-\r
bomberman->Update();\r
if (CInputTask::keyDown(DIK_RIGHT)) this->move_right();\r
if (CInputTask::keyDown(DIK_LEFT)) this->move_left();\r
bomberman->Update();\r
if (CInputTask::keyDown(DIK_RIGHT)) this->move_right();\r
if (CInputTask::keyDown(DIK_LEFT)) this->move_left();\r
-#ifdef WIN32\r
-Item:: Item(LPDIRECT3DTEXTURE9 t, int texnr, int subwidth, int subheight, int colnr, int rownr)\r
+Tile::Tile(const CMMPointer<Sprite> &sprite, int subsprite, int col, int row)\r
+ this->sprite->blit(\r
+ PLAYGROUND_BORDER_LEFT + this->col * FIELD_UNIT_WIDTH,\r
+ PLAYGROUND_BORDER_TOP + this->row * FIELD_UNIT_HEIGHT,\r
+ 1.0, 1.0, this->subsprite, 0, COLOUR_RGBA(0, 0, 0, 255)\r
+ );\r
+#ifdef WIN32\r
D3DXVECTOR3 center(0.0f, 0.0f, 0.0f); // center at the upper-left corner\r
D3DXVECTOR3 position((FLOAT)PLAYGROUND_BORDER_LEFT+subitem_width*col, (FLOAT)PLAYGROUND_BORDER_TOP+subitem_height*row, 0.0f); // position at 50, 50 with no depth\r
RECT rect = {tex_num*subitem_width,0,(tex_num+1)*subitem_width,subitem_height};\r
d3dspt->Draw(texture, &rect, ¢er, &position, D3DCOLOR_ARGB(255, 255,255,255));\r
D3DXVECTOR3 center(0.0f, 0.0f, 0.0f); // center at the upper-left corner\r
D3DXVECTOR3 position((FLOAT)PLAYGROUND_BORDER_LEFT+subitem_width*col, (FLOAT)PLAYGROUND_BORDER_TOP+subitem_height*row, 0.0f); // position at 50, 50 with no depth\r
RECT rect = {tex_num*subitem_width,0,(tex_num+1)*subitem_width,subitem_height};\r
d3dspt->Draw(texture, &rect, ¢er, &position, D3DCOLOR_ARGB(255, 255,255,255));\r