Я делаю игру с Cocos2d-x v3.17.
Я хочу, чтобы игрок написал свой код на игровой сцене, затем он нажал Submit и игра его запустила.
Я думаю о том, чтобы сохранить их код в файле и вызвать из него функцию, поэтому я создаю 2 файла, например:
//PlayerCode.h
#pragma once
int PlayerFunction(int a, int b);
//PlayerCode.cpp
#include "PlayerCode.h"
int PlayerFunction(int a, int b){ return 0;}
И я запускаю игру.
В основной сцене, когда игрок нажимает Submit, я переписываю .cpp файл в зависимости от того, что они кодируют, предположим, он стал:
//PlayerCode.cpp
#include "PlayerCode.h"
int PlayerFunction(int a, int b){ return a+b;}
Затем запустите это, чтобы извинить код игрока
try{
int result = PlayerFunction(2,3);
CCLOG("%d",result);
}
catch (string somethingError){
CCLOG("%s",somethingError);
}
Но независимо от того, какой проигрыватель пишет, результат всегда равен 0. Даже если файл .cpp изменяется каждый раз, когда они нажимают Submit, программа просто запускает код из первого старого файла.
Вот и вся моя проблема, пожалуйста, помогите мне решить ее или помогите мне, если вы знаете другой способ сделать эту функцию.
Спасибо.