now the movement of the player is working properly well and being calculated based on the speed of the player
This commit is contained in:
@@ -1,17 +1,15 @@
|
||||
// src/render/background.cpp
|
||||
|
||||
#include "background.h"
|
||||
#include "../assets/background_frame.h"
|
||||
#include <cstdio>
|
||||
#include <cstring>
|
||||
|
||||
void draw_mask(const char *unused_filename, int shift, const char *text) {
|
||||
const int view_width = 90;
|
||||
const int view_height = 16;
|
||||
|
||||
// Terminal clear + home
|
||||
printf("\033[2J\033[H");
|
||||
|
||||
for (int i = 0; i < view_height && i < VIEW_HEIGHT; i++) {
|
||||
for (int i = 0; i < VIEW_HEIGHT && i < VIEW_HEIGHT; i++) {
|
||||
const char *row = BACKGROUND_MASK[i];
|
||||
int width = strlen(row);
|
||||
if (width == 0) {
|
||||
@@ -21,7 +19,7 @@ void draw_mask(const char *unused_filename, int shift, const char *text) {
|
||||
|
||||
int start = shift % width;
|
||||
|
||||
for (int j = 0; j < view_width; j++) {
|
||||
for (int j = 0; j < VIEW_WIDTH; j++) {
|
||||
printf("%c", row[(start + j) % width]);
|
||||
}
|
||||
printf("\r\n");
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
// src/render/background.h
|
||||
|
||||
#pragma once
|
||||
constexpr int VIEW_WIDTH = 90;
|
||||
|
||||
// Draws the ASCII art background with optional message
|
||||
void draw_mask(const char *unused_filename, int shift, const char *text = nullptr);
|
||||
|
||||
@@ -10,12 +10,14 @@
|
||||
#include "../hardware/uart.h"
|
||||
#include "../render/player.h"
|
||||
#include "../timing/speed_controller.h"
|
||||
#include "../timing/movement_controller.h"
|
||||
|
||||
extern BufferedSerial serial_port;
|
||||
extern DigitalOut led;
|
||||
|
||||
// Constants
|
||||
constexpr int PLAYER_X = 9;
|
||||
// constexpr int PLAYER_X = 9;
|
||||
constexpr int PLAYER_X = 29;
|
||||
constexpr int PLAYER_Y = 6;
|
||||
|
||||
void draw_mask(const char *unused_filename, int shift, const char *text);
|
||||
@@ -24,6 +26,7 @@ void render_loop(int speed) {
|
||||
WalkingState player_state;
|
||||
AnimationController animation;
|
||||
UartReader uart(serial_port);
|
||||
MovementController mover(PLAYER_X, VIEW_WIDTH);
|
||||
SpeedController timing;
|
||||
timing.set_ground_speed(speed);
|
||||
|
||||
@@ -33,10 +36,14 @@ void render_loop(int speed) {
|
||||
bool need_redraw = false;
|
||||
|
||||
int tick_counter = 0;
|
||||
int player_speed = 4;
|
||||
int player_speed = 5;
|
||||
|
||||
while (true) {
|
||||
tick_counter++;
|
||||
|
||||
mover.update_position(player_speed, timing.get_ground_speed());
|
||||
pos.x = mover.get_position();
|
||||
|
||||
need_redraw = false;
|
||||
UartEvent uart_event = uart.poll();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user