(译)SDL.NET Surfaces 相关介绍

翻译:Don

http://don.cnblogs.com/

Surfaces(平面)
本教程教大家如何使用SDL.NET的Surfaces在屏幕上渲染图形。(本教程的前提条件是认为您已经学会了“Hello World”哦!)
目录
1、
引言
2、
功能

2.1 Blit 
2.2 Primitive Drawing

2.3颜色、透明度和Alpha混合

3、集合

引言
Surfaces (平面)类在SDL.NET中用于描绘图形,实现的功能和SDL中的几乎一样。您可以new一个全新的Surfaces实例,或从内存中加载它,也可以是硬盘、数据流等。Surfaces类还提供其所属图形的相关属性,如:宽度、高度。Surfaces类还提供一些函数用于绘制图形。

功能
下面是Surfaces的一些功能: 
Blit
快速Blitting是复制一个Surfaces到另外一个Surfaces的概念。在SDL.NET内,Blit函数是把给定的Surfaces复制到当前Surfaces上。destinationSurface.Blit(sourceSurface)该函数就是把sourceSurface绘制到目标Surfaces的(0,0)位置。如果你看看SDL.NET的文档,你会注意到有大量函数用于Blitting一个Surfaces到另外的一个Surfaces上。

// Draw the player onto the screen
screen.Blit(player, playerLocation)

新的SDL的用户会常犯这样的错误:在Blitting Surfaces后他们不刷新屏幕。这个刷新(update)动作是必需的,否则屏幕不会刷新新的Surfaces,改变后的内容也就不会被看到了。
Primitive Drawing
SDL.NET在Surfacesl类调用的是SDL的SDL_gfx库,这意味着它能实现非常多的功能,能绘制线、圆、多边形、三角形等等。在这些绘制方法里你可以觉得是否使用透明效果。
色彩、透明和Alpha混合  
当一个Surface复制到另外一个Surface上时候,Color Key指定了源Surface的透明色为该颜色值。如果在SDL.NET的Surface上给TransparentColor设置了值,则该颜色即为透明色,当该Surface Blit到另外的一个Surface上时,源Surface对应的该颜色将会被忽略掉(即产生透明效果)。

 

// Set the color key to magenta
surface.TransparentColor = System.Drawing.Color.Magenta;
surface.Transparent = true;

集合

SurfaceCollectionss是用List对Surface的封装。 这样管理多个Surfaces将会非常容易。使用SurfaceCollectionss的优点是:灵活的同时加载一系列Surfaces,灵活的添加或移除一些Surfaces。

原文参见:http://cs-sdl.sourceforge.net/index.php/Surfaces#Color_Keys.2C_Transparency_and_Alpha_Blending.2C_Oh_My.21

转载于:https://www.cnblogs.com/Don/archive/2008/09/08/1287185.html

(译)SDL.NET Surfaces 相关介绍相关推荐

  1. pthread相关介绍

    pthread相关介绍 int pthread_create(pthread_t *tid, const pthread_attr_t *attr, void*(*start_routine)(voi ...

  2. axios队列 vue_(十三 )Vue 封装axios(四种请求)及相关介绍

    Vue 封装axios(四种请求)及相关介绍 首先axios是基于promise的http库 promise是什么? 1.主要用于异步计算 2.可以将异步操作队列化,按照期望的顺序执行,返回符合预期的 ...

  3. python映射类型-python映射类型的相关介绍

    映射类型是一类可迭代的键-值数据项的组合,提供了存取数据项及其键和值的方法,在python3中,支持两种无序的映射类型:内置的dict和标准库中的collections.defaultdict类型. ...

  4. Android Pmem相关介绍

    http://fangjian0518.blog.163.com/blog/#m=0 Android Pmem相关介绍 2011-10-18 09:40:26|  分类: Android PMEM | ...

  5. Android O 前期预研之二:HIDL相关介绍

    在上一篇博客里,大致介绍了下Android O 中treble计划的一些背景与相关基本架构,这一篇中跟大家一起来探讨下HIDL相关的内容. Android HAL类型  在此之前的ANDROID版本当 ...

  6. 程序如何在两个gpu卡上并行运行_深度学习分布式训练相关介绍 - Part 1 多GPU训练...

    本篇文章主要是对深度学习中运用多GPU进行训练的一些基本的知识点进行的一个梳理 文章中的内容都是经过认真地分析,并且尽量做到有所考证 抛砖引玉,希望可以给大家有更多的启发,并能有所收获 介绍 大多数时 ...

  7. mysqld命令相关介绍

    https://www.cnblogs.com/shymen/p/8850655.html mysqld命令相关介绍 mysqld --verbose --help 显示服务器选项和可配置变量一览 从 ...

  8. 什么是写一个java类,Java什么是类?class的相关介绍

    本章给大家带来Java什么是类?class的相关介绍,让大家了解关于类(class)的一些知识.有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助.class Point{ construc ...

  9. Nginx工作原理及相关介绍

    Nginx工作原理及相关介绍 一.Nginx工作原理与模块介绍 1.Nginx基本工作原理 NGINX以高性能的负载均衡器,缓存,和web服务器闻名.Nginx由内核和模块组成,其中,内核的设计非常微 ...

  10. C++访问控制符内容相关介绍

    C++编程语言是一个功能强大,应用广泛的计算机语言.不过在这一语言中,还有许多比较高深的内容值得我们去深入的研究.在这里就先为大家介绍一下C++访问控制符的相关概念.C++访问控制符有三个privat ...

最新文章

  1. HAProxy客户端IP地址的透传
  2. 场外和场内的区别_3分钟看懂场内基金和场外基金的区别!
  3. C++Fenwick tree芬威克树的实现算法(附完整源码)
  4. 队列读取器代理 遇到错误 Row handle is invalid
  5. Android学习拾遗
  6. 关于Github的那点事儿
  7. [Leetcode][第题][JAVA][两个数组的交集 II1][双指针][HashMap]
  8. kotlin获取属性_Kotlin程序获取系统名称
  9. 微课|中学生可以这样学Python(例7.2):三维向量类
  10. 如何使用导入平面文件向导将平面文件导入SQL Server数据库
  11. 关于OptiStruct提问的一些建议
  12. easyMule自动关机工具(可用于1.X和2.0版本)
  13. 汇编串操作程序设计 计算X+(Y-Z)=W
  14. 团队项目3.0与第六七章读后感
  15. ibaanalyzer使用教程_ibaanalyzer中文手册
  16. CAD图纸可以进行哪些格式的转换呢?
  17. matlab:nargin,varargin,varargout
  18. 【工业大数据】张洁教授现场剖析制造业大数据制造的思考与实践
  19. 计算机网络 | 路由器 | 路由器的工作原理
  20. Android校招面试 —— Java篇

热门文章

  1. 面试官:为什么要用 Spring?它到底解决了什么问题?
  2. 这个教人写出烂代码的项目在 GitHub 上火了...
  3. 易到高管被原百度外卖CEO巩振兵逼下跪:职场人到中年的无奈
  4. BAT等大厂十年研发经历,总结了12开发条经验(墙裂推荐)
  5. python消费kafka_Python脚本消费kafka数据
  6. Shell函数和正则表达式
  7. 如何去掉ArrayList重复的id
  8. Django框架(二)---- 常用命令
  9. curl如何发送json数据?如何发送form数据?python的restfull又该如何获取这些数据?...
  10. WPF实现竖向排列并换行显示