private void bindInput()
{
uiCanvas.DomCanvas.MouseDown(canvasOnClick);
uiCanvas.DomCanvas.MouseUp(canvasMouseUp);
uiCanvas.DomCanvas.MouseMove(canvasMouseMove);
uiCanvas.DomCanvas.Bind("touchstart", canvasOnClick);
uiCanvas.DomCanvas.Bind("touchend", canvasMouseUp);
uiCanvas.DomCanvas.Bind("touchmove", canvasMouseMove);
uiCanvas.DomCanvas.Bind("DOMMouseScroll", handleScroll);
uiCanvas.DomCanvas.Bind("mousewheel", handleScroll);
uiCanvas.DomCanvas.Bind("contextmenu", (e) => e.PreventDefault());
bool dontPress = false;
Document.AddEventListener("keypress",
e =>
{
//if (sonicManager.CurrentGameState == GameState.Editing)
dontPress = sonicManager.UIManager.OnKeyDown(e);
},
true);
Document.AddEventListener("keyup",
e => {
//if (sonicManager.CurrentGameState == GameState.Editing)
dontPress = false;
},
true);
Document.AddEventListener("onkeydown",
e => {
//if (sonicManager.CurrentGameState == GameState.Editing)
dontPress = sonicManager.UIManager.OnKeyDown(e);
},
true);
Document.AddEventListener("onkeyup",
e => {
//if (sonicManager.CurrentGameState == GameState.Editing)
dontPress = false;
},
true);
/*
jQuery.Document.Keydown(e =>
{
//if (sonicManager.CurrentGameState == GameState.Editing)
dontPress = sonicManager.UIManager.OnKeyDown(e);
});
jQuery.Document.Keyup(e =>
{
dontPress = false;
});
*/
KeyboardJS.Instance().Bind.Key("f",
() => {
if (dontPress) return;
sonicManager.ShowHeightMap = !sonicManager.ShowHeightMap;
},
() => { });
KeyboardJS.Instance().Bind.Key("o",
() =>
{
if (dontPress) return;
if (sonicManager.CurrentGameState == GameState.Playing)
sonicManager.InHaltMode = !sonicManager.InHaltMode;
},
() => { });
KeyboardJS.Instance().Bind.Key("j",
() => {
sonicManager.ReplaceMagic();
},
() => { });
client = SocketIOClient.Connect("127.0.0.1:8998");
client.On<DataObject<string>>("SonicLevel",
data => { Help.DecodeString<SLData>(data.Data, RunSonic); });
client.On<DataObject<KeyValuePair<string, string>[]>>("GetObjects.Response", data => { sonicManager.loadObjects(data.Data); }
);
KeyboardJS.Instance().Bind.Key("2",
() => {
if (dontPress) return;
client.Emit("GetSonicLevel", "0");
},
() => { });
KeyboardJS.Instance().Bind.Key("1",
() => {
if (dontPress) return;
sonicManager.IndexedPalette++;
sonicManager.ClearCache();
},
() => { });
KeyboardJS.Instance().Bind.Key("q",
() =>
{
runGame();
},
() => { });
KeyboardJS.Instance().Bind.Key("z",
() =>
{
Extensions.DOES ++;
},
() => { });
KeyboardJS.Instance().Bind.Key("p",
() => {
if (dontPress) return;
if (sonicManager.CurrentGameState == GameState.Playing)
if (sonicManager.InHaltMode) sonicManager.waitingForTickContinue = false;
},
() => { });
KeyboardJS.Instance().Bind.Key("h",
() => {
if (dontPress) return;
if (sonicManager.CurrentGameState == GameState.Playing)
sonicManager.SonicToon.Hit(sonicManager.SonicToon.X, sonicManager.SonicToon.Y);
},
() => { });
KeyboardJS.Instance().Bind.Key("u",
() => {
WideScreen = !WideScreen;
resizeCanvas(true);
},
() => { });
KeyboardJS.Instance().Bind.Key("c",
() => {
if (dontPress) return;
if (sonicManager.CurrentGameState == GameState.Playing)
sonicManager.SonicToon.Debug();
},
() => { });
KeyboardJS.Instance().Bind.Key("up",
() => {
if (dontPress) return;
switch (sonicManager.CurrentGameState) {
case GameState.Playing:
sonicManager.SonicToon.PressUp();
break;
case GameState.Editing:
sonicManager.WindowLocation.Y -= 128;
sonicManager.BigWindowLocation.Y -= 128;
break;
}
},
() => {
switch (sonicManager.CurrentGameState) {
case GameState.Playing:
sonicManager.SonicToon.ReleaseUp();
break;
case GameState.Editing:
break;
}
});
KeyboardJS.Instance().Bind.Key("down",
() => {
if (dontPress) return;
switch (sonicManager.CurrentGameState) {
case GameState.Playing:
sonicManager.SonicToon.PressCrouch();
break;
case GameState.Editing:
sonicManager.WindowLocation.Y += 128;
sonicManager.BigWindowLocation.Y += 128;
break;
}
},
() => {
switch (sonicManager.CurrentGameState) {
case GameState.Playing:
sonicManager.SonicToon.ReleaseCrouch();
break;
case GameState.Editing:
break;
}
});
KeyboardJS.Instance().Bind.Key("left",
() => {
if (dontPress) return;
switch (sonicManager.CurrentGameState) {
case GameState.Playing:
sonicManager.SonicToon.PressLeft();
break;
case GameState.Editing:
sonicManager.WindowLocation.X -= 128;
sonicManager.BigWindowLocation.X -= 128;
break;
}
},
() => {
switch (sonicManager.CurrentGameState) {
case GameState.Playing:
sonicManager.SonicToon.ReleaseLeft();
break;
case GameState.Editing:
break;
}
});
KeyboardJS.Instance().Bind.Key("right",
() => {
if (dontPress) return;
switch (sonicManager.CurrentGameState) {
case GameState.Playing:
sonicManager.SonicToon.PressRight();
break;
case GameState.Editing:
sonicManager.WindowLocation.X += 128;
sonicManager.BigWindowLocation.X += 128;
break;
}
},
() => {
switch (sonicManager.CurrentGameState) {
case GameState.Playing:
sonicManager.SonicToon.ReleaseRight();
break;
case GameState.Editing:
break;
}
});
KeyboardJS.Instance().Bind.Key("space",
() => {
if (dontPress) return;
switch (sonicManager.CurrentGameState) {
case GameState.Playing:
sonicManager.SonicToon.PressJump();
break;
case GameState.Editing:
break;
}
},
() => {
switch (sonicManager.CurrentGameState) {
case GameState.Playing:
sonicManager.SonicToon.ReleaseJump();
break;
case GameState.Editing:
break;
}
});
KeyboardJS.Instance().Bind.Key("e",
() => {
if (dontPress) return;
sonicManager.SonicLevel.CurHeightMap = !sonicManager.SonicLevel.CurHeightMap;
},
() => { });
}