我正在开发一款有趣的2048游戏R.我用a scan(n=1)来输入他/她的移动键.但是在脚本语言中,它需要Enter按键才能继续.
问:有没有做出类似的任何方法getch在C对申请R进行只买不按按按钮Enter?
任何帮助将不胜感激.
我建议你使用windows/x11图形环境处理程序(LINK).
这是一个打开窗口的示例,您可以使用键盘箭头移动蓝色方块:
keyboardAwareSquare <- function(){
currPosition <- c(0,0,1,1)
drawRect <- function(){
plot(c(0, 4), c(0, 4), type= "n", xlab = "", ylab = "",xaxt='n',yaxt='n')
rect(currPosition[1],currPosition[2],currPosition[3],currPosition[4],col='lightblue')
}
keydown <- function(key) {
offsetX <- 0
offsetY <- 0
if(key=='Left') offsetX <- -1
if(key=='Right') offsetX <- 1
if(key=='Down') offsetY <- -1
if(key=='Up') offsetY <- 1
if(!any(currPosition[c(1,3)] + offsetX < 0) && !any(currPosition[c(1,3)] + offsetX > 4)){
tmp <- currPosition
tmp[c(1,3)] <- tmp[c(1,3)] + offsetX
currPosition <<- tmp
}
if(!any(currPosition[c(2,4)] + offsetY < 0) && !any(currPosition[c(2,4)] + offsetY > 4)){
tmp <- currPosition
tmp[c(2,4)] <- tmp[c(2,4)] + offsetY
currPosition <<- tmp
}
drawRect()
}
drawRect()
setGraphicsEventHandlers(prompt='use the keyboard arrows to move',onKeybd = keydown)
eventEnv <- getGraphicsEventEnv()
}
# this part works differntly according to your OS
if(.Platform$OS.type == 'unix') x11(type = "Xlib") else x11()
keyboardAwareSquare()
getGraphicsEvent()
Run Code Online (Sandbox Code Playgroud)