Procházet zdrojové kódy

Debug data, text formatting print routines, gitignore.

Florian DORMONT před 10 roky
rodič
revize
d624a3f528
6 změnil soubory, kde provedl 52 přidání a 0 odebrání
  1. 2 0
      .gitignore
  2. 3 0
      include/Map.h
  3. 5 0
      include/Text.h
  4. 10 0
      src/Map.cpp
  5. 18 0
      src/Text.cpp
  6. 14 0
      src/main.cpp

+ 2 - 0
.gitignore

@@ -6,3 +6,5 @@ bin
 art/sprites.c
 art/sprites.h
 
+# Atom editor files
+.atom-build.json

+ 3 - 0
include/Map.h

@@ -22,6 +22,9 @@ namespace WalrusRPG
 			void render(Camera &camera, unsigned dt) const;
 			void update(unsigned dt);
 			bool entity_collide(Entity &entity) const;
+			unsigned get_width() const;
+			unsigned get_height() const;
+
 	};
 }
 

+ 5 - 0
include/Text.h

@@ -9,6 +9,11 @@ void print_char(char c, unsigned x, unsigned y);
 
 void print_string(const char *str, unsigned x, unsigned y);
 
+void print_string(const std::string &str, unsigned x, unsigned y);
+
+void print_format(unsigned x, unsigned y, const char* format, ...);
+
+void print_format(unsigned x, unsigned y, const std::string &format, ...);
 }}}
 
 

+ 10 - 0
src/Map.cpp

@@ -87,3 +87,13 @@ bool MAP::entity_collide(Entity &entity) const
 	UNUSED(entity);
 	return false;
 }
+
+unsigned MAP::get_width() const
+{
+	return this->width;
+}
+
+unsigned MAP::get_height() const
+{
+	return this->width;
+}

+ 18 - 0
src/Text.cpp

@@ -1,6 +1,8 @@
 #include "sprites.h"
 #include "Graphics.h"
 #include "Text.h"
+#include <cstdio>
+#include <cstdarg>
 #include <string>
 
 #define TEXT WalrusRPG::Graphics::Text
@@ -27,3 +29,19 @@ void TEXT::print_string(const char *str, unsigned x, unsigned y) {
     x +=8;
   }
 }
+
+void TEXT::print_string(const std::string &str, unsigned x, unsigned y) {
+  TEXT::print_string(str.c_str(), x, y);
+}
+
+void TEXT::print_format(unsigned x, unsigned y, const char *format, ...) {
+	char buffer[256] = "";
+	va_list args;
+	va_start(args, format);
+	vsnprintf(buffer, 256, format, args);
+	print_string(buffer, x, y);
+}
+
+void TEXT::print_format(unsigned x, unsigned y, const std::string &format, ...) {
+  TEXT::print_format(x, y, format.c_str());
+}

+ 14 - 0
src/main.cpp

@@ -1,3 +1,5 @@
+#include <cstdio>
+#include <cstdarg>
 #include <os.h>
 #include "timers.h"
 #include "Graphics.h"
@@ -11,6 +13,14 @@ using namespace WalrusRPG;
 using namespace WalrusRPG::Graphics;
 using namespace WalrusRPG::Graphics::Text;
 
+void print_debug_camera_data(const Camera &camera) {
+	print_format(0,8, "CAM : X : %d Y: %d", camera.get_x(), camera.get_y());
+}
+
+void print_debug_map_data(const Map &map) {
+	print_format(0,16, "MAP : W: %d, H:%d", map.get_width(), map.get_height());
+}
+
 void map_loop(unsigned x, unsigned y, Map &map)
 {
 	timer_mode(0, 0b0000010); // Free-running, no interrupts, divider = 1, 32 bit, wrapping
@@ -35,6 +45,10 @@ void map_loop(unsigned x, unsigned y, Map &map)
 			buffer_fill(pix);
 			map.render(camera, loop_next);
 			print_string("WalrusRPG test build \001", 0, 0);
+
+			print_debug_camera_data(camera);
+			print_debug_map_data(map);
+
 			lcd_vsync();
 			buffer_swap();
 		}