feat: Grid camera defaults to tile (0,0) at top-left + center_camera() method (#169)
Changes: - Default Grid center now positions tile (0,0) at widget's top-left corner - Added center_camera() method to center grid's middle tile at view center - Added center_camera((tile_x, tile_y)) to position tile at top-left of widget - Uses NaN as sentinel to detect if user provided center values in kwargs - Animation-compatible: center_camera() just sets center property, no special state Behavior: - center_camera() → grid's center tile at view center - center_camera((0, 0)) → tile (0,0) at top-left corner - center_camera((5, 10)) → tile (5,10) at top-left corner Before: Grid(size=(320,240)) showed 3/4 of content off-screen (center=0,0) After: Grid(size=(320,240)) shows tile (0,0) at top-left (center=160,120) Closes #169 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
05f28ef7cd
commit
f62362032e
2 changed files with 106 additions and 3 deletions
|
|
@ -170,6 +170,12 @@ public:
|
|||
static PyObject* py_get_dijkstra_path(PyUIGridObject* self, PyObject* args);
|
||||
static PyObject* py_compute_astar_path(PyUIGridObject* self, PyObject* args, PyObject* kwds);
|
||||
static PyObject* py_entities_in_radius(PyUIGridObject* self, PyObject* args, PyObject* kwds); // #115
|
||||
static PyObject* py_center_camera(PyUIGridObject* self, PyObject* args); // #169
|
||||
|
||||
// #169 - Camera positioning
|
||||
void center_camera(); // Center on grid's middle tile
|
||||
void center_camera(float tile_x, float tile_y); // Center on specific tile
|
||||
|
||||
static PyMethodDef methods[];
|
||||
static PyGetSetDef getsetters[];
|
||||
static PyObject* get_entities(PyUIGridObject* self, void* closure);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue