Add first person view.
This commit is contained in:
parent
2c06859473
commit
787b25239e
39
firstperson.cpp
Normal file
39
firstperson.cpp
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#include "firstperson.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include "maths.h"
|
||||||
|
|
||||||
|
static sf::RenderTexture renderTexture;
|
||||||
|
static sf::Vector2f renderTexturePosition;
|
||||||
|
|
||||||
|
static bool init = false;
|
||||||
|
static unsigned int width;
|
||||||
|
static unsigned int height;
|
||||||
|
|
||||||
|
int firstperson_init(unsigned int _width, unsigned int _height)
|
||||||
|
{
|
||||||
|
printf("firstperson_init()\n");
|
||||||
|
if (!renderTexture.create(_width, _height)) return 0;
|
||||||
|
width = _width;
|
||||||
|
height = _height;
|
||||||
|
init = true;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void firstperson_update(sf::RenderTarget* renderTarget)
|
||||||
|
{
|
||||||
|
renderTexture.clear();
|
||||||
|
sf::CircleShape shape(50);
|
||||||
|
renderTexture.draw(shape);
|
||||||
|
renderTexture.display();
|
||||||
|
|
||||||
|
sf::Sprite sprite(renderTexture.getTexture());
|
||||||
|
sprite.setPosition(renderTexturePosition);
|
||||||
|
renderTarget->draw(sprite);
|
||||||
|
}
|
||||||
|
|
||||||
|
void firstperson_setTexturePosition(float x, float y)
|
||||||
|
{
|
||||||
|
renderTexturePosition.x = x;
|
||||||
|
renderTexturePosition.y = y;
|
||||||
|
}
|
10
firstperson.h
Normal file
10
firstperson.h
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#ifndef FIRSTPERSON_H
|
||||||
|
#define FIRSTPERSON_H
|
||||||
|
|
||||||
|
#include <SFML/Graphics.hpp>
|
||||||
|
|
||||||
|
int firstperson_init(unsigned int width, unsigned int height);
|
||||||
|
void firstperson_update(sf::RenderTarget* renderTarget);
|
||||||
|
void firstperson_setTexturePosition(float x, float y);
|
||||||
|
|
||||||
|
#endif
|
4
view.cpp
4
view.cpp
@ -5,6 +5,7 @@
|
|||||||
#include "maths.h"
|
#include "maths.h"
|
||||||
#include "camera.h"
|
#include "camera.h"
|
||||||
#include "minimap.h"
|
#include "minimap.h"
|
||||||
|
#include "firstperson.h"
|
||||||
|
|
||||||
#define MINIMAP_SIZE 460
|
#define MINIMAP_SIZE 460
|
||||||
#define VIEW_SIZE MINIMAP_SIZE*2
|
#define VIEW_SIZE MINIMAP_SIZE*2
|
||||||
@ -22,8 +23,10 @@ int view_init()
|
|||||||
printf("view_init()\n");
|
printf("view_init()\n");
|
||||||
if (!camera_init(&camera, sf::Vector2f(5.f/2.f, 5.f/2.f), 0.f, 100, 0.5f*PI)) return 0;
|
if (!camera_init(&camera, sf::Vector2f(5.f/2.f, 5.f/2.f), 0.f, 100, 0.5f*PI)) return 0;
|
||||||
if (!minimap_init(MINIMAP_SIZE)) return 0;
|
if (!minimap_init(MINIMAP_SIZE)) return 0;
|
||||||
|
if (!firstperson_init(VIEW_SIZE, MINIMAP_SIZE)) return 0;
|
||||||
|
|
||||||
minimap_setTexturePosition(0.f, 0.f);
|
minimap_setTexturePosition(0.f, 0.f);
|
||||||
|
firstperson_setTexturePosition(MINIMAP_SIZE, 0.f);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -50,6 +53,7 @@ int view_update()
|
|||||||
|
|
||||||
window.clear();
|
window.clear();
|
||||||
minimap_update(&window, &camera);
|
minimap_update(&window, &camera);
|
||||||
|
firstperson_update(&window);
|
||||||
window.display();
|
window.display();
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user