zoukankan      html  css  js  c++  java
  • Understanding Unix/Linux Programming-事件驱动编程:编写一个视频游戏

    • 概念与技巧:
      • 异步事件驱动编程
      • curses库:目标和使用
      • 警告和间隔计时器
      • 可靠的信号处理
      • 可重入代码、临界区
      • 异步输入
    • 相关的系统调用
      • alarm、setitimer、getitimer
      • kill、pause
      • sigaction、sigprocmask
      • fcntl、aio_read
    • 视频游戏与操作系统

        通过这个例子呢,作者希望我们了解更多的Unix系统服务,一些基本的原则,和操作系统的设计技术

      • 游戏需求

          考虑两人参与的星际旅行视频游戏,车给你需创立行星、流星、飞船和其他物体的影像,并使他们移动。每个物体有自己的移动速度、方向、动力和其他一些属性。物体之间相互作用,可能碰撞。

          游戏需要同时响应用户输入。玩家通过按键、鼠标、轨迹球在任何时刻生成输入。程序在很短时间内作出响应。这些输入事件可以改变物体的属性。通过按下按钮,用户可以增加速度或者减小质量。飞船的变化会影响它与其他物体的作用方式。

      • 如何构写视频游戏:
      1. 空间:在屏幕特定位置画影像,程序如何控制显示?
      2. 时间:影像以一个特定的时间改变位置,程序如何获知时间,并且在特定的时间安排事件发生
      3. 中断:程序在屏幕上平滑移动物体,用户可在任意时刻产生输入
      4. 同时做几件事情:游戏必须保持物体的移动同时还要响应中断
      • 操作系统面临类似的问题:
      1. 内核将程序载入内存空间并维护每个程序在内存中所处的位置
      2. 在内核的调度下,程序以时间片的间隔方式运行
      3. 内核也在特定的时刻运行特定的内部事务
      4. 内核必须在很短的时间内响应用户和外设在任何时刻的输入
      • 屏幕管理、时间、信号、共享资源

          为了学习这4个基本主题,我们将编写一个字符终端动画游戏!

          为什么是字符终端动画游戏?因为专注于系统编程啊。

    • 单人弹球游戏
      • curses库:展示curses程序的基本逻辑

          Opensuse中不自带curses.h,可以安装ncurses-devel,不过好像安装之后,头文件内附带的函数也没有定义,可惜没时间折腾,那就不编游戏了吧,后面有空再说。

  • 相关阅读:
    每日总结2021.9.14
    jar包下载mvn
    每日总结EL表达语言 JSTL标签
    每日学习总结之数据中台概述
    Server Tomcat v9.0 Server at localhost failed to start
    Server Tomcat v9.0 Server at localhost failed to start(2)
    链表 java
    MVC 中用JS跳转窗体Window.Location.href
    Oracle 关键字
    MVC 配置路由 反复走控制其中的action (int?)
  • 原文地址:https://www.cnblogs.com/NJdonghao/p/5310678.html
Copyright © 2011-2022 走看看