Completely trash game but I might end my days soon so I push now

This commit is contained in:
Rohmer Maxime
2024-06-13 20:41:18 +02:00
parent e8a745860d
commit e6c9b8d272
11 changed files with 748 additions and 175 deletions
+24
View File
@@ -287,6 +287,29 @@ void Refresh_Area(Rectangle area){
}
}
}
void Refresh_Player_Area(Rectangle area,Rectangle Hitbox){
Sprite_32x32 sprite = ShipSprite1;
Resize_Window(area);
Write_Cmd(0x2C);
Color color;
for(int y= 0; y < area.Size.Height;y++){
auto_screen_roloff(area,(Point){0,y});
for(int x = 0; x < area.Size.Width+1;x++){
if(y + area.Position.Y >= Hitbox.Position.Y
&& y + area.Position.Y < Hitbox.Position.Y + Hitbox.Size.Height
&& x + area.Position.X >= Hitbox.Position.X
&& x + area.Position.X < Hitbox.Position.X + Hitbox.Size.Width){
Get_Color_From_Sprite(sprite,(Point){x-(Hitbox.Position.X - area.Position.X),y-(Hitbox.Position.Y-area.Position.Y)},&color);
SendPixel(color.Red,color.Green,color.Blue);
}else{
//Get_Color_From_Background((Point){area.Position.X+x,(area.Position.Y+y)%SCREEN_HEIGHT},&color);
//SendPixel(color.Red,color.Green,color.Blue);
SendPixel(0,0,0);
}
}
}
}
void DrawPlayer(Player player, Rectangle areaToDraw){
Sprite_32x32 sprite = ShipSprite1;
Color color;
@@ -307,6 +330,7 @@ void DrawPlayer(Player player, Rectangle areaToDraw){
}
}
}
void Draw_stars(){
Write_Cmd(0x2C);
for(int y = 0; y < SCREEN_HEIGHT;y++){
+33 -15
View File
@@ -11,6 +11,7 @@
#include "config_LPC1769.h"
#include <stdint.h>
#include <stdbool.h>
#include <math.h>
#include "GPIO.h"
#include "SPI.h"
@@ -108,9 +109,18 @@ Player CreatePlayer(){
return player;
}
int min(int x,int y){
if(x > y){
return y;
}else{
return x;
}
}
void RefreshPlayer(Point vector){
if(player.Hitbox.Position.Y + vector.Y < 0){
player.Hitbox.Position.Y = SCREEN_SIZE.Height + (player.Hitbox.Position.Y - (0-vector.Y));
//player.Hitbox.Position.Y = SCREEN_SIZE.Height + (player.Hitbox.Position.Y - (0-vector.Y));
player.Hitbox.Position.Y = player.Hitbox.Position.Y & SCREEN_SIZE.Height;
}else{
if(player.Hitbox.Position.Y + vector.Y >= SCREEN_SIZE.Height){
player.Hitbox.Position.Y = vector.Y - (SCREEN_SIZE.Height - player.Hitbox.Position.Y);
@@ -126,14 +136,24 @@ void RefreshPlayer(Point vector){
if(player.Hitbox.Position.X < 0)
player.Hitbox.Position.X = 0;
Size bigSize = {0,0};
bigSize.Width = player.Hitbox.Size.Width + abs(vector.X);
bigSize.Height = player.Hitbox.Size.Height + abs(vector.Y);
Rectangle rect = player.Hitbox;
rect.Position = (Point){0,0};
DrawPlayer(player,rect);
Refresh_Area(player.Hitbox);
Point bigPos = {0,0};
bigPos.X = min(player.Hitbox.Position.X, player.Hitbox.Position.X - vector.X);
bigPos.Y = min(player.Hitbox.Position.Y, player.Hitbox.Position.Y - vector.Y);
bigPos.Y = bigPos.Y % SCREEN_SIZE.Height;
Refresh_Player_Area((Rectangle){bigPos,bigSize},player.Hitbox);
//Rectangle rect = player.Hitbox;
//rect.Position = (Point){0,0};
//DrawPlayer(player,rect);
}
int main(void) {
init();
InitButtons();
InitTimer();
@@ -189,18 +209,16 @@ int main(void) {
momentum.X += vec.X;
momentum.Y += vec.Y;
if(momentum.X > 35)
momentum.X = 35;
if(momentum.X < -40)
momentum.X = -40;
if(momentum.X > 20)
momentum.X = 20;
if(momentum.X < -25)
momentum.X = -25;
if(momentum.Y > 35)
momentum.Y = 35;
if(momentum.Y < -35)
momentum.Y = -35;
if(momentum.Y > 20)
momentum.Y = 20;
if(momentum.Y < -20)
momentum.Y = -20;
RefreshPlayer(momentum);
}
}