mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[python/turtle] Use a dedicated folder
This commit is contained in:
@@ -129,12 +129,12 @@ port_objs += $(addprefix python/port/,\
|
||||
port.o \
|
||||
builtins.o\
|
||||
helpers.o \
|
||||
modturtle.o \
|
||||
modturtle_impl.o \
|
||||
mod/kandinsky/modkandinsky.o \
|
||||
mod/kandinsky/modkandinsky_table.o \
|
||||
mod/time/modtime.o \
|
||||
mod/time/modtime_table.o \
|
||||
mod/turtle/modturtle.o \
|
||||
mod/turtle/modturtle_table.o \
|
||||
mphalport.o \
|
||||
)
|
||||
|
||||
@@ -165,7 +165,7 @@ $(py_objs): SFLAGS := $(subst -Os,-O0,$(SFLAGS))
|
||||
endif
|
||||
|
||||
# Icon dependency
|
||||
python/port/modturtle_impl.cpp: python/port/turtle_icon.o
|
||||
python/port/mod/turtle/modturtle.cpp: python/port/mod/turtle/turtle_icon.o
|
||||
|
||||
# QSTR generation
|
||||
|
||||
@@ -181,6 +181,6 @@ $(py_objs) $(extmod_objs) $(port_objs): python/port/genhdr/qstrdefs.generated.h
|
||||
|
||||
# List all objects needed
|
||||
|
||||
objs += $(extmod_objs) $(py_objs) $(port_objs) python/port/turtle_icon.o
|
||||
objs += $(extmod_objs) $(py_objs) $(port_objs) python/port/mod/turtle/turtle_icon.o
|
||||
|
||||
app_images += python/port/turtle_icon.png
|
||||
app_images += python/port/mod/turtle/turtle_icon.png
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
extern "C" {
|
||||
#include "modturtle.h"
|
||||
}
|
||||
#include "helpers.h"
|
||||
#include "../../helpers.h"
|
||||
#include <kandinsky.h>
|
||||
#include <ion.h>
|
||||
#include <math.h>
|
||||
@@ -91,27 +91,27 @@ void dot_turtle(float x, float y) {
|
||||
t_y = y;
|
||||
}
|
||||
|
||||
mp_obj_t turtle_forward(mp_obj_t px) {
|
||||
mp_obj_t modturtle_forward(mp_obj_t px) {
|
||||
float x = t_x + mp_obj_get_float(px)*sin(t_heading);
|
||||
float y = t_y + mp_obj_get_float(px)*cos(t_heading);
|
||||
turtle_moveto(x, y);
|
||||
modturtle_moveto(x, y);
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
mp_obj_t turtle_backward(mp_obj_t px) {
|
||||
return turtle_forward(mp_obj_new_float(-mp_obj_get_float(px)));
|
||||
mp_obj_t modturtle_backward(mp_obj_t px) {
|
||||
return modturtle_forward(mp_obj_new_float(-mp_obj_get_float(px)));
|
||||
}
|
||||
|
||||
mp_obj_t turtle_right(mp_obj_t angle) {
|
||||
return turtle_left(mp_obj_new_float(-mp_obj_get_float(angle)));
|
||||
mp_obj_t modturtle_right(mp_obj_t angle) {
|
||||
return modturtle_left(mp_obj_new_float(-mp_obj_get_float(angle)));
|
||||
}
|
||||
|
||||
mp_obj_t turtle_left(mp_obj_t angle) {
|
||||
mp_obj_t modturtle_left(mp_obj_t angle) {
|
||||
float new_angle = ((t_heading - t_heading_offset) + (mp_obj_get_float(angle) * t_heading_scale)) / t_heading_scale;
|
||||
return turtle_setheading(mp_obj_new_float(new_angle));
|
||||
return modturtle_setheading(mp_obj_new_float(new_angle));
|
||||
}
|
||||
|
||||
mp_obj_t turtle_goto(size_t n_args, const mp_obj_t *args) {
|
||||
mp_obj_t modturtle_goto(size_t n_args, const mp_obj_t *args) {
|
||||
float newx, newy;
|
||||
|
||||
if (n_args == 1) {
|
||||
@@ -125,11 +125,11 @@ mp_obj_t turtle_goto(size_t n_args, const mp_obj_t *args) {
|
||||
newy = mp_obj_get_float(args[1]);
|
||||
}
|
||||
|
||||
turtle_moveto(newx, newy);
|
||||
modturtle_moveto(newx, newy);
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
mp_obj_t turtle_setheading(mp_obj_t angle) {
|
||||
mp_obj_t modturtle_setheading(mp_obj_t angle) {
|
||||
micropython_port_should_interrupt();
|
||||
|
||||
t_heading = mp_obj_get_float(angle) * t_heading_scale + t_heading_offset;
|
||||
@@ -141,7 +141,7 @@ mp_obj_t turtle_setheading(mp_obj_t angle) {
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
mp_obj_t turtle_speed(mp_obj_t speed) {
|
||||
mp_obj_t modturtle_speed(mp_obj_t speed) {
|
||||
int new_speed = mp_obj_get_int(speed);
|
||||
|
||||
if (new_speed < 0) {
|
||||
@@ -155,28 +155,28 @@ mp_obj_t turtle_speed(mp_obj_t speed) {
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
mp_obj_t turtle_position() {
|
||||
mp_obj_t modturtle_position() {
|
||||
mp_obj_t mp_pos[2];
|
||||
mp_pos[0] = mp_obj_new_float(t_x);
|
||||
mp_pos[1] = mp_obj_new_float(t_y);
|
||||
return mp_obj_new_tuple(2, mp_pos);
|
||||
}
|
||||
|
||||
mp_obj_t turtle_heading() {
|
||||
mp_obj_t modturtle_heading() {
|
||||
return mp_obj_new_float((t_heading - t_heading_offset) / t_heading_scale);
|
||||
}
|
||||
|
||||
mp_obj_t turtle_pendown() {
|
||||
mp_obj_t modturtle_pendown() {
|
||||
t_penup = false;
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
mp_obj_t turtle_penup() {
|
||||
mp_obj_t modturtle_penup() {
|
||||
t_penup = true;
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
mp_obj_t turtle_pensize(size_t n_args, const mp_obj_t *args) {
|
||||
mp_obj_t modturtle_pensize(size_t n_args, const mp_obj_t *args) {
|
||||
if (n_args == 0) {
|
||||
return MP_OBJ_NEW_SMALL_INT(t_dotsize);
|
||||
}
|
||||
@@ -189,37 +189,37 @@ mp_obj_t turtle_pensize(size_t n_args, const mp_obj_t *args) {
|
||||
size = 10;
|
||||
}
|
||||
|
||||
turtle_initpen(size);
|
||||
modturtle_initpen(size);
|
||||
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
mp_obj_t turtle_isdown() {
|
||||
mp_obj_t modturtle_isdown() {
|
||||
return t_penup ? mp_const_false : mp_const_true;
|
||||
}
|
||||
|
||||
mp_obj_t turtle_color(mp_obj_t r, mp_obj_t g, mp_obj_t b) {
|
||||
mp_obj_t modturtle_color(mp_obj_t r, mp_obj_t g, mp_obj_t b) {
|
||||
t_color = KDColor::RGB888(mp_obj_get_int(r), mp_obj_get_int(g), mp_obj_get_int(b));
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
mp_obj_t turtle_showturtle() {
|
||||
mp_obj_t modturtle_showturtle() {
|
||||
t_hidden = false;
|
||||
draw_turtle();
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
mp_obj_t turtle_hideturtle() {
|
||||
mp_obj_t modturtle_hideturtle() {
|
||||
t_hidden = true;
|
||||
erase_turtle();
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
mp_obj_t turtle_isvisible() {
|
||||
mp_obj_t modturtle_isvisible() {
|
||||
return t_hidden ? mp_const_false : mp_const_true;
|
||||
}
|
||||
|
||||
mp_obj_t turtle___init__() {
|
||||
mp_obj_t modturtle___init__() {
|
||||
if (!t_underneath) {
|
||||
t_underneath = new KDColor[t_size * t_size];
|
||||
}
|
||||
@@ -242,12 +242,12 @@ mp_obj_t turtle___init__() {
|
||||
t_mileage = 0;
|
||||
t_hidden = false;
|
||||
|
||||
turtle_initpen(5);
|
||||
modturtle_initpen(5);
|
||||
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
void turtle_initpen(int size) {
|
||||
void modturtle_initpen(int size) {
|
||||
if (t_dot) {
|
||||
delete[] t_dot;
|
||||
}
|
||||
@@ -270,7 +270,7 @@ void turtle_initpen(int size) {
|
||||
}
|
||||
}
|
||||
|
||||
void turtle_moveto(float x, float y) {
|
||||
void modturtle_moveto(float x, float y) {
|
||||
float oldx = t_x, oldy = t_y;
|
||||
float length = sqrt((x - oldx) * (x - oldx) + (y - oldy) * (y - oldy));
|
||||
|
||||
@@ -293,7 +293,7 @@ void turtle_moveto(float x, float y) {
|
||||
draw_turtle();
|
||||
}
|
||||
|
||||
void turtle_deinit() {
|
||||
void modturtle_deinit() {
|
||||
delete[] t_underneath;
|
||||
t_underneath = nullptr;
|
||||
delete[] t_icon;
|
||||
29
python/port/mod/turtle/modturtle.h
Normal file
29
python/port/mod/turtle/modturtle.h
Normal file
@@ -0,0 +1,29 @@
|
||||
#include <py/obj.h>
|
||||
|
||||
mp_obj_t modturtle_forward(mp_obj_t px);
|
||||
mp_obj_t modturtle_backward(mp_obj_t px);
|
||||
mp_obj_t modturtle_right(mp_obj_t deg);
|
||||
mp_obj_t modturtle_left(mp_obj_t deg);
|
||||
mp_obj_t modturtle_goto(size_t n_args, const mp_obj_t *args);
|
||||
mp_obj_t modturtle_setheading(mp_obj_t deg);
|
||||
mp_obj_t modturtle_speed(mp_obj_t speed);
|
||||
|
||||
mp_obj_t modturtle_position();
|
||||
mp_obj_t modturtle_heading();
|
||||
|
||||
mp_obj_t modturtle_pendown();
|
||||
mp_obj_t modturtle_penup();
|
||||
mp_obj_t modturtle_isdown();
|
||||
mp_obj_t modturtle_pensize(size_t n_args, const mp_obj_t *args);
|
||||
mp_obj_t modturtle_isvisible();
|
||||
|
||||
mp_obj_t modturtle_color(mp_obj_t r, mp_obj_t g, mp_obj_t b);
|
||||
|
||||
mp_obj_t modturtle_showturtle();
|
||||
mp_obj_t modturtle_hideturtle();
|
||||
|
||||
mp_obj_t modturtle___init__();
|
||||
|
||||
void modturtle_initpen(int size);
|
||||
void modturtle_moveto(float x, float y);
|
||||
void modturtle_deinit();
|
||||
73
python/port/mod/turtle/modturtle_table.c
Normal file
73
python/port/mod/turtle/modturtle_table.c
Normal file
@@ -0,0 +1,73 @@
|
||||
#include "modturtle.h"
|
||||
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(modturtle_forward_obj, modturtle_forward);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(modturtle_backward_obj, modturtle_backward);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(modturtle_right_obj, modturtle_right);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(modturtle_left_obj, modturtle_left);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(modturtle_goto_obj, 1, 2, modturtle_goto);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(modturtle_setheading_obj, modturtle_setheading);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(modturtle_speed_obj, modturtle_speed);
|
||||
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(modturtle_position_obj, modturtle_position);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(modturtle_heading_obj, modturtle_heading);
|
||||
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(modturtle_pendown_obj, modturtle_pendown);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(modturtle_penup_obj, modturtle_penup);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(modturtle_isdown_obj, modturtle_isdown);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(modturtle_pensize_obj, 0, 1, modturtle_pensize);
|
||||
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_3(modturtle_color_obj, modturtle_color);
|
||||
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(modturtle_showturtle_obj, modturtle_showturtle);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(modturtle_hideturtle_obj, modturtle_hideturtle);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(modturtle_isvisible_obj, modturtle_isvisible);
|
||||
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(modturtle___init___obj, modturtle___init__);
|
||||
|
||||
STATIC const mp_rom_map_elem_t modturtle_module_globals_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_turtle) },
|
||||
{ MP_ROM_QSTR(MP_QSTR___init__), (mp_obj_t)&modturtle___init___obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_forward), (mp_obj_t)&modturtle_forward_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_fd), (mp_obj_t)&modturtle_forward_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_backward), (mp_obj_t)&modturtle_backward_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_bk), (mp_obj_t)&modturtle_backward_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_right), (mp_obj_t)&modturtle_right_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_rt), (mp_obj_t)&modturtle_right_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_left), (mp_obj_t)&modturtle_left_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_lt), (mp_obj_t)&modturtle_left_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_goto), (mp_obj_t)&modturtle_goto_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_setpos), (mp_obj_t)&modturtle_goto_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_setposition), (mp_obj_t)&modturtle_goto_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_setheading), (mp_obj_t)&modturtle_setheading_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_seth), (mp_obj_t)&modturtle_setheading_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_speed), (mp_obj_t)&modturtle_speed_obj },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_position), (mp_obj_t)&modturtle_position_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_pos), (mp_obj_t)&modturtle_position_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_heading), (mp_obj_t)&modturtle_heading_obj },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_pendown), (mp_obj_t)&modturtle_pendown_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_pd), (mp_obj_t)&modturtle_pendown_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_down), (mp_obj_t)&modturtle_pendown_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_penup), (mp_obj_t)&modturtle_penup_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_pu), (mp_obj_t)&modturtle_penup_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_up), (mp_obj_t)&modturtle_penup_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_isdown), (mp_obj_t)&modturtle_isdown_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_pensize), (mp_obj_t)&modturtle_pensize_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_width), (mp_obj_t)&modturtle_pensize_obj },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_pencolor), (mp_obj_t)&modturtle_color_obj },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_showturtle), (mp_obj_t)&modturtle_showturtle_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_st), (mp_obj_t)&modturtle_showturtle_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_hideturtle), (mp_obj_t)&modturtle_hideturtle_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ht), (mp_obj_t)&modturtle_hideturtle_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_isvisible), (mp_obj_t)&modturtle_isvisible_obj },
|
||||
};
|
||||
|
||||
STATIC MP_DEFINE_CONST_DICT(modturtle_module_globals, modturtle_module_globals_table);
|
||||
|
||||
const mp_obj_module_t modturtle_module = {
|
||||
.base = { &mp_type_module },
|
||||
.globals = (mp_obj_dict_t*)&modturtle_module_globals,
|
||||
};
|
||||
|
Before Width: | Height: | Size: 283 B After Width: | Height: | Size: 283 B |
@@ -1,75 +0,0 @@
|
||||
#include "py/obj.h"
|
||||
#include "py/mphal.h"
|
||||
#include "modturtle.h"
|
||||
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(turtle_forward_obj, turtle_forward);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(turtle_backward_obj, turtle_backward);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(turtle_right_obj, turtle_right);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(turtle_left_obj, turtle_left);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(turtle_goto_obj, 1, 2, turtle_goto);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(turtle_setheading_obj, turtle_setheading);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(turtle_speed_obj, turtle_speed);
|
||||
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(turtle_position_obj, turtle_position);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(turtle_heading_obj, turtle_heading);
|
||||
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(turtle_pendown_obj, turtle_pendown);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(turtle_penup_obj, turtle_penup);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(turtle_isdown_obj, turtle_isdown);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(turtle_pensize_obj, 0, 1, turtle_pensize);
|
||||
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_3(turtle_color_obj, turtle_color);
|
||||
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(turtle_showturtle_obj, turtle_showturtle);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(turtle_hideturtle_obj, turtle_hideturtle);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(turtle_isvisible_obj, turtle_isvisible);
|
||||
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(turtle___init___obj, turtle___init__);
|
||||
|
||||
STATIC const mp_rom_map_elem_t turtle_module_globals_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_turtle) },
|
||||
{ MP_ROM_QSTR(MP_QSTR___init__), (mp_obj_t)&turtle___init___obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_forward), (mp_obj_t)&turtle_forward_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_fd), (mp_obj_t)&turtle_forward_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_backward), (mp_obj_t)&turtle_backward_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_bk), (mp_obj_t)&turtle_backward_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_right), (mp_obj_t)&turtle_right_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_rt), (mp_obj_t)&turtle_right_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_left), (mp_obj_t)&turtle_left_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_lt), (mp_obj_t)&turtle_left_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_goto), (mp_obj_t)&turtle_goto_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_setpos), (mp_obj_t)&turtle_goto_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_setposition), (mp_obj_t)&turtle_goto_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_setheading), (mp_obj_t)&turtle_setheading_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_seth), (mp_obj_t)&turtle_setheading_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_speed), (mp_obj_t)&turtle_speed_obj },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_position), (mp_obj_t)&turtle_position_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_pos), (mp_obj_t)&turtle_position_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_heading), (mp_obj_t)&turtle_heading_obj },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_pendown), (mp_obj_t)&turtle_pendown_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_pd), (mp_obj_t)&turtle_pendown_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_down), (mp_obj_t)&turtle_pendown_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_penup), (mp_obj_t)&turtle_penup_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_pu), (mp_obj_t)&turtle_penup_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_up), (mp_obj_t)&turtle_penup_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_isdown), (mp_obj_t)&turtle_isdown_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_pensize), (mp_obj_t)&turtle_pensize_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_width), (mp_obj_t)&turtle_pensize_obj },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_pencolor), (mp_obj_t)&turtle_color_obj },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_showturtle), (mp_obj_t)&turtle_showturtle_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_st), (mp_obj_t)&turtle_showturtle_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_hideturtle), (mp_obj_t)&turtle_hideturtle_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ht), (mp_obj_t)&turtle_hideturtle_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_isvisible), (mp_obj_t)&turtle_isvisible_obj },
|
||||
};
|
||||
|
||||
STATIC MP_DEFINE_CONST_DICT(turtle_module_globals, turtle_module_globals_table);
|
||||
|
||||
const mp_obj_module_t turtle_module = {
|
||||
.base = { &mp_type_module },
|
||||
.globals = (mp_obj_dict_t*)&turtle_module_globals,
|
||||
};
|
||||
@@ -1,29 +0,0 @@
|
||||
#include "py/obj.h"
|
||||
|
||||
mp_obj_t turtle_forward(mp_obj_t px);
|
||||
mp_obj_t turtle_backward(mp_obj_t px);
|
||||
mp_obj_t turtle_right(mp_obj_t deg);
|
||||
mp_obj_t turtle_left(mp_obj_t deg);
|
||||
mp_obj_t turtle_goto(size_t n_args, const mp_obj_t *args);
|
||||
mp_obj_t turtle_setheading(mp_obj_t deg);
|
||||
mp_obj_t turtle_speed(mp_obj_t speed);
|
||||
|
||||
mp_obj_t turtle_position();
|
||||
mp_obj_t turtle_heading();
|
||||
|
||||
mp_obj_t turtle_pendown();
|
||||
mp_obj_t turtle_penup();
|
||||
mp_obj_t turtle_isdown();
|
||||
mp_obj_t turtle_pensize(size_t n_args, const mp_obj_t *args);
|
||||
mp_obj_t turtle_isvisible();
|
||||
|
||||
mp_obj_t turtle_color(mp_obj_t r, mp_obj_t g, mp_obj_t b);
|
||||
|
||||
mp_obj_t turtle_showturtle();
|
||||
mp_obj_t turtle_hideturtle();
|
||||
|
||||
mp_obj_t turtle___init__();
|
||||
|
||||
void turtle_initpen(int size);
|
||||
void turtle_moveto(float x, float y);
|
||||
void turtle_deinit();
|
||||
@@ -108,10 +108,10 @@ typedef long mp_off_t;
|
||||
|
||||
extern const struct _mp_obj_module_t modkandinsky_module;
|
||||
extern const struct _mp_obj_module_t modtime_module;
|
||||
extern const struct _mp_obj_module_t turtle_module;
|
||||
extern const struct _mp_obj_module_t modturtle_module;
|
||||
|
||||
#define MICROPY_PORT_BUILTIN_MODULES \
|
||||
{ MP_ROM_QSTR(MP_QSTR_kandinsky), MP_ROM_PTR(&modkandinsky_module) }, \
|
||||
{ MP_ROM_QSTR(MP_QSTR_time), MP_ROM_PTR(&modtime_module) }, \
|
||||
{ MP_ROM_QSTR(MP_QSTR_turtle), MP_ROM_PTR(&turtle_module) }, \
|
||||
{ MP_ROM_QSTR(MP_QSTR_turtle), MP_ROM_PTR(&modturtle_module) }, \
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ extern "C" {
|
||||
#include "py/repl.h"
|
||||
#include "py/runtime.h"
|
||||
#include "py/stackctrl.h"
|
||||
#include "modturtle.h"
|
||||
#include "mod/turtle/modturtle.h"
|
||||
#include "mphalport.h"
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ void MicroPython::init(void * heapStart, void * heapEnd) {
|
||||
}
|
||||
|
||||
void MicroPython::deinit() {
|
||||
turtle_deinit();
|
||||
modturtle_deinit();
|
||||
mp_deinit();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user