横版过关游戏开发-图像处理

用Unity开发一款2D横版游戏demo 通过使用unity引擎,实现一款2D横版游戏demo的开发,特别感谢麦扣老师@M_STDIO,使我对unity有了初步而深刻的了解。 阅读详情

谢谢大家支持,我争取写详细点。游戏=图像处理层+逻辑处理层。图像显示方法、技巧很多。这个超级玛丽就用了一种(别的不会),BitBlt“去背”。

先说图像资源。每个游戏元素对应多帧图像,所有帧排成一行。各个游戏元素的图像从上至下排列。理论上,可以把所有元素,无论大小,全放到一张位图里。把这张“总图”,放到一个HBITMAP里,只需要按照游戏逻辑层的四个参数,即可完成显示工作,函数如下:

 void MYANIOBJ::DrawItem(int x,int y,int id,int iframe)

横纵坐标,图像ID,图像帧。我想在下一个版本增加透明度alpha,大家给点帮助。

说一下“去背”,大部分元素都是不规则图形,BitBlt是按矩形绘制。怎样要把周围的背景区域去掉?这个游戏用的是最简单的方法。制作一个白底黑图的MASK图,原有图形的背景区域填成黑色。两次BitBlt:

   BitBlt(hdcdest,x,y,wlist[id],hlist[id],  hdcsrc,  iframe*wlist[id],ylist[id]+hlist[id],SRCAND);   

BitBlt(hdcdest,x,y,wlist[id],hlist[id],  hdcsrc,  iframe*wlist[id],ylist[id],SRCPAINT); 

第一次用SRCAND的方式绘制MASK图,由于黑色是(0,0,0),与操作,表示图案的区域就? 闪撕谏话咨牵?xff,0xff,0xff),与操作,表示背景的区域不受影响。第二次用SRC PAINT,或操作,刚才图案的区域是黑色,与彩色的图案相“或”,彩色图案正常显示。背? 扒? 与黑色相或,仍然不变。由于从逻辑层接受的是图像ID,没有宽高信息。所以,在加载图像 资源的时候,要确定每个图像的宽高,显然,只能手工指定了。由一个全局变量负责: int mapani[3][5]={ {32,32,64,32,32}, {32,32,64,32,32}, {0,64,128,256,320},};

这个数组还可以优化,第一行是宽,第二行是高,第三行是起始纵坐标(每个元素都是从上至下排列)。初始化的时候,很简单:

   bmAniObj.InitAniList(mapani[0],mapani[1],mapani[2],sizeof(mapani[0])/sizeof(int));

HBITMAP的初始化也简单: hBm=LoadBitmap(hInstance,MAKEINTRESOURCE(iResource));

实际的代码结构、类层次、参数有点冗余,下一个版本优化。至此图像的初始、图像的各个 属性设置,显示方法都完成了。它的横纵坐标,图像ID,图像帧需要逻辑层处理,下次再讲逻辑层的操作。

横版过关游戏开发-游戏流程 看到大家这么支持,十分开心。继续开讲!这次讲游戏流程。大学时,很多人都做过俄罗斯方块,我当时做出来,也很开心。关键看一下流程:游戏开始,游戏胜负(有的会加一个暂停功能)。这是最简单的。过关游戏,可以划分成不同的运行阶段,比如:开始菜单,游戏运行中,游戏胜负。像超级玛丽,要在进入游戏时,有一个停顿(显示生命,地图),当玩家胜利或失败后,需要画面停顿一段时间(也可以弹出个提示)。程序中,根据不同的 阅读详情

相关推荐

【制作100个unity游戏之26】unity2d横版卷轴动作类游戏4(附带项目源码)

本节主要是添加敌人,人物受伤合死亡

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1726

使用Unity制作一个横版闯关类游戏

Tilemap瓦片地图1.先将一张贴图合集通过Sprite Mode从Single(单一图片)模式转变为Multiple(多张图片)模式以切割成为许多张小贴图入调色板当中,便可运用上方笔刷橡皮等制作一个简单的瓦片网格地图了。2.在Hierarchy中创建2D project-Tilemap-rectangular创建网格地图3.在windows中选择2D-tile palette创建一个New palette(新调色板)并将贴图合辑拖。

YeLan_Xz的博客 4325

游戏编程大作业(用VS制作的拳皇横板闯关小游戏)

用VS自制的横板闯关小游戏,WSAD控制行走,JK释放技能,实现的功能有:开始界面,BGM,动作控制,交战,关卡,物理现象,人工智能等

学习制作横版游戏——2

第一天 看完P1-P7

qq_60633200的博客 4013

2d横版游戏Demo

Unity3D开发的一个2d横版游戏demo源码,可动态更改材质,Unity3D开发2d游戏同样很强大。画质什么都比较好

我的老款Intel MacBook Pro,如何用OpenVINO把本地大模型推理速度提升10倍?

本文详细介绍了如何在老款Intel MacBook Pro上使用OpenVINO工具包将本地大模型推理速度提升10倍。通过对比Ollama CPU原生、Transformers原生和OpenVINO优化三种方案,展示了OpenVINO在性能优化上的显著优势,并提供了从环境配置到模型转换、性能调优的完整实战指南。

weixin_28694295的博客 300

Unity3D和C++制作的横版闯关小游戏的案例

以上是一个使用Unity3D和C++制作的横版闯关小游戏的案例,你可以根据具体需求和技术水平进行相应的修改和扩展。c. 使用Unity3D脚本编写角色移动、跳跃和攻击的控制脚本,接收玩家输入并改变角色的位置和状态。e. 增加关卡难度递增和关卡编辑器,玩家可以自定义关卡布局和难度,增加游戏的可玩性和挑战性。游戏概述:玩家需要控制一个角色,通过跳跃和攻击敌人,闯过关卡中的障碍和敌人,最终到达终点。b. 使用C++编写碰撞检测和物理引擎,实现角色与地面、障碍物和敌人之间的碰撞和交互。

QyDDLz的博客 1574

基于单片机红外线遥控Proteus仿真电路发射接收

*单片机设计介绍,基于单片机红外线遥控Proteus仿真电路发射接收。

2201_75940997的博客 3942

横版java_java swing 横版卷轴界面

使用java swing来模拟游戏中横版卷轴界面的效果------------------------------------------------------------------GameRibbonPanel类------------------------------------------------------------------package com.qsuron;import...

weixin_33413839的博客 222

书旗app字符串加密分析

本文案例是对书旗app搜索接口的请求密文进行分析和逆向。

李玺 3156

Flutter SDK的删除与重装:一步步教你如何轻松搞定

在Flutter开发过程中,我们可能会遇到一些需要重新安装Flutter SDK的情况,例如升级Flutter版本、解决依赖冲突等。本文将详细介绍如何删除并重新安装Flutter SDK,让你轻松应对各种问题。

理论都是虚的,代码才是王道。 2247

JavaScript语言的游戏开发

JavaScript作为一种强大的编程语言,为游戏开发提供了广泛的可能性。从简单的文本冒险游戏到复杂的3D射击游戏,JavaScript的应用无处不在。通过学习和实践,开发者可以利用这一语言创造出丰富多样的游戏作品。未来,随着技术的不断进步,JavaScript在游戏开发中的角色将愈发重要,值得每一位游戏开发者深入探索。希望本文能够为你在JavaScript游戏开发的旅程中提供一些有益的参考和帮助。

2501_90199647的博客 431

点云体积计算方法之一 附python代码

另外需要注意,这个只适合点云密集分布的场景来计算体积,比如树木扫描的体积;如果只是有表面积扫描的点云,该方法就不能计算整个物体的体积了。通过计算点云所占用的体素的数量来计算点云的近似体积。这是一个非常粗略的近似值,对于复杂的形状可能不准确。

三维点云技术探索 1888

cocos2d-x横版项目调用 ios UIImagePickerController

cocos2d-x的一个横版项目需呀用到UIImagePickerController ios直接报错,原因是不支持横版 最初自己写了ImagePickerViewController专门的ViewController来控制这块,通过addSubview竖屏没问题,但是在横屏有很多的问题 通过paush或者presentModalViewController切换之后,取得图片之后

1702

工艺边与定位孔设计经验规则总结

工艺边是在SMT焊接时,为了PCB和导轨接触预留的PCB边。工艺边和PCB的接触部分一般需要开槽,或者使用邮票孔,以方便后期去除工艺边。

fydar的博客 1985

摆脱英文束缚!群晖Transmission4.0.4全新中文界面攻略

在群晖安装完官方Transmission4.0.4套件后,界面是英文状态的,不太好用。但是按照网上分享的原来4.0以前版本的方法更新UI又失败,所以自己搞了下成功了,分享给需要的朋友。

XiaoqiangClub的博客 5213

Construct 3 零代码做游戏:手把手教你用事件表实现一个横版射击Demo

本文详细介绍了如何使用Construct 3的事件表系统零代码开发横版射击游戏Demo。从环境搭建、资产导入到事件表逻辑实现,手把手教你完成玩家控制、敌人AI、碰撞检测等核心功能,并分享视觉特效优化和性能调试技巧,助你快速掌握无编程游戏开发。

weixin_33226816的博客 302

YOLOv11涨点改进 | 全网创新首发、主干改进篇 | CVPR 2025 | RAVLT主干让 YOLOv11 更加强大!通过增强线性注意力机制,特别在小目标和复杂背景的检测上表现突出

本文提出RAVLT主干网络,通过改进YOLOv11的空间特征建模能力,显著提升小物体和复杂背景检测性能。RAVLT采用秩增强线性注意力(RALA)机制,在保持线性计算复杂度的同时解决传统线性注意力低秩问题。RALA通过增强KV缓冲区和输出特征矩阵的秩,提高特征多样性和建模能力。实验表明,RAVLT在ImageNet-1k上达到84.4% Top-1准确率,仅需2600万参数和4.6GFLOPs,性能优于现有线性注意力模型。文章详细介绍了RAVLT模块结构、实现原理及在YOLOv11中的集成方法,包含四种主干

Ai缝合怪、助力小伙伴高效发论文 637

拒绝爆肝抠图!AIGC联动PS黑科技:一张原画秒出2D横版视差+动态光影场景

AIGC联动PS黑科技:一张原画秒出2D横版视差+动态光影场景

海外旅居设计师,15年设计经验。 640

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

分析Cocos2d-x横版ACT手游源代码 1、公共

直接上代码 不说什么 这一款源代码 注释及多 PublicDef.h 公共头文件#define NF_PLATFORM 1 //当前版本(默认为普通版) //版本列表 #define NF_PLATFORM_NORMAL 1 //normal #define NF_PLATFORM_91 2 //91 playform #define NF_PLATFORM_PP

2116

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

游戏开发周志(1.2-1.8)

因为C++基础不怎么好,智科专业的学生可能对python语言比较亲和,所以游戏开发过程会比较迷茫不知道从哪里入手,但是每天进步一点点就行了,本周了解手机游戏市场类型占比以及PC端游戏市场占比份额,定好自己的方向。还有就是开发手机端的小程序或者是手机端的单机游戏,游戏类型可以是前面俩种的其中之一,也可以是一些基于手机APP市场的游戏开发,手机单机游戏可以在与老师答辩时直接让老师进行下载,边讲边玩。当然要结合自己的能力而言,首现定义好自己要做2D还是3D类型的游戏,然后定义好游戏类型是什么样的。

tvy28的博客 232

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

分析Cocos2d-x横版ACT手游源代码 5、3D世界

分析Cocos2d-x横版ACT手游源代码 5、3D世界

1776

OpenBOR图像处理系统揭秘:精灵动画与像素绘制的核心技术

OpenBOR作为终极2D横版卷轴引擎,其**图像处理系统**在游戏开发中扮演着至关重要的角色。从像素级的精灵动画渲染到高效的图像缩放算法,OpenBOR的**精灵动画**与**像素绘制**技术为复古风格游戏提供了强大的视觉表现力。本文将深入解析OpenBOR的**图像处理系统**,揭示其背后的核心技术原理。 [![OpenBOR引擎背景](https://raw.gitcode.com/gh_

gitblog_01422的博客 322

RMBG-2.0与Unity集成:游戏开发中的动态背景处理

本文介绍了如何在星图GPU平台上自动化部署RMBG-2.0背景移除(内置模型版)v1.0镜像,实现游戏开发中的动态背景处理。该解决方案可快速移除图片背景,应用于Unity游戏开发中的场景切换、角色素材处理等场景,显著提升美术资源制作效率。

weixin_33239721的博客 386

游戏开发杂记(二) 游戏图像杂谈

接触游戏开发算起来也一年了,最早从Galgame到RPG,再到现在的2D横版类恶魔城和伪3D赛车游戏,真的是涉猎了不少(虽然没有一款做完的游戏......),对于游戏图形的相关知识也仅限于那本计算机图形学,看到OpenGl的部分就感觉看不下去了,现在觉得还是老老实实用人家封装的接口,自己会写一些shader就好。 本篇文章想从游戏制作上谈谈我目前了解到的几种游戏图像的制作方式。 1.自己画。这...

swimming_UP的博客 749

分析Cocos2d-x横版ACT手游源码 1、公共

直接上代码 不说什么 这一款源码 凝视及多 PublicDef.h 公共头文件#define NF_PLATFORM 1 //当前版本号(默觉得普通版) //版本号列表 #define NF_PLATFORM_NORMAL 1 //normal #define NF_PLATFORM_91 2 //91 playform #define NF_PLATFORM_...

weixin_34167819的博客 189
上一篇: 横版过关游戏开发-游戏流程
下一篇: 数学家 欧拉
programking
博客等级 码龄23年 450粉丝 140原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值