basic level display blblblblbl
This commit is contained in:
parent
e8a624a9e9
commit
0abeeaa835
|
@ -10,7 +10,8 @@ find_package(LibProf 2.1 REQUIRED)
|
|||
|
||||
set(SOURCES
|
||||
src/main.cpp
|
||||
src/generator.cpp)
|
||||
src/generator.cpp
|
||||
src/level.cpp)
|
||||
set(ASSETS)
|
||||
|
||||
fxconv_declare_assets(${ASSETS} WITH_METADATA)
|
||||
|
|
20
src/bosonx.h
20
src/bosonx.h
|
@ -2,6 +2,7 @@
|
|||
# define __BOSONX__
|
||||
|
||||
#include <vector>
|
||||
#include <memory>
|
||||
|
||||
#ifndef PLATFORM_COUNT
|
||||
# define PLATFORM_COUNT 10
|
||||
|
@ -25,12 +26,9 @@ struct section {
|
|||
//...
|
||||
};
|
||||
|
||||
typedef struct level {
|
||||
std::vector<struct section> section_buffer;
|
||||
// ...
|
||||
} level_t ;
|
||||
|
||||
|
||||
struct level;
|
||||
typedef struct level level_t;
|
||||
|
||||
struct generator
|
||||
{
|
||||
|
@ -48,4 +46,16 @@ struct gen1 : public generator
|
|||
};
|
||||
|
||||
|
||||
struct level {
|
||||
std::vector<struct section> section_buffer;
|
||||
std::unique_ptr<struct generator> gen;
|
||||
};
|
||||
|
||||
|
||||
|
||||
extern void level_update(level_t *level);
|
||||
extern level_t level_create(int level);
|
||||
extern void level_display(level_t *level);
|
||||
extern void level_advance(level_t *level);
|
||||
|
||||
#endif /* __BOSONX__ */
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
#include "bosonx.h"
|
||||
#include <gint/display.h>
|
||||
|
||||
level_t level_create(int level)
|
||||
{
|
||||
level_t l;
|
||||
|
||||
switch(level) {
|
||||
default:
|
||||
l.gen = std::make_unique<struct gen1>();
|
||||
}
|
||||
return l;
|
||||
}
|
||||
|
||||
void level_update(level_t *level)
|
||||
{
|
||||
while (level->section_buffer.size() < 5) {
|
||||
level->gen->generate(level);
|
||||
}
|
||||
}
|
||||
|
||||
void level_advance(level_t *level)
|
||||
{
|
||||
level->section_buffer.erase(level->section_buffer.begin());
|
||||
}
|
||||
|
||||
void level_display(level_t *level)
|
||||
{
|
||||
int w;
|
||||
int h;
|
||||
int sx;
|
||||
int sy;
|
||||
|
||||
dsize("@", NULL, &w, &h);
|
||||
|
||||
sx = (DWIDTH - (PLATFORM_COUNT * w)) / 2;
|
||||
sy = (DHEIGHT - (PLATFORM_COUNT * h)) / 2;
|
||||
|
||||
for (int i = 4; i >= 0; --i) {
|
||||
for (int j = 0; j < PLATFORM_COUNT; ++j) {
|
||||
if (level->section_buffer[i].platforms[j].type != PLATFORM_EMPTY)
|
||||
dtext(sx + (w * j), sy + (h * i), C_BLACK, "@");
|
||||
}
|
||||
}
|
||||
}
|
29
src/main.cpp
29
src/main.cpp
|
@ -1,10 +1,36 @@
|
|||
#include "bosonx.h"
|
||||
#include <gint/keyboard.h>
|
||||
#include <gint/display.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
level_t level = level_create(1);
|
||||
|
||||
while (1) {
|
||||
level_update(&level);
|
||||
|
||||
//TODO: display
|
||||
dclear(C_WHITE);
|
||||
level_display(&level);
|
||||
dupdate();
|
||||
|
||||
clearevents();
|
||||
if(keydown(KEY_EXIT) || keydown(KEY_MENU)) break;
|
||||
if(keydown(KEY_EXE)) {
|
||||
level_advance(&level);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if 0
|
||||
#include <gint/display.h>
|
||||
#include <gint/keyboard.h>
|
||||
#include <gint/timer.h>
|
||||
#include <azur/gint/render.h>
|
||||
#include <gint/drivers/r61524.h>
|
||||
#include <math.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
azrp_config_scale(1);
|
||||
|
@ -45,3 +71,4 @@ int main(void)
|
|||
timer_stop(timer);
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue