14.Direct2D 捕鱼游戏开发-编写场景1结构frame1.h

2023-11-06 16:30

本文主要是介绍14.Direct2D 捕鱼游戏开发-编写场景1结构frame1.h,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

环境:

编辑器:VS2015

系统:win10 专业版

碰撞:aabb obb盒模型(obb采用分离轴进行判断)

渲染:direct2d

场景截图:

这个场景就比较复杂了 我们先分析一波 首先点击需要发射炮弹,炮弹还要判断是否和鱼碰撞,鱼还要游动,然后还有金币的获取所以这个场景需要的对象有(消息映射,碰撞检测,鱼对象,创建鱼的对象,金币对象,炮弹对象)差不多就是这些了 下面看主要方法

主要方法和属性:

主要方法:

init 初始化场景的时候调用

visible 显示场景的时候调用

onClick 点击场景的时候调用

onClose 关闭窗口的时候调用

onMouseDown 鼠标按下的时候调用

onKeyUp 鼠标抬起调用

initPt 初始化炮台

initPt2 初始化炮台位置

initAmt1 炮台动画初始化

tk1Fun 游戏碰撞循环检测的函数(一个死循环不过采用的是sleep防止cup暴涨)

tk1FunC 游戏中计时器每一帧的调用 主要用来做渲染

mouseMove 鼠标移动的时候调用

removeBullet 移出子弹对象

removeFish 移出鱼对象

removeGold 移出金币对象

主要属性:

scene 当前场景的场景显示对象(action.h)

colObj当前场景的碰撞检测对象

nowScane 当前场景所显示的捕鱼场景

nowPt 当前的炮台等级

bottom 底部精灵对象的合集

tk1 场景计时器1

timerFish 判断鱼是否游出场景的检测间隔

usegold 储存绘制金币数量的精灵数组

jbNum 储存金币对象的数组

bulletArr2 储存炮弹对象的数组

fishArr 储存鱼对象的数组

fishConfigArr 储存创建鱼对象的数组

goldArr 储存金币对象的数组

maxBox 最大容器

调用流程:

初始化场景的位置是:

createBefore.cpp

再窗口显示之后我们调用初始化场景的函数

frame1.cpp

在初始化函数里面我们定义了各种需要的属性

然后我们添加了各种事件

然后我们创建碰撞检测循环

再然后我们定义所需要的各种精灵 金币精灵对象,炮弹精灵对象,然后我们打开我们的文档储存

再然后我们定义各种初始化对象

 

再场景2的onclick里面我们调用场景1的显示函数并设置场景1所需要的配置参数

下面我们看visible函数

在visible函数里面我们主要是处理底部对象的金币显示数量和背景绘制 然后就是启动计时器

下面看计时器调用的函数

在计时器里面我们调用了各个对象的周期处理函数 具体的可以看往期的内容

下面再看检测循环:

在这个函数里面我们通过一个死循环来周期的检测鱼和炮弹对象的碰撞情况

由于这个场景的方法太多我们就只说这几个主要的方法.

这是我们要做的目标:

项目开源地址:

https://github.com/yinhui1129754/fishing

游戏开发交流群:

859055710

这篇关于14.Direct2D 捕鱼游戏开发-编写场景1结构frame1.h的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/357747

相关文章

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Spring Security 前后端分离场景下的会话并发管理

《SpringSecurity前后端分离场景下的会话并发管理》本文介绍了在前后端分离架构下实现SpringSecurity会话并发管理的问题,传统Web开发中只需简单配置sessionManage... 目录背景分析传统 web 开发中的 sessionManagement 入口ConcurrentSess

基于Python编写自动化邮件发送程序(进阶版)

《基于Python编写自动化邮件发送程序(进阶版)》在数字化时代,自动化邮件发送功能已成为企业和个人提升工作效率的重要工具,本文将使用Python编写一个简单的自动化邮件发送程序,希望对大家有所帮助... 目录理解SMTP协议基础配置开发环境构建邮件发送函数核心逻辑实现完整发送流程添加附件支持功能实现htm

Java集合中的链表与结构详解

《Java集合中的链表与结构详解》链表是一种物理存储结构上非连续的存储结构,数据元素的逻辑顺序的通过链表中的引用链接次序实现,文章对比ArrayList与LinkedList的结构差异,详细讲解了链表... 目录一、链表概念与结构二、当向单链表的实现2.1 准备工作2.2 初始化链表2.3 打印数据、链表长

99%的人都选错了! 路由器WiFi双频合一还是分开好的专业解析与适用场景探讨

《99%的人都选错了!路由器WiFi双频合一还是分开好的专业解析与适用场景探讨》关于双频路由器的“双频合一”与“分开使用”两种模式,用户往往存在诸多疑问,本文将从多个维度深入探讨这两种模式的优缺点,... 在如今“没有WiFi就等于与世隔绝”的时代,越来越多家庭、办公室都开始配置双频无线路由器。但你有没有注