我正在C#中编写游戏编辑器和游戏。有两个应用程序:游戏编辑器是一个Winforms / SFML混合体,游戏本身就是一个Windows应用程序,只需在SFML中使用一个非常标准的Program.cs运行一个简单的游戏循环。
在编辑器中,我希望能够启动游戏可执行文件以测试更改。优选地,效果类似于通过通常的多个启动项目方法从Visual Studio中启动两个应用程序。
现在,我猜这里有几个选项:
做这类事情的标准程序是什么?
编辑:我被要求解释这不是Attach debugger in C# to another process的副本我之前看过这个问题并且仍然发布,因为那个专注于一般调试任何应用程序。我在这里有更专业的东西因为我直接控制两个应用程序;此外,这里选择的方法不依赖于互操作,因为它有一些答案。
答案 0 :(得分:0)
以下是解决方案:
/* Get nearest weekend to the provided date
** @param {Date} date - date to get weekends nearst to
** @returns {Array} array of Dates [Saturday, Sunday]
*/
function getNearestWeekend(date) {
// Copy date so don't mess with provided date
var d = new Date(+date);
// If weekday, move d to next Saturday else to current weekend Saturday
if (d.getDay() % 6) {
d.setDate(d.getDate() + 6 - d.getDay());
} else {
d.setDate(d.getDate() - (d.getDay()? 0 : 1));
}
// Return array with Dates for Saturday, Sunday
return [new Date(d), new Date(d.setDate(d.getDate() + 1))]
}
// Some tests
[new Date(2017,0,7), // Sat 7 Jan
new Date(2017,0,8), // Sun 8 Jan
new Date(2017,0,9), // Mon 9 Jan
new Date(2017,0,12) // Thu 12 Jan
].forEach(function(d) {
var opts = {weekday:'short', day:'numeric', month:'short'};
console.log('Date: ' + d.toLocaleString('en-GB',opts) + ' | Next weekend: ' +
getNearestWeekend(d).map(d =>d.toLocaleString('en-GB',opts)).join(' and ')
);
});