超级玛丽制作揭秘6时钟控制 类MYCLOCK

基于WIN32 API实现的超级玛丽游戏 游戏中用到的类结构介绍 图像层 图像基类MYBITMAP 游戏背景MYBKSKY—>MYBITMAP 游戏图片MYANIOBJ—>MYBITMAP 魔法攻击MYANIMAGIC—>MYBITMAP 逻辑层 游戏逻辑GAMEMAP 时钟处理MYCLOCK 字体处理MYFONT 跟踪打印FILEREPORT... 阅读详情

类说明:时间就是生命。这对于游戏来说,最为准确。游戏程序只做两件事:显示图片、处理逻辑。更准确的说法是:每隔一段时间显示图片并处理逻辑。程序中,要设置一个定时器。这个定时器会每隔一段时间发出一个WM_TIMER消息。在该消息的处理中,先逻辑处理。逻辑处理完毕,通过InvalidateRect函数发出WM_PAINT消息,显示各种图片。游戏就不停地运行下去,直至程序结束。

时间表示:用一个整数iNum表示当前时间,游戏中的时间是1,2,3, … , n, 1,2,3, … ,n 不停循环.假设1秒内需要25个WM_TIMER消息(每40毫秒1次),则n=25. 也可以用一个变量,统计过了几秒。

控制事件频率的方法:
一秒内发生多次
以游戏背景图片为例, 每秒移动5下, 可以在iNum为5,10,15,20,25这5个时间点上移动.即iNum可以被5整除时,修改背景图片的坐标.
一秒内发生一次
例如火圈, 每秒产生一个新的蘑菇兵. 可以随便指定一个时间点,如20. 当iNum等于20时,生成一个蘑菇兵。
多秒内发生一次
需要一个辅助变量iNumShow,统计时间过了几秒。每隔一秒iNumShow减1,当iNumShow等于0时处理逻辑。

成员函数功能列表:(所有函数都是内联函数)
class MYCLOCK
{
public:
 //构造函数 初始化所有变量
 MYCLOCK()
 {
  iNum=0;//时间点
  iIsActive=0;//是否已经开始计时
  iNumShow=0;//计时秒数
  iElapse=100;//默认每100ms发一个WM_TIMER消息
  ishow=0; //是否显示时间
 }
 //析构函数 销毁计时器
 ~MYCLOCK()
 {
  Destroy();
 }

 //功能 开始计时, 产生WM_TIEMR消息的时间间隔为elapse.
 //     设置计时秒数(timetotal).
 //入参 窗口句柄 时间间隔 计时秒数
 void Begin(HWND hw,int elapse,int timetotal)
 {
  if(iIsActive)
   return;//已经启动了,直接返回

  hWnd=hw;
 &n

VC6+GDI手撸横版游戏:从位图加载到AABB碰撞的硬核实践 GDI是Windows原生图形编程的基础API,其位图操作(BitBlt/StretchBlt)、设备上下文(DC)管理和双缓冲机制构成传统2D游戏渲染核心。理解GDI渲染链路,需掌握资源加载(LoadImage/CreateCompatibleBitmap)、坐标系映射、光栅操作码(ROP)及内存泄漏规避等底层原理。技术价值在于不依赖现代引擎即可构建可控、可调试的游戏骨架,适用于教学演示、嵌入式GUI或轻量级工具开发。典型应用场景包括毕业设计、Win32平台入门项目、老系统维护与性能调优。本文聚焦VC6时 阅读详情

相关推荐

clockwise-samples:示例表盘

该存储库提供了利用 ustwo 开发的表盘框架的示例表盘。 入门 ustwo 的示例是使用 Android Studio 开发的,并组织到 GitHub 存储库根目录下的文件夹中。 您可以通过转到 File->Import Project... 并选择示例的根文件夹或其根 build.gradle 文件,将单个示例导入 Android Studio。 贡献 如果您想贡献自己的示例表盘,请随时 fork 存储库并提交拉取请求。 提交代码时,请务必遵循 。 另外,请继续利用,在给我们发电子邮件与任何和所有的反馈。 我们很想听听您对我们如何改进我们的样品目录的想法! 执照 The MIT License (MIT) Copyright (c) 2015 ustwo studio inc (www.ustwo.com) Permission is hereby granted, fr

Clockwise AI Calendar & Schedul-1.11.4.zip

名称:Clockwise AI Calendar & Schedul ---------------------------------------- 版本:1.11.4 作者:Clockwise 分类:生产工具 ---------------------------------------- 概述:让您的日历为您工作的智能日历助手。 描述: AI日历管理,打造更美好的工作日 Clockwise是一种人工智能驱动的生产力工具,可以优化个人和团队的日程安排,从而在工作日创造更多时间。就像日程安排助手一样,Clockwise了解您的偏好并努力整合灵活的事件并腾出大量时间来进行不间断的FocusTime。 告别管理您的日历,迎接更多时间来处理对您重要的事情。 我们已经为超过15,000个组织(包括Atlassian、Asana、Reddit和Twitter)创造了超过4,000,000小时的专注时间,而我们才刚刚开始! 怎么运行的: 1.连接到谷歌日历 2.告诉Clockwise哪些会议是灵活的 3.设置会议和专注时间偏好 4.顺时针通过移动灵活的会议来优化您团队的日历 5.享受更

大疆航线文件解析指南:5分钟搞懂KMZ里的template.kml和waylines.wpml区别

本文深入解析大疆无人机航线文件KMZ中template.kml与waylines.wpml的核心区别。template.kml是定义任务框架和全局参数的可编辑模板,而waylines.wpml是包含精确执行指令的最终文件。理解两者差异对于高效规划航线、批量生成任务及进行二次开发至关重要。

sun99的博客 866

Rust 编译工具链配置指南:从 link.exe 缺失到完美解决

本文详细解析了Windows下Rust编译时常见的'link.exe not found'错误,提供了MSVC和MinGW-w64两种工具链的完整配置指南。从Visual Studio组件安装到环境变量设置,再到疑难排查技巧,帮助开发者彻底解决Rust编译工具链配置问题,提升开发效率。

earth的博客 319

Blender软件导出地形到Gazebo中

Blender软件导出地形到Gazebo中,并配置纹理、刚度、高度。

m0_70652514的博客 3376

PADS导出PCB正反面丝印为CAD文件的方法

本文介绍如何将PADS绘制的pcb格式的PCB文件顶底层丝印及板框导出为CAD的dxf文件格式,并且将底层丝印进行镜像为正常视角

luguodeyo的博客 3294

14.建立时间、保持时间以及vivado时序report的参考使用

在设计数字系统时,需要仔细考虑电路元件的选择和布局以及时序设计来满足建立时间和保持时间的要求。建立时间,又称为建立时间窗口或建立期,是指数字信号在触发器的时钟信号前沿到来之前,必须已经稳定存在的时间。在本章节将结婚扫建立时间和保持时间的基本原理,以及如何通过vivado处理建立时间和保持时间。通过使用同步电路,可以更好地控制数据传输的时序并满足建立时间和保持时间的要求。例如,在D触发器中,选择具有适当充电和放电特性的D端口元件可以确保在时钟信号前沿到达前数据已经稳定存在,并在时钟信号前沿到达后保持稳定。

FPGA/MATLAB学习教程/源码/项目合作开发 2986

Jetson AGX Orin平台Jetpack5升级Jetpack6,自研载板USB不工作问题调试

1. 问题描述将AGX Orin工业的新板放到定制的载板上当在ubuntu 22和Jetpack 6.1上使用SDKManager刷机时,lsusb为空,并且在引导时没有发现/注册xusb设备。USB C端口正常打开并供电,但似乎没有数据传输。在Ubuntu 18 Jetpack 5.1.4 SDKManager上同样刷机之后,usb C集线器在引导时被正确地发现,显示在lsusb中,并识别/挂载外部驱动器。

jzwjzw19900922的博客 1509

第3.1.3章 机器人第三方库实战总结:ROS 2 入门实战及和ROS1的对比,打通机器人开发的任督二脉

本文针对机器人SLAM开发中第三方库的学习痛点,重点介绍ROS 2在SLAM中的应用。文章首先对比ROS 1与ROS 2的核心差异,梳理ROS 2知识图谱,包括节点、话题、服务等核心概念。通过实战项目演示如何构建激光SLAM节点,结合代码详解运行流程。最后给出学习建议,强调动手实践的重要性,帮助开发者快速掌握ROS 2在SLAM开发中的关键应用。

行知SLAM 179

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

上一篇: 超级玛丽制作揭秘5魔法攻击 类MYANIMAGIC
下一篇: 超级玛丽制作揭秘7字体管理 类MYFONT
programking
博客等级 码龄23年 450粉丝 140原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值