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,不过好像安装之后,头文件内附带的函数也没有定义,可惜没时间折腾,那就不编游戏了吧,后面有空再说。

  • 相关阅读:
    设计模式之——工厂模式
    设计模式之——单例模式
    jQuery 全选 正反选
    将本地jar包添加到maven中
    配置项目启动的时候就加载 servlet
    Cannot call sendError() after the response has been committed(filter问题)
    mybatis pagehelper实现分页
    防止表单重复提交
    java.lang.Exception: No runnable methods 解决方案
    js 倒计时跳转页面
  • 原文地址:https://www.cnblogs.com/NJdonghao/p/5310678.html
Copyright © 2011-2022 走看看