|
| 1 | +from raylib.richlib import * |
| 2 | +from raylib.static.pyray import pyray |
| 3 | + |
| 4 | +WIDTH=1200 |
| 5 | +HEIGHT=800 |
| 6 | +CAMERA=pyray.CAMERA_FIRST_PERSON |
| 7 | + |
| 8 | + |
| 9 | +player = Box((-5, 0, -5), (1, 1, 1), 'green', True) |
| 10 | + |
| 11 | + |
| 12 | +o = Vector([-5,-0,-5]) |
| 13 | + |
| 14 | +td = False |
| 15 | + |
| 16 | + |
| 17 | +def init(): |
| 18 | + camera.position = (0.0, 4, 7) |
| 19 | + camera.target = (100,100,-100) |
| 20 | + camera.up = (0, 1, 0) |
| 21 | + camera.fovy = 60 |
| 22 | + #rl.UpdateCamera(camera) |
| 23 | + pyray.set_camera_mode(camera[0], pyray.CAMERA_FIRST_PERSON) |
| 24 | + #rl.UpdateCamera(camera) |
| 25 | + |
| 26 | +def update(): |
| 27 | + if keyboard.right: |
| 28 | + player.pos.x += 0.1 |
| 29 | + elif keyboard.left: |
| 30 | + player.pos.x -= 0.1 |
| 31 | + elif keyboard.up: |
| 32 | + player.pos.y += 0.1 |
| 33 | + elif keyboard.down: |
| 34 | + player.pos.y -= 0.1 |
| 35 | + elif keyboard.l: |
| 36 | + player.pos.z += 0.1 |
| 37 | + elif keyboard.p: |
| 38 | + player.pos.z-= 0.1 |
| 39 | + |
| 40 | + if pyray.is_key_pressed(pyray.KEY_Z): |
| 41 | + global td |
| 42 | + td = not td |
| 43 | + |
| 44 | + |
| 45 | +def draw3d(): |
| 46 | + if td: |
| 47 | + #pyray.draw_plane((0, 0, 0), (300,300), DARKGREEN) |
| 48 | + pyray.draw_grid(10, 1) |
| 49 | + pyray.draw_plane((player.x, 0, player.z), (1,1), GRAY) |
| 50 | + pyray.draw_ray([o,[0,0,1]],BLUE) |
| 51 | + pyray.draw_ray([o,[0,1,0]],RED) |
| 52 | + pyray.draw_ray([o,[1,0,0]],GREEN) |
| 53 | + player.draw() |
| 54 | + |
| 55 | + |
| 56 | +def draw2dbackground(): |
| 57 | + clear('white') |
| 58 | + origin = rl.GetWorldToScreen(o, camera[0]) |
| 59 | + rl.DrawText(b"0", int(origin.x), int(origin.y), 20, BLACK) |
| 60 | + for i in range (0,11): |
| 61 | + xa = rl.GetWorldToScreen((o.x+i,o.y,o.z), camera[0]) |
| 62 | + ya = rl.GetWorldToScreen((o.x,o.y+i,o.z), camera[0]) |
| 63 | + za = rl.GetWorldToScreen((o.x,o.y,o.z+i), camera[0]) |
| 64 | + pyray.draw_text(str(i), int(xa.x), int(xa.y), 20, GREEN) |
| 65 | + pyray.draw_text(str(i), int(ya.x), int(ya.y), 20, RED) |
| 66 | + if td: |
| 67 | + pyray.draw_text(str(i), int(za.x), int(za.y), 20, BLUE) |
| 68 | + |
| 69 | + pyray.draw_text(f"X: {int(player.x+5)}", 10, 10, 30, GREEN) |
| 70 | + pyray.draw_text(f"Y: {int(player.y)}", 10, 50, 30, RED) |
| 71 | + if td: |
| 72 | + pyray.draw_text(f"Z: {int(player.z+5)}", 10, 110, 30, BLUE) |
| 73 | + |
| 74 | + |
| 75 | + |
| 76 | +run() |
0 commit comments