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

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧