`
modabobo
  • 浏览: 506294 次
文章分类
社区版块
存档分类
最新评论

在SVN中偷偷发个LGame的C# Beta版(意味着支持WP7和XBOX之类了)

 
阅读更多
今天小弟暂时脱离闭关状态,更新了一下LGame的SVN,更新的文件为LGame-0.3.3-Beta(20120229).7z

所以特意上博客说一小声,是因为这次更新小弟偷偷在SVN中增加了LGame-0.3.3的C# Beta版本(支持Windows、XBOX、WP7等环境,如果算上Mono的存在,微调下代码也能跑Mac(MonoDevelop)、iOS(MonoTouch)、Android((MonoDroid))等等等等(刚才看了一下,Mono支持的手机很多啊),不过这些需要额外花点¥(是Mono收的,不是偶……))。



从今天开始,LGame对外就有C#版了(其实早就有,就是没发……)。



本来小弟预期在2月发0.3.3正式版,结果有些事耽误了开发,进度比预计中的慢。C#版虽然已经构建完毕,但以前许下的RTS模块还没写完(Java版和C#版的都没写完,从去年动笔到临近写完,到今天几乎没再添加代码,果然自己不是一般的懒),而原来Java版的例子,除AVG和SRPG的以外,也都尚未移植到C#版本,至于文档就更别提了|||。所以,小弟本着“虱子多了不咬,债多了不愁”的无产阶级大无畏精神,稍微改变下开发计划,现阶段依旧慢慢在SVN中更新0.3.3的Beta版,正式版等C/C++和HTML5版本写完后,连皮带瓤四版一块发。

所以今天绝对不算正式发布,小弟只是慢慢走过来,用低沉鬼祟的嗓音悄悄招呼一声:“增加了C#支持的LGame-0.3.3-Beta已被上传”。这个,最多算跳票跳一半吧-_-

目前发布到SVN中的只有核心包dll与源码,以及附带2500个常用汉字字库的空项目模板(Hello World),其它辅助包还得测试下,过两天调好再补到SVN当中。另外,例子暂时并没有上传,小弟准备等补全后一起发SVN(其实照搬Java版的API就是了,除照顾C#用户情绪首字母大写外,真的一样(要求首字母大写,首先是保证C#中变量和函数重名时,编译不报错的需要。另外还有一个好处,就是以后写脚本转换,将其它语法与C#互换时比较方便,统一处理即可);况且小弟也增加了不少C#仿Java的函数)。

其实,就算大家不用LGame,有想研究C#游戏或引擎开发的,或者有需要将Java代码移植到C#的,也多少可以参考下小弟上传的源码,仅就2D开发而言,就算目前发的是Beta版,也比看书或借鉴别的什么项目强太多了。希望小弟开头以后,国内原创的C#游戏和游戏引擎也能多起来,总山寨国外的到底不是办法,否则老外真以为中国没活人了(话说把一些自己都不知道什么意义的代码照翻过来,真的很无聊,特别某些人还专喜欢照抄冗余的部分,显得代码深奥吗?喂,这可是C#啊,某些从别的语言带来的啰嗦语法,能免则免吧……)。

预计4-5月之间小弟会将C/C++版(首个版本只保证支持Windows、Mac、iOS以及PSP运行,其他环境不敢保证,微调下可能能跑,也可能不行|||不过会陆续扩展,反正是SDL的底子,好办~(简化了,只有部分需要的代码)),还有HTML5版发布,也就是LGame的0.3.3版这时才正式公开。

PS:Java、C#、C/C++、HTML5(JavaScript)这四种基础版本搞定后,小弟无论如何也得组团,否则自行发展四种不同语法的版本几乎不可能,主要是这四者的可运行环境存在重复,反复调试耗时甚巨,个人无法承受~

而后,我会给C/C++版添加额外的语法支持(纯解释器方式,非虚拟机,不过我会让脚本能编译成一些足以糊弄苹果的东西,合理规避审核),初步考虑支持Java和C#语法(语法特性只准备支持到JDK1.4以及.Net2.0,更高版本特性暂不提供),除此之外,也考虑在Ruby以及Python中再抉择其一做语法支持,还没最后定下(另外有时间的话,小弟还想玩点新鲜的,实验下多语法混合使用)。估计这些写完至少得7,8月见,这个版本会是0.3.4。

接着小弟准备翻回头来,替Java版增加JavaFX支持,给C#版增加Silverlight支持,这俩货倒简单,争取一个半月搞定(虽然有可能变成“临终关怀”)。至此小弟就可以开始写可视化IDE了,总之尽量简化开发流程。把上述这些全部做完后,我将顺应国内潮流,走最阴险也是最大众化的一步,广招技术水军强推-_-(话说在我国最大最公开的技术枪文发布“村”,小弟也是认识几个人的。另外还可以弄些Free的游戏,刷几个月搞几百万几千万下载量之类)……

当然,一些功能扩展与优化,会混杂在这个过程中一起完成。

——————————————————

关于C#版和Java版的三点小差异:

一、屏幕大小

其实小弟以前也提过,C#版与Java版将存在屏幕默认大小的差异。

Java版LGame的屏幕大小默认为480x320(横屏。话说这个大小省图,所以定成了这样),而C#版则为800x480(微软菜市场强制要求)。假设都使用默认设置,那么直接移植Java版游戏到C#版时,就需要额外设置MaxScreen大小,才能让C#版的LGame自动缩放为Java版的屏幕比例。

比如,我们将Java版本AVG示例的开始界面,毫无设定的直接运行在C#版中,会得到这样的效果。


因为原始设定是按照480x320跑的,而实际画面大小却是800x480,所以肯定会产生出入。

其实只要加入MaxScreen(480,320)这一行设定后,就会变成这样(从LGame的log数据也能看出差异)。


这时的效果与Java版如出一辙(当然,如果一开始就需要800x480的屏幕,或者希望根据屏幕大小产生效果差异,就什么都不用改了)。

另外,如果有一些屏幕先天不足或大于800x480的游戏需要移植,也可以通过此方法进行自动缩放,这在LGame的所有版本中都通用。

二、手柄支持


C#版在默认条件下,除Windows与WP7外,也可以运行在XBOX之上;不过,XBOX一般却都使用手柄,而非鼠标或触屏之类进行游戏,因此在游戏开发时需要额外引入手柄控制。

目前LGame的C#版提供了GamePadListener接口(只有它和PSP版有),其中已包含有全部XBOX游戏手柄的事件监听,我们只要实现这个接口,并且通过Screen的AddGamePadListener函数添加相关监听(监听可以Add多个),就可以获得具体的手柄数据,进而操作游戏了。

三、使用Content项目以外的资源


XNA默认使用管线技术(一种大家都知道怎么解密的混淆器……),将Content项目中的资源编译为xnb文件供用户加载。但是,C#默认提供的Pipeline实现却并不多,无法满足全部的资源加载需求(而且用Mono的话,这项功能就废了。所以个人认为,自行实现Pipeline其实挺没用)。因此,为了加载处理一些特殊类型的文件,我们有时将不能使用系统默认生成的xnb(所有能通过ContentManager的Load函数加载的资源,都是这个后缀,只是系统默认屏蔽后缀罢了),而需要让资源文件保留原始格式。

这时,我们就要在VS中自行设置资源文件的格式了。而想获得非xnb格式的资源,需要满足下列两个条件。

1、文件不能位于XNA自动生成的Content项目中,否则要么被编译成xnb格式,要么系统报错打包失败。(这意味着,通常我们需要在游戏源码所在项目,Add一个新Folder)

2、在这个Folder中的资源,必须手动设置属性下Build Action项为Content或Resource(读Resource仅限LGame,而且需要已引入System.Windows.Application支持),并且Copy to output项,不能为Do not copy,否则VS也不会将它们打包进XAP这个WP7应用包(LGame中有个省力的办法,用LPKUtils混淆全部资源,然后加载单独lpk包即可。当然,一个个加也无所谓,毕竟属性可以批量设置)。

PS:顺带一提,如.spritefont之类文件在生成xnb后,我们就可以把.spritefont这种配置文件删掉了,以后直接解压xap把生成的xnb拿出来用就行(本文再重复一次,xap这货其实就是个zip),反正真正打包时系统只认xnb文件而完全不需要.spritefont。否则你做中文字体,一个完整字库少说得编译一、二分钟(两万多个汉字,将生成十几MB的xnb文件,偶都是写批处理挑字生成,几MB足矣),纯属浪费时间。

——————————————————————————————————

原本预计明天多写点东西才发,小弟刚刚却赫然发现,这个月居然只有29天(一直以为本月有30天)。今天不发就是彻底的跳票,所以先将C#版的核心源码上传了。过两天例子都移植完时,小弟还会偷偷过来谈谈更具体的开发事宜(小弟偷偷的来,偷偷的走,打枪的不要,声张的没有,其它等“基础四版”构建完后再说)。


都说跨平台是趋势,其实单纯的跨平台之类真是弱爆了,小弟今年准备呕血跨语法跨机种跨系统外加跨平台,额外支持多语法混合编程,附赠可视化游戏拖拽生成工具的(旁白:此人已疯,速打999


小弟这两天依旧有事,争取星期六或星期日再上此博客(在此之前先要补全C#版的例子和调整完辅助包),先在此问大家声好,然后就断线喽……
分享到:
评论

相关推荐

    安卓桌面应用EyeRoom.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    仿随手记的炫酷饼图.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    webview重载使用&自定义网址.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    C语言学习工程和C语言项目.zip

    C语言诞生于美国的贝尔实验室,由丹尼斯·里奇(Dennis MacAlistair Ritchie)以肯尼斯·蓝·汤普森(Kenneth Lane Thompson)设计的B语言为基础发展而来,在它的主体设计完成后,汤普森和里奇用它完全重写了UNIX,且随着UNIX的发展,c语言也得到了不断的完善。为了利于C语言的全面推广,许多专家学者和硬件厂商联合组成了C语言标准委员会,并在之后的1989年,诞生了第一个完备的C标准,简称“C89”,也就是“ANSI C”,截至2020年,最新的C语言标准为2018年6月发布的“C18”。 [5] C语言之所以命名为C,是因为C语言源自Ken Thompson发明的B语言,而B语言则源自BCPL语言。 1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。

    带暂停功能倒计时TimeCountDown盒子适用.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    Google翻译.txt

    Google翻译.txt

    汽车车灯检测机械臂设计.doc

    汽车车灯检测机械臂设计.doc

    网络购物中心项目源码.rar

    网络购物中心项目源码.rar是一个压缩文件包,包含了一个基于Web技术的电子商务平台的全部源代码和相关资源。这个源码包旨在提供一个功能全面、界面友好的在线购物体验,它集成了商品浏览、搜索、购买、支付以及用户管理等核心电商功能。该项目采用了当下流行的开发框架和编程语言,比如使用HTML5, CSS3, JavaScript, PHP和MySQL数据库等技术,确保了网站的响应速度和跨浏览器兼容性。对于即将毕业的学生或者正在寻找实践项目的课程设计者来说,这个源码包是一个宝贵的资源。它不仅提供了一个实际应用的平台以供学习和研究,还允许用户根据需求进行定制和扩展,如添加新的功能模块或优化现有的代码结构。此外,项目文档详细记录了系统架构、功能实现和部署流程,为初学者提供了清晰的指引。通过分析和修改这份源码,学生可以深化对Web开发的理解,提高编程能力,并且有机会将理论知识转化为实际操作技能。此源码包适合作为计算机科学与技术、软件工程、信息技术等相关专业的毕业设计或课程设计项目,能够帮助学生在完成学业的同时,积累实战经验,增强就业竞争力。无论是作为学习的起点,还是作为未来职业生涯的一个跳板,网络购物

    C语言仓库,存储的是C语言代码.zip

    C语言诞生于美国的贝尔实验室,由丹尼斯·里奇(Dennis MacAlistair Ritchie)以肯尼斯·蓝·汤普森(Kenneth Lane Thompson)设计的B语言为基础发展而来,在它的主体设计完成后,汤普森和里奇用它完全重写了UNIX,且随着UNIX的发展,c语言也得到了不断的完善。为了利于C语言的全面推广,许多专家学者和硬件厂商联合组成了C语言标准委员会,并在之后的1989年,诞生了第一个完备的C标准,简称“C89”,也就是“ANSI C”,截至2020年,最新的C语言标准为2018年6月发布的“C18”。 [5] C语言之所以命名为C,是因为C语言源自Ken Thompson发明的B语言,而B语言则源自BCPL语言。 1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。

    Sora AI Videos的案例站点

    这是Sora AI Videos的案例站点,使用此项目可以帮助你快速构建Sora AI的演示项目。

    2015园林业务齐发展,区域拓展加速(20页).zip

    2015园林业务齐发展,区域拓展加速(20页).zip

    机械臂的物体识别与抓取技术研究.pdf

    机械臂的物体识别与抓取技术研究.pdf

    使用不同的超导间隙模型拟合从穿透深度获得的超流体密度数据matlab代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    一个年终抽奖系统,可以根据你需要的去设置

    年终抽奖系统的模型,需要需要特殊定值,可以留言

    埃博拉优化搜索算法matlab代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    ECommerceCrawlers-master.zip

    实战多种网站、电商数据爬虫。包含:淘宝商品、微信公众号、大众点评、闲鱼、阿里任务、百度贴吧、豆瓣电影、包图网、全景网、豆瓣音乐、某省药监局、搜狐新闻、机器学习文本采集、fofa资产采集、汽车之家️️️

    viewflow视图切换效果.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    可二次开发广州酒店信息管理平台.rar

    广州酒店信息管理平台是一个针对酒店行业设计的综合性信息管理系统,旨在通过现代化的信息技术手段提高酒店运营效率、改善客户体验,并为管理者提供决策支持。该平台以用户友好的界面和强大的数据处理能力为特点,涵盖了客房预订、入住管理、餐饮服务、库存管理、财务报表等多个模块,实现了酒店业务流程的自动化和智能化。作为毕业设计或课程设计项目,这个平台提供了丰富的功能和灵活的二次开发环境。学生可以根据自己的专业知识和兴趣,对现有系统进行深入分析,提出创新改进方案,或者添加新的功能模块。例如,可以通过集成人工智能算法来优化房间分配策略,利用大数据分析技术预测市场趋势,或者开发移动端应用以便客户能够随时随地访问服务。源码文件包中包含了完整的系统架构设计文档、数据库结构、前后端代码以及详细的API文档,使得学生能够快速理解系统运作机制并开始二次开发。此外,平台采用了模块化的设计思想,便于学生按需修改或扩展功能,同时也有助于培养学生的软件工程实践能力和解决实际问题的能力。总之,广州酒店信息管理平台不仅为学生提供了一个实战演练的机会,而且通过实际操作加深了对酒店管理业务和软件开发流程的理解,是一份极具挑战性和实用

    百度翻译.txt

    百度翻译.txt

    python源码python基础

    python源码python基础提取方式是百度网盘分享地址

Global site tag (gtag.js) - Google Analytics