在MinGW编译器上使用C代码。
我正在尝试制作一个简单的ASCII游戏。我使用2D数组制作地图,然后我使用了一个函数,将光标放在数组上的特定点上,通过击键WASD跟踪玩家的移动(函数是gotoXY(int x,int y)。我能够让它工作(有点),但我对一些没有按预期发布的事情有疑问。
只要用户按下按键a(向左),就会出现这段代码。未注释的部分在正确的位置打印出字符“@”,但是它不会更新应该具有表示空白图块的“ - ”的先前位置。这就是我使用注释代码的原因,然而,当我运行程序时,所有这些行都没有注释,只要按下'a'就会崩溃。 gotoXY()函数只是将光标指向它作为参数的x,y坐标。为什么我的代码在添加注释部分时会崩溃?(第18-22行)
nil
此外,每当我按下键移动我的角色时,它在屏幕上拍摄的速度太快了。我尝试使用系统(“暂停”)来解决这个问题,但这不起作用。那么,有没有办法在按下某些按键后延迟一段时间?这样@字符在屏幕上的移动速度更慢且更一致。
功能
if let fileUrl = dict["fileUrl"] as? String {
let url = URL(fileURLWithPath: fileUrl)
if let data = NSData(contentsOf: url) {
let image = UIImage(data: data as Data) // you can cast NSData to Data without force or optional casting
let photo = JSQPhotoMediaItem(image: image)
self.messages.append(JSQMessage(senderId: senderId, displayName: senderName, media: photo))
}
}
图片:
- Program before key is pressed.
- Program after key is pressed (lines still commented)
- Program after key is pressed (lines un-commented)
问题:
1.为什么我的代码会崩溃?
2.如何快速地将我的角色从键入到屏幕减慢速度。
完整代码:
//gotoXY(x, y);
//printf('-');
x-=2;
gotoXY(x, y);
printf("@");
答案 0 :(得分:1)
我们不能写这样的代码
printf('-');
但您可以将此代码编写为
printf("-");