#pragma once #include "Ground.h" #include "Surface.h" #include "Structs.h" Ground::Ground(Graphics & gfx, Logger & logger) noexcept { // Init 2 surfaces Surface *yueyueSurface = new Surface(); yueyueSurface->LoadImageFromFile(gfx.getDevice(), gfx.getContext(), "resource\\img\\yueyue.jpg"); UINT yueyueSlot = yueyueSurface->GetCurrSlot(); Surface *ethanSurface = new Surface(); ethanSurface->LoadImageFromFile(gfx.getDevice(), gfx.getContext(), "resource\\img\\Ethan.png"); UINT ethanSlot = ethanSurface->GetCurrSlot(); for (int i = 0; i < 2; i+=2 ) for (int j = 0; j < 2; j+= 2) { StructVertex vertices[24] = { // back surface // left top back { XMFLOAT3(-1.0f + i, 1.0f, -1.0f + j), XMFLOAT2(0.0f, 0.0f), yueyueSlot }, // right top back { XMFLOAT3(1.0f + i, 1.0f, -1.0f + j), XMFLOAT2(1.0f, 0.0f), yueyueSlot }, // left bottom back { XMFLOAT3(-1.0f + i, -1.0f, -1.0f + j), XMFLOAT2(0.0f, 1.0f), yueyueSlot }, // right bottom back { XMFLOAT3(1.0f + i, -1.0f, -1.0f + j), XMFLOAT2(1.0f, 1.0f), yueyueSlot }, // left surface // left top front { XMFLOAT3(-1.0f + i, 1.0f, 1.0f + j), XMFLOAT2(0.0f, 0.0f), ethanSlot }, // left top back { XMFLOAT3(-1.0f + i, 1.0f, -1.0f + j), XMFLOAT2(1.0f, 0.0f), ethanSlot }, // left bottom front { XMFLOAT3(-1.0f + i, -1.0f, 1.0f + j), XMFLOAT2(0.0f, 1.0f), ethanSlot }, // left bottom back { XMFLOAT3(-1.0f + i, -1.0f, -1.0f + j), XMFLOAT2(1.0f, 1.0f), ethanSlot }, // right surface // right top back { XMFLOAT3(1.0f + i, 1.0f, -1.0f + j), XMFLOAT2(0.0f, 0.0f), ethanSlot }, // right top front { XMFLOAT3(1.0f + i, 1.0f, 1.0f + j), XMFLOAT2(1.0f, 0.0f), ethanSlot }, // right bottom back { XMFLOAT3(1.0f + i, -1.0f, -1.0f + j), XMFLOAT2(0.0f, 1.0f), ethanSlot }, // right bottom front { XMFLOAT3(1.0f + i, -1.0f, 1.0f + j), XMFLOAT2(1.0f, 1.0f), ethanSlot }, // top surface // left top front { XMFLOAT3(-1.0f + i, 1.0f, 1.0f + j), XMFLOAT2(0.0f, 0.0f), yueyueSlot }, // right top front { XMFLOAT3(1.0f + i, 1.0f, 1.0f + j), XMFLOAT2(1.0f, 0.0f), yueyueSlot }, // left top back { XMFLOAT3(-1.0f + i, 1.0f, -1.0f + j), XMFLOAT2(0.0f, 1.0f), yueyueSlot }, // right top back { XMFLOAT3(1.0f + i, 1.0f, -1.0f + j), XMFLOAT2(1.0f, 1.0f), yueyueSlot }, // front surface // right top front { XMFLOAT3(1.0f + i, 1.0f, 1.0f + j), XMFLOAT2(0.0f, 0.0f), yueyueSlot }, // left top front { XMFLOAT3(-1.0f + i, 1.0f, 1.0f + j), XMFLOAT2(1.0f, 0.0f), yueyueSlot }, // right bottom front { XMFLOAT3(1.0f + i, -1.0f, 1.0f + j), XMFLOAT2(0.0f, 1.0f), yueyueSlot }, // left bottom front { XMFLOAT3(-1.0f + i, -1.0f, 1.0f + j), XMFLOAT2(1.0f, 1.0f), yueyueSlot }, // bottom surface // left bottom back { XMFLOAT3(-1.0f + i, -1.0f, -1.0f + j), XMFLOAT2(0.0f, 0.0f), ethanSlot }, // right bottom back { XMFLOAT3(1.0f + i, -1.0f, -1.0f + j), XMFLOAT2(1.0f, 0.0f), ethanSlot }, // left bottom front { XMFLOAT3(-1.0f + i, -1.0f, 1.0f + j), XMFLOAT2(0.0f, 1.0f), ethanSlot }, // right bottom front { XMFLOAT3(1.0f + i, -1.0f, 1.0f + j), XMFLOAT2(1.0f, 1.0f), ethanSlot }, }; shapes.push_back(std::make_unique(gfx, vertices, logger)); } // Init a 11 X 11 area as ground //for (int i = -5; i < 6; i++) //{ // for (int j = -5; j < 6; j++) // { // float boxPos[8][3] = // { // // left bottom back // { -1.0f + i, -1.0f, -1.0f + j }, // // right bottom back // { 1.0f + i, -1.0f, -1.0f + j }, // // left top back // { -1.0f + i, 1.0f, -1.0f + j }, // // right top back // { 1.0f + i, 1.0f, -1.0f + j }, // // left bottom front // { -1.0f + i, -1.0f, 1.0f + j }, // // right bottom front // { 1.0f + i, -1.0f, 1.0f + j }, // // left top front // { -1.0f + i, 1.0f, 1.0f + j }, // // right top front // { 1.0f + i, 1.0f, 1.0f + j }, // }; // float boxCol[6][3] = // { // { 0.0f, 1.0f, 0.0f }, // Green // { 1.0f, 1.0f, 0.0f }, // Yellow // { 1.0f, 0.0f, 0.0f }, // Red // { 0.0f, 0.0f, 1.0f }, // Blue // { 0.0f, 1.0f, 1.0f }, // Cyan // { 1.0f, 0.0f, 1.0f }, // Magenta // }; // shapes.push_back(std::make_unique(gfx, boxPos, boxCol, logger)); // } //} //float boxPos2[8][3] = //{ // // left bottom back // { -1.0f, -1.0f + 5.0f, -1.0f }, // // right bottom back // { 1.0f, -1.0f + 5.0f, -1.0f }, // // left top back // { -1.0f, 1.0f + 5.0f, -1.0f }, // // right top back // { 1.0f, 1.0f + 5.0f, -1.0f }, // // left bottom front // { -1.0f, -1.0f + 5.0f, 1.0f }, // // right bottom front // { 1.0f, -1.0f + 5.0f, 1.0f }, // // left top front // { -1.0f, 1.0f + 5.0f, 1.0f }, // // right top front // { 1.0f, 1.0f + 5.0f, 1.0f }, //}; //float boxCol2[6][3] = //{ // { 0.0f, 1.0f, 0.0f }, // Green // { 1.0f, 1.0f, 0.0f }, // Yellow // { 1.0f, 0.0f, 0.0f }, // Red // { 0.0f, 0.0f, 1.0f }, // Blue // { 0.0f, 1.0f, 1.0f }, // Cyan // { 1.0f, 0.0f, 1.0f }, // Magenta //}; //shapes.push_back(std::make_unique(gfx, boxPos2, boxCol2, logger)); //float boxPos3[8][3] = //{ // // left bottom back // { -1.0f, -1.0f - 5.0f, -1.0f }, // // right bottom back // { 1.0f, -1.0f - 5.0f, -1.0f }, // // left top back // { -1.0f, 1.0f - 5.0f, -1.0f }, // // right top back // { 1.0f, 1.0f - 5.0f, -1.0f }, // // left bottom front // { -1.0f, -1.0f - 5.0f, 1.0f }, // // right bottom front // { 1.0f, -1.0f - 5.0f, 1.0f }, // // left top front // { -1.0f, 1.0f - 5.0f, 1.0f }, // // right top front // { 1.0f, 1.0f - 5.0f, 1.0f }, //}; //float boxCol3[6][3] = //{ // { 0.0f, 1.0f, 0.0f }, // Green // { 1.0f, 1.0f, 0.0f }, // Yellow // { 1.0f, 0.0f, 0.0f }, // Red // { 0.0f, 0.0f, 1.0f }, // Blue // { 0.0f, 1.0f, 1.0f }, // Cyan // { 1.0f, 0.0f, 1.0f }, // Magenta //}; //shapes.push_back(std::make_unique(gfx, boxPos3, boxCol3, logger)); };