From a8b0302e5c1a73bfb8d20fd6b066c3cadfcff45f Mon Sep 17 00:00:00 2001 From: electronstudio Date: Mon, 27 May 2019 17:04:42 +0100 Subject: [PATCH] fixes, co-ords demo --- coords_demo.py | 76 ++++++++++++++++++++++++++++++++++++++ raylib/richlib/__init__.py | 6 ++- setup.py | 2 +- 3 files changed, 81 insertions(+), 3 deletions(-) create mode 100644 coords_demo.py diff --git a/coords_demo.py b/coords_demo.py new file mode 100644 index 0000000..3427fc1 --- /dev/null +++ b/coords_demo.py @@ -0,0 +1,76 @@ +from raylib.richlib import * +from raylib.static.pyray import pyray + +WIDTH=1200 +HEIGHT=800 +CAMERA=pyray.CAMERA_FIRST_PERSON + + +player = Box((-5, 0, -5), (1, 1, 1), 'green', True) + + +o = Vector([-5,-0,-5]) + +td = False + + +def init(): + camera.position = (0.0, 4, 7) + camera.target = (100,100,-100) + camera.up = (0, 1, 0) + camera.fovy = 60 + #rl.UpdateCamera(camera) + pyray.set_camera_mode(camera[0], pyray.CAMERA_FIRST_PERSON) + #rl.UpdateCamera(camera) + +def update(): + if keyboard.right: + player.pos.x += 0.1 + elif keyboard.left: + player.pos.x -= 0.1 + elif keyboard.up: + player.pos.y += 0.1 + elif keyboard.down: + player.pos.y -= 0.1 + elif keyboard.l: + player.pos.z += 0.1 + elif keyboard.p: + player.pos.z-= 0.1 + + if pyray.is_key_pressed(pyray.KEY_Z): + global td + td = not td + + +def draw3d(): + if td: + #pyray.draw_plane((0, 0, 0), (300,300), DARKGREEN) + pyray.draw_grid(10, 1) + pyray.draw_plane((player.x, 0, player.z), (1,1), GRAY) + pyray.draw_ray([o,[0,0,1]],BLUE) + pyray.draw_ray([o,[0,1,0]],RED) + pyray.draw_ray([o,[1,0,0]],GREEN) + player.draw() + + +def draw2dbackground(): + clear('white') + origin = rl.GetWorldToScreen(o, camera[0]) + rl.DrawText(b"0", int(origin.x), int(origin.y), 20, BLACK) + for i in range (0,11): + xa = rl.GetWorldToScreen((o.x+i,o.y,o.z), camera[0]) + ya = rl.GetWorldToScreen((o.x,o.y+i,o.z), camera[0]) + za = rl.GetWorldToScreen((o.x,o.y,o.z+i), camera[0]) + pyray.draw_text(str(i), int(xa.x), int(xa.y), 20, GREEN) + pyray.draw_text(str(i), int(ya.x), int(ya.y), 20, RED) + if td: + pyray.draw_text(str(i), int(za.x), int(za.y), 20, BLUE) + + pyray.draw_text(f"X: {int(player.x+5)}", 10, 10, 30, GREEN) + pyray.draw_text(f"Y: {int(player.y)}", 10, 50, 30, RED) + if td: + pyray.draw_text(f"Z: {int(player.z+5)}", 10, 110, 30, BLUE) + + + +run() diff --git a/raylib/richlib/__init__.py b/raylib/richlib/__init__.py index f079291..ba97dac 100755 --- a/raylib/richlib/__init__.py +++ b/raylib/richlib/__init__.py @@ -2,7 +2,7 @@ """ __version__ = '0.1' -from ..static import ffi, rl, prl +from ..static import ffi, rl #from ..dynamic import ffi, raylib as rl from ..colors import * @@ -325,7 +325,7 @@ def run(): rl.SetTargetFPS(60) if hasattr(mod, "CAMERA"): - rl.SetCameraMode(camera, mod.CAMERA) + rl.SetCameraMode(camera[0], mod.CAMERA) if hasattr(mod, "init"): mod.init() @@ -339,6 +339,8 @@ def run(): if rl.IsKeyPressed(rl.KEY_ESCAPE): rl.Exit() rl.BeginDrawing() + if hasattr(mod, "draw2dbackground"): + mod.draw2dbackground() rl.BeginMode3D(camera[0]) if hasattr(mod, "draw3d"): mod.draw3d() diff --git a/setup.py b/setup.py index 7c60be9..9f8ea29 100644 --- a/setup.py +++ b/setup.py @@ -25,6 +25,6 @@ setup( ], packages=["raylib", "raylib.dynamic", "raylib.static"], include_package_data=True, - install_requires=["cffi"], + install_requires=["cffi","inflection"], #cffi_modules=["raylib/build_mac.py:ffibuilder"], # this would build libs whenever the module is installed, but we are distributing static libs instead )