- WASD - pohyb
- Q/E - rotace kamery
- pokud je připjená web kamera, tak se hráč otáčí podle pohybu hlavy
- R - interakce s objektem (otevření dveří)
- LMB - střelba
- ESC - ukončení programu
Tip
Klávesa F přepne do fly módu, kde hráč může volně létat po mapě a procházet objekty.
Na čisté instalaci doinstalujte ovladače:
sudo ubuntu-drivers autoinstallNote
Pokud používáte grafickou kartu NVIDIA (například 940MX), nastavte v kódu požadovanou verzi OpenGL na 4.5 nebo nižší:
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 5);Některé ovladače (zejména Mesa) mohou sice v glxinfo zobrazit vyšší verzi, ale nativní ovladač NVIDIA podporuje maximálně OpenGL 4.5.
Note
Pokud vidíte následující chybu při spuštění programu:
libdecor-gtk-WARNING: Failed to initialize GTK
Failed to load plugin 'libdecor-gtk.so': failed to init
No plugins found, falling back on no decorationsTak je čas opustit Wayland a přepnout se na X11. To lze provést v přihlašovací obrazovce, kde vyberete "Ubuntu on Xorg" místo "Ubuntu".
apt-dependencies.txt obsahuje seznam balíčků, které je potřeba nainstalovat pro správný chod programu.
libopencv-dev
libglfw3-dev
libglm-dev
libglew-dev
v4l-utilsPro instalaci závislostí spusťte následující příkaz:
./install.shTen také nainstaluje závsilosti C++ knihoven:
nlohmann-jsonPro instalaci závislostí spusťte následující příkaz:
./install.shsudo apt install -y libopencv-dev libglfw3-dev libglm-dev libglew-dev
mesa-utilsglxinfo | grep "OpenGL version"OpenGL version string: 4.6 (Compatibility Profile) Mesa 24.2.8-1ubuntu1~24.04.1
sudo apt-get install libxi-dev libxinerama-devexport __NV_PRIME_RENDER_OFFLOAD=1
export __GLX_VENDOR_LIBRARY_NAME=nvidiaJednorázové spuštění programu s NVIDIA grafikou:
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia ./ICP.out
export MESA_D3D12_DEFAULT_ADAPTER_NAME=NVIDIA
To add ImGUI to your project:
- Create new filter view: RMB on Solution explorer - project -> Add -> New filter
- imgui
- follow: Getting-Started
- add existing items to imgui filter
- add
$(ProjectDir)/imgui-masterto your Project properties -> VC++ directories -> Include directories - see: imgui_manual
Pro spuštění programu je potřeba zdrojoý kód zkompilovat a spustit.
make runLegenda pro tvorbu mapy:
' ' = empty
. = empty
// malá abeceda
a = barel 1
b = bead
c = corpse 1
d = killed enemy
e = normal enemy (guard)
f = flag
g = gold
h = health 1
i = health 2
j = health 3
k = key
l = life
m = munition
n
o = barel 2
p = player start
q
r = gun 1
s = gun 2
t = table 1
u = table 2
v
w
x
y = chandelier_1
z = chandelier_2
// velká abeceda
A
B = blue wall
C = corpse 4
D = door
E = hidden door
F
G
H = Hans
I = lamp
J
K = knight
L = stove
M = spears
N
O
P = pillar
Q
R
S = stone 1
T = stone 2
U = stone 3
V = wood 2
W = wood 1
X = end level (exit/elevator)
Y = wood 3
ZTextury a snipety kódu jsou převzaty z následujících zdrojů:
