Raycaster now controls the sprite locations with SpatialMap rather than the old way. Quick hack job in main.cpp that shows how they can move too.
This commit is contained in:
parent
a67d25ee10
commit
cbf0955786
11 changed files with 93 additions and 65 deletions
14
main.cpp
14
main.cpp
|
@ -53,14 +53,16 @@ int main() {
|
|||
TexturePack textures;
|
||||
textures.load_tiles();
|
||||
textures.load_sprites();
|
||||
textures.position_sprite(4.0, 3.55, "evil_eye");
|
||||
|
||||
auto map = generate_map(textures, cur_level, player);
|
||||
|
||||
Point evil_eye_pos{player.x+1, player.y+1};
|
||||
|
||||
Raycaster rayview(window, textures, map, RAY_VIEW_WIDTH, RAY_VIEW_HEIGHT);
|
||||
rayview.set_position(RAY_VIEW_X, RAY_VIEW_Y);
|
||||
rayview.position_camera(player.x, player.y);
|
||||
rayview.init_shaders();
|
||||
DinkyECS::Entity evil_ent = rayview.position_sprite(evil_eye_pos, "evil_eye");
|
||||
|
||||
double moveSpeed = 0.1;
|
||||
double rotSpeed = 0.1;
|
||||
|
@ -76,6 +78,9 @@ int main() {
|
|||
window.setVerticalSyncEnabled(VSYNC);
|
||||
window.setFramerateLimit(FRAME_LIMIT);
|
||||
|
||||
double new_x = evil_eye_pos.x+0.1;
|
||||
double new_y = evil_eye_pos.y+0.1;
|
||||
|
||||
while(window.isOpen()) {
|
||||
auto start = std::chrono::high_resolution_clock::now();
|
||||
rayview.render();
|
||||
|
@ -113,6 +118,13 @@ int main() {
|
|||
}
|
||||
|
||||
if(sf::Mouse::isButtonPressed(sf::Mouse::Button::Left)) {
|
||||
new_x += 0.1;
|
||||
new_y += 0.1;
|
||||
rayview.$collision.move(evil_eye_pos, {size_t(new_x), size_t(new_y)}, evil_ent);
|
||||
evil_eye_pos = {size_t(new_x), size_t(new_y)};
|
||||
rayview.$sprites[evil_ent].x = new_x;
|
||||
rayview.$sprites[evil_ent].y = new_y;
|
||||
|
||||
rayview.$anim.play(false);
|
||||
rotation = -30.0f;
|
||||
} else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue