diff --git a/doc/doc_files/getgravity2d.html b/doc/doc_files/getgravity2d.html new file mode 100644 index 0000000..030e929 --- /dev/null +++ b/doc/doc_files/getgravity2d.html @@ -0,0 +1,20 @@ + + + + + + GetGravity2D [RCBasic Doc] + + + +

sub GetGravity2D(ByRef x, ByRef y)

+

+ Use this function for retrieving the global gravity vector. A sprite canvas layer must be open. +

+

Related: + SetGravity2D +

+

+ + + \ No newline at end of file diff --git a/doc/doc_files/opencanvasspritelayer.html b/doc/doc_files/opencanvasspritelayer.html index e214db4..eb20172 100644 --- a/doc/doc_files/opencanvasspritelayer.html +++ b/doc/doc_files/opencanvasspritelayer.html @@ -7,7 +7,7 @@ -

function OpenCanvasSpriteLayer(w, h, viewport_x, viewport_y, viewport_w, viewport_h)

+

function OpenCanvasSpriteLayer(viewport_x, viewport_y, viewport_w, viewport_h)

Returns a sprite layer. These canvases are used for rendering sprites with the integrated physics engine.

diff --git a/doc/doc_files/setgravity2d.html b/doc/doc_files/setgravity2d.html new file mode 100644 index 0000000..e231e64 --- /dev/null +++ b/doc/doc_files/setgravity2d.html @@ -0,0 +1,20 @@ + + + + + + SetGravity2D [RCBasic Doc] + + + +

sub SetGravity2D(x, y)

+

+ Use this function for setting the global gravity vector. A sprite canvas layer must be active. +

+

Related: + GetGravity2D +

+

+ + + \ No newline at end of file diff --git a/doc/files/getgravity2d.txt b/doc/files/getgravity2d.txt new file mode 100644 index 0000000..a181a73 --- /dev/null +++ b/doc/files/getgravity2d.txt @@ -0,0 +1,6 @@ +#title GetGravity2D [RCBasic Doc] +#header sub GetGravity2D(ByRef x, ByRef y) + +Use this function for retrieving the global gravity vector. A sprite canvas layer must be open. + +#ref SetGravity2D diff --git a/doc/files/opencanvasspritelayer.txt b/doc/files/opencanvasspritelayer.txt index 3635a7e..0ba5a75 100644 --- a/doc/files/opencanvasspritelayer.txt +++ b/doc/files/opencanvasspritelayer.txt @@ -1,5 +1,5 @@ #title OpenCanvasSpriteLayer [RCBasic Doc] -#header function OpenCanvasSpriteLayer(w, h, viewport_x, viewport_y, viewport_w, viewport_h) +#header function OpenCanvasSpriteLayer(viewport_x, viewport_y, viewport_w, viewport_h) Returns a sprite layer. These canvases are used for rendering sprites with the integrated physics engine. diff --git a/doc/files/setgravity2d.txt b/doc/files/setgravity2d.txt new file mode 100644 index 0000000..c3a667d --- /dev/null +++ b/doc/files/setgravity2d.txt @@ -0,0 +1,6 @@ +#title SetGravity2D [RCBasic Doc] +#header sub SetGravity2D(x, y) + +Use this function for setting the global gravity vector. A sprite canvas layer must be active. + +#ref GetGravity2D diff --git a/rcbasic_runtime/rc_spritelib.h b/rcbasic_runtime/rc_spritelib.h index 9a4a491..d24dfe7 100644 --- a/rcbasic_runtime/rc_spritelib.h +++ b/rcbasic_runtime/rc_spritelib.h @@ -787,6 +787,33 @@ bool rc_spriteIsVisible(int spr_id) return rc_sprite[spr_id].visible; } +void rc_setGravity2d(double x, double y) +{ + if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size()) + return; + + if(rc_canvas[rc_active_canvas].type != RC_CANVAS_TYPE_SPRITE) + return; + + b2Vec2 gravity(x, y); + rc_canvas[rc_active_canvas].physics2D.world->SetGravity(gravity); + +} + +void rc_getGravity2d(double* x, double* y) +{ + if(rc_active_canvas < 0 || rc_active_canvas >= rc_canvas.size()) + return; + + if(rc_canvas[rc_active_canvas].type != RC_CANVAS_TYPE_SPRITE) + return; + + *x = 0; + *y = 0; + + *x = rc_canvas[rc_active_canvas].physics2D.world->GetGravity().x; + *y = rc_canvas[rc_active_canvas].physics2D.world->GetGravity().y; +} //-----------------------------------PHYSICS----------------------------------------------------------------------------------