【Asphyre引擎】学习笔记(一)

先来说说一下几个最基本的对象:

TGraphicsDeviceProvider:这个对象决定我们的游戏是用什么来渲染的,比如DX或者OpenGL,DX还有多个版本可以选择。

TCustomSwapChainDevice:引擎的渲染器,要在哪里渲染,只要传入指定目标的Handle就可以了。比如要在TForm上渲染,那么就传入TForm.Handle;如果要在某个TPanel上渲染,那么就传入TPanel.Handle。所以你可以在Form上放多个Panel,然后调用TCustomSwapChainDevice.Add(Panel.Handel,目标Size)就可以了。

TCustomCanvas:画布,所有的东西要显示出来都得靠它。

TArchive:资源管理器,加载Asphyre的asvf(早期叫asdb)资源文件,分为file和image两种。file就是非图像文件,比如xml、ini之类的;image就是图像文件,有texturesize、visiblesize、patternsize等属性(这个另外介绍)。

TAtlasImages:图像管理器,就是你载入的资源中,所有的图像都放在这个管理器里面统一管理。这个管理器提供一些方法可以让你在需要的时候取到。

TBitmapFonts:字体管理器,就是你载入的资源中,所有的字体文件都放在这个管理器里面统一管理。这个管理器需要传入Canvas对象,内部自带一些渲染方法(其实还是通过Canvas)。可以支持中文,但不适合。

TMultimediaTimer:高精度计时器。其实我们显示游戏内容是这样实现的:在高精度计时器的ontimer里面不断的调用Canvas把东西画出来,比如1毫秒(千分之一秒)画一次,不断重复画。

结合作者提供的Basic工程示例,基本上能掌握怎么通过Asphyre把一些图片、文字显示在窗口上的了。

时间: 2024-12-19 21:20:11

【Asphyre引擎】学习笔记(一)的相关文章

cocos2d-js引擎学习笔记

Scale9Sprite 在用Scale9Sprite.create的时候出现Uncaught TypeError: Cannot call method 'create' of undefined这个错误, 后来发现在默认情况下,project.json里的modules只自带cocos2d模块,通过检查frameworks/cocos2d-html5/moduleConfig.json,可以看到cocos2d模块里并没有CCScale9Sprite.js这个类. 它在GUI里,所以可以在mo

打造DLL内存加载引擎学习笔记

原文:http://www.pediy.com/kssd/index.html -- 病毒技术 -- 病毒知识 -- Anti Virus专题 首先看下我们内存加载引擎的流程. 1. 申请一段大小为dll映射内存后的映像大小的内存空间. 2. 移动各个区段的数据到申请的内存. 2. 修复引入表结构的地址表. 4. 通过重定位结构修复需要重定位的地址. 5. 调用DllMain入口点 流程解析: pe结构中nt header结构当中的ImageSize存放的是我们整个文件映射到内存后的映像大小,这

ASP.Net MVC开发基础学习笔记(3):Razor视图引擎、控制器与路由机制学习

首页 头条 文章 频道                         设计频道 Web前端 Python开发 Java技术 Android应用 iOS应用 资源 小组 相亲 频道 首页 头条 文章 小组 相亲 资源 设计 前端 Python Java 安卓 iOS 登录 注册 首页 最新文章 经典回顾 开发 Web前端 Python Android iOS Java C/C++ PHP .NET Ruby Go 设计 UI设计 网页设计 交互设计 用户体验 设计教程 设计职场 极客 IT技术

ASP.Net MVC开发基础学习笔记:三、Razor视图引擎、控制器与路由机制学习

一.天降神器“剃须刀” — Razor视图引擎 1.1 千呼万唤始出来的MVC3.0 在MVC3.0版本的时候,微软终于引入了第二种模板引擎:Razor.在这之前,我们一直在使用WebForm时代沿留下来的ASPX引擎或者第三方的NVelocity模板引擎. Razor在减少代码冗余.增强代码可读性和Visual Studio智能感知方面,都有着突出的优势.Razor一经推出就深受广大ASP.Net开发者的喜爱. 1.2 Razor的语法 (1)Razor文件类型:Razor支持两种文件类型,分

【Unity 3D】学习笔记三十七:物理引擎——碰撞与休眠

碰撞与休眠 上一篇笔记说过,当给予游戏对象刚体这个组件以后,那么这个组件将存在碰撞的可能性.一旦刚体开始运动,那么系统方法便会监视刚体的碰撞状态.一般刚体的碰撞分为三种:进入碰撞,碰撞中,和碰撞结束.关于休眠可以理解成为让游戏对象变成静止状态.如果给某个游戏对象休眠的状态,那么这个物体将立马静止,不再运动. 碰撞 首先学习下碰撞几个重要的方法: OnCollisionEnter(  ):刚体开始接触的时候,立即调用. OnCollisionStay(  ):碰撞过程中,每帧都会调用此方法,直到撞

quick-cocos2d-x学习笔记【1】——引擎框架概述和创建项目

好吧,我还是忍不住想写点关于quick的学习笔记,确实网上关于它的教程太少太少了,简单把自己的所学所得分享一下,有不对之处还请班门弄斧. 首先下载引擎包,触控收购quick之后,现在cocos中文站的主页上就可以下到了,虽然3.0alpha版发布了,还是等beta吧,在这里可以下到最新2.x的版本--2.2.5,好了,以后就暂时先拿这个版本学习,还是从低版本向高版本学习要轻松一些,至少知道是怎么过渡的. 简单解压缩一下,可以看到这样的文件结构 我们真正常用的几个文件目录就是docs,player

Unity3D学习笔记之七创建自己的游戏场景

到现在为止我们已经拥有了比较完备的Prefab,已经可以创建宏大的游戏场景,并以第一人称视角在场景中漫游了.这里给大家做个小的示范,建一个小场景大家在创建场景的时候需要自由发挥,做个尽量大的场景出来. 这一系列教程以及素材均参考自人人素材翻译组出品的翻译教程<Unity游戏引擎的基础入门视频教程>,下载链接附在第二篇学习笔记中. 我们以最初的添加了First Person Controller的PFB_Straight为整个场景的中心点来展开.我们先从Project中Prefabs文件夹拖出来

Android NDK学习笔记(一) 为什么要用NDK?

NDK是什么 NDK是Native Development Kit的简称,即本地开发工具包.通过NDK,Android允许开发人员使用本地代码语言(例如C/C++)来完成应用的部分(甚至全部)功能.注意:由于翻译原因,有些地方也把Native翻译为"原生". NDK是SDK的一个补充,可以帮助你做这些事情: 生成可以在ARM CPU,Android 1.5(及以上)平台运行的JNI兼容的共享库. 将生成的共享库放置在应用程序项目路径的合适位置,使其能自动地添加进你最终的(和经过签名的)

UML学习笔记

这个学期有幸选到章老师的UML精品课程,虽然到目前仅仅上课两周,但是收益匪浅.尽管在本科接触过UML,却没有非常详细的对其进行深入的了解,只是对一些图的名称有所耳闻,没有深究其功能. 就最近所学知识,谈一下我对uml统一建模语言的一个总体认识,软件工程作为一门工程类学科,如同建筑类学科一样,当我们需要搭建一所建筑时,我们都需要对其进行需求和设计,在施工的时候,我们就需要一些设计图纸,例如各个房间的具体设计.三维视图等,通过这些图纸进行施工.软件工程也是如此,当我们拿到一个项目时,并不是直接开始编

Unity3D学习笔记之八为场景添加细节(一)

这一系列教程以及素材均参考自人人素材翻译组出品的翻译教程<Unity游戏引擎的基础入门视频教程>,下载链接附在第二篇学习笔记中. 我花了30分钟做了一个中等大小的迷宫场景,不知道大家自己发挥,做的场景大小如何. 在完成场景之后,我们看到Hierarchy视图里面的东西已经满了,所以我们先来整理一下Hierarchy视图.创建一个空的游戏物体命名为Environment. 然后来到Hierarchy视图,先讲First Person Controller找到,挪到最上方,然后选中第一个物体,按住