所以,我已经看过其他关于类似问题的其他帖子,但没有一个解决方案有帮助.
我也在IntelliJ IDEA 15中进行此开发,而不是Visual Studio.我目前使用的是Typescript 2.0.3.
import { Injectable } from '@angular/core';
import { Effect, StateUpdates, toPayload } from '@ngrx/effects';
import { Subject } from 'rxjs/Subject';
import 'rxjs/add/operator/mergeMap';
import 'rxjs/add/observable/dom/webSocket'
import 'rxjs/add/operator/map';
import { AppState } from '../reducers';
import { NGRXWebSocketService } from '../shared/ngrxWebsocket.service';
import { BASE_URL } from "../shared/ngrxWebsocket.service";
export interface WebsocketMessage {
data: string
}
@Injectable()
export class WebsocketEffects {
constructor(private updates$:StateUpdates<AppState>,
private ngrxWebSocketService: NGRXWebSocketService) {
}
@Effect() _recieve$ = this.ngrxWebSocketService.getSubject()
.map((websocketUpdate: WebsocketMessage) => {
let message = …Run Code Online (Sandbox Code Playgroud) 我使用LuaBind在我的C++应用程序中嵌入了Lua.我需要有多个运行的变量,这些变量不能被运行相同文件名的其他对象访问.
例如:假设我有一个叫做的课程NPC.一个NPC拥有一个字符串,也就是它们运行的脚本的名称.NPC创建a 时,会创建一个名为的变量Health.当NPC被击中时,他们会失去5点健康.这些脚本在Lua中会是这样的:
local health = 10
function onHit()
health = health - 5
end
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是每个NPC运行此脚本的人都没有自己的健康实例.例如,假设我创建NPC A,并从其健康状况中减去5.然后,我创造NPC B.因为它将健康重置为10,如果我告诉NPC A打印健康,它会让我回到10,即使它应该是5.
如果我为每个对象都有一个不同的Lua实例,那么它会以这种方式工作,但在这种情况下我一次最终会有数百个实例,我理解这不是一件好事.
在Lua中有没有办法让变量像这样工作?如果没有,是否有一种脚本语言能够以有效的方式运行?
作为参考,这是我正在测试的代码:
LUA:
local health = 10;
function onHit()
health = health - 5
print_out(health)
end
Run Code Online (Sandbox Code Playgroud)
C++:
class NPC
{
public:
NPC(lua_State* inState);
void onHit();
const char* behavior;
lua_State* luaState;
};
NPC::NPC(lua_State* inState)
{
luaState = inState;
behavior = "testBehavior.lua";
luaL_dofile(luaState, behavior); …Run Code Online (Sandbox Code Playgroud) 我正在跨多个文件定义命名空间.在一个文件中,在命名空间内我声明了一个名为MyType的类型.在另一个文件中,仍然在命名空间内,我不应该看到该类型,而不必包含头文件?以下是一个例子:
FILE A
namespace EE
{
typedef int MyType;
}
FILE B
namespace EE
{
MyType a = 10;
}
Run Code Online (Sandbox Code Playgroud)
同样,根据我的理解,命名空间有助于清理包含.如果我定义了一个30个文件将使用的类型,如果我使用命名空间,我不应该在所有这些文件中包含标题,或者我认为.