1
0
mirror of https://github.com/rzzzwilson/pymlac.git synced 2025-06-10 09:32:41 +00:00

Got 'Imlac' text moving around screen

This commit is contained in:
Ross Wilson
2022-07-16 17:27:00 +07:00
parent abece56694
commit e3d32891f0

View File

@@ -37,37 +37,110 @@ DLine Char_I[] = {{REL, OFF, 0, -6},
{REL, OFF, -1, 0},
{REL, ON, 2, 0},
};
int len_Char_I = (sizeof(Char_I) / sizeof(Char_I[0]));
DLine Char_m[] = {{REL, ON, 0, -3},
{REL, ON, 1, -1},
{REL, ON, 0, 1},
{REL, ON, 1, 1},
{REL, ON, 0, 1},
{REL, OFF, 0, -1},
{REL, ON, 1, -1},
{REL, ON, 1, 1},
{REL, ON, 0, 3},
};
int len_Char_m = (sizeof(Char_m) / sizeof(Char_m[0]));
int Magnification = 5;
DLine Char_l[] = {{REL, OFF, 1, 0},
{REL, ON, -1, -1},
{REL, ON, 0, -5},
};
int len_Char_l = (sizeof(Char_l) / sizeof(Char_l[0]));
DLine Char_a[] = {{REL, OFF, 0, -1},
{REL, ON, 0, -2},
{REL, ON, 1, -1},
{REL, ON, 2, 0},
{REL, ON, 1, 1},
{REL, ON, 0, 3},
{REL, OFF, -4, -1},
{REL, ON, 1, 1},
{REL, ON, 1, 0},
{REL, ON, 2, -2},
};
int len_Char_a = (sizeof(Char_a) / sizeof(Char_a[0]));
DLine Char_c[] = {{REL, OFF, 3, -1},
{REL, ON, -1, 1},
{REL, ON, -1, 0},
{REL, ON, -1, -1},
{REL, ON, 0, -2},
{REL, ON, 1, -1},
{REL, ON, 1, 0},
{REL, ON, 1, 1},
};
int len_Char_c = (sizeof(Char_c) / sizeof(Char_c[0]));
int Magnification = 4;
unsigned int
make_drawlist(void)
{
static int x_origin = 10;
static int y_origin = 45;
static int deltax = 2;
static int deltay = 1;
drawlist_end = 0;
DLine dline = {ABS, OFF, 100, 100};
memcpy(&drawlist[drawlist_end], &dline, sizeof(DLine));
DLine dline = {ABS, OFF, x_origin, y_origin};
memcpy(&drawlist[drawlist_end], &dline, sizeof(dline));
++drawlist_end;
memcpy(&drawlist[drawlist_end], Char_I, sizeof(Char_I));
drawlist_end += sizeof(Char_I);
drawlist_end += len_Char_I;
DLine dline2 = {ABS, OFF, 106, 100};
memcpy(&drawlist[drawlist_end], &dline2, sizeof(DLine));
DLine dline2 = {ABS, OFF, x_origin+4, y_origin};
memcpy(&drawlist[drawlist_end], &dline2, sizeof(dline2));
++drawlist_end;
memcpy(&drawlist[drawlist_end], Char_m, sizeof(Char_m));
drawlist_end += sizeof(Char_m);
drawlist_end += len_Char_m;
DLine dline3 = {ABS, OFF, x_origin+10, y_origin};
memcpy(&drawlist[drawlist_end], &dline3, sizeof(dline3));
++drawlist_end;
memcpy(&drawlist[drawlist_end], Char_l, sizeof(Char_l));
drawlist_end += len_Char_l;
DLine dline4 = {ABS, OFF, x_origin+13, y_origin};
memcpy(&drawlist[drawlist_end], &dline4, sizeof(dline4));
++drawlist_end;
memcpy(&drawlist[drawlist_end], Char_a, sizeof(Char_a));
drawlist_end += len_Char_a;
DLine dline5 = {ABS, OFF, x_origin+19, y_origin};
memcpy(&drawlist[drawlist_end], &dline5, sizeof(dline5));
++drawlist_end;
memcpy(&drawlist[drawlist_end], Char_c, sizeof(Char_c));
drawlist_end += len_Char_c;
// move origins
x_origin += deltax;
y_origin += deltay;
if (x_origin > 200 || x_origin < 10)
{
deltax = -deltax;
}
if (y_origin > 230 || y_origin < 10)
{
deltay = -deltay;
}
return drawlist_end;
}
@@ -152,7 +225,7 @@ main(int argc, char **argv)
{
drawlist_end = make_drawlist();
SDL_Delay(5);
SDL_Delay(30);
SDL_PollEvent(&event);
switch (event.type)
@@ -191,6 +264,7 @@ main(int argc, char **argv)
enum BEAM beam = drawlist[dindex].beam;
int dx = drawlist[dindex].dx * Magnification;
int dy = drawlist[dindex].dy * Magnification;
unsigned int new_x;
unsigned int new_y;
@@ -200,7 +274,9 @@ main(int argc, char **argv)
new_y = dy;
if (beam == ON)
SDL_RenderDrawLine(renderer, abs_x, abs_y, new_x + 1, new_y + 1);
{
SDL_RenderDrawLine(renderer, abs_x, abs_y, new_x, new_y);
}
}
else
{
@@ -208,7 +284,9 @@ main(int argc, char **argv)
new_y = abs_y + dy;
if (beam == ON)
SDL_RenderDrawLine(renderer, abs_x, abs_y, new_x + 1, new_y + 1);
{
SDL_RenderDrawLine(renderer, abs_x, abs_y, new_x, new_y);
}
}
abs_x = new_x;