游戏快速编程

2024-06-19

游戏快速编程(精选9篇)

篇1:游戏快速编程

#!/bin/bash#shell脚本编程之快速排序的实现(以最右边为元点的思想)a=(8 5 10 3 2 93 4 1 2 3 40 9 61 8 6 29)#a=(0 0 0 0 1 2 3 3 4 4 8 28 30495 921 43716)temp=buff=#交换函数swap{ buff=${a[$1]} a[$1]=${a[$2]} a[$2]=$buff}fun(){ i=$(($1-1)) j=$1 temp=${a[$2]} if test $1 -ge $2 ;then return 2 fi while [ $j -le $2 ];do [ $j -lt $2 ] && while [[ ${a[$j]} -gt $temp ]] ;do j=$(($j+1)) done i=$(($i+1)) swap $i $j j=$(($j+1)) done fun 0 $(($i-1)) fun $(($i+2)) $2}fun 0 15for((i=0;i<16;i++)){ echo -n ${a[$i]} “ ”}echoexit 0

下面是C++快速排序的对照代码

#includeusing namespace std;void swap(int *a,int *b){ int temp = *a; *a = *b; *b = temp;}void Grial(int a[],int x,int y){ int i=x-1; int j=x; if(x>=y)return; int temp = a[y]; while(j<=y) { while(ja[y]) j++; i++; swap(&a[i],&a[j]); j++; } Grial(a,0,i-1); Grial(a,i+1,y);}int main(){ int a[]={4,3,921,30495,28,43716,3,4,0,0,2,0,0,1,8,5}; Grial(a,0,14); for(int i=0;i<15;i++) { cout<

篇2:游戏快速编程

虽然这并非绝对需要,但在学院或大学的四年学习可以让你见识到各种不同的语言,你可以在网络上和专业人士或者其他学生交流。这种方法不一定适合所有人,并且很多成功的程序员都没有在一个耗时4年的机构学习。

创建自己的代码库

当你在创建程序并且不断扩充你的知识时,确保你所有最好的程序都保存自己的代码库中。你可以把这个展示给招牌和面试官看你所做的工作。确保这包含了你所有时间的工作,并且确保你可以用这些程序给给另一家公司做任何工作。

做一些外包兼职工作

对于程序员来说有非常大的自由职业市场,尤其是移动App开发。带上几个小的外包兼职去感受一番商业编程是如何运作的。通常境况下你可以用外包兼职的工作来帮助你建立代码库,并且这将有益于新的作品。

开发你自己的免费程序或商业软件

你不必为一家工作来换取金钱。如果你有能力,完全可以独立开发软件并且让其免费,通过你自己的网站或者其他的市场。准备好提供为你的商业软件做技术支持,因为你的客户希望它们能完好的工作。

篇3:如何快速编程打造谷歌浏览器插件

以天气预报为例, 介绍谷歌浏览器插件的打造。首先建立一个名称为“Weather”的文件夹, 在其中存放3个文件, 第一个是插件图标文件, 必须为PNG格式, 例如“icon.png”。使用记事本创建名称为“manifest.json”的文件, 这是插件的控制文件, 其内容为:

在该文件中其实包含了插件一些控制信息, 例如插件的名字、版本、简介、 插件图标名称等, 其中的“default_popup" : " popup.html”一行表示当按下工具栏上的插件按钮时 , 执行的目标网页文件, 这里“popup.html”。接着使用记事本创建“popup.html”文件, 其内容为:

该网页文件作用就是从中国天气网中获取预设城市的气象信息, 将其显示在弹出面板中, 其中的“id= 101010100T”指明表示城市代码 (注意后面必须加上“T”), 这里为北京。同理可以从中国天气网中获取任意城市的代码, 对其进行替换, 例如北京海淀区为“101010200”, 上海为“101020100”等。

篇4:游戏快速编程

【关键词】初中课堂;信息技术;游戏编程;实践研究

在初中信息技术课的教学过程中,发现有的学生不做教师布置的练习,而是在玩小游戏,或是痴迷于网络游戏,出现了厌学情绪。为了防止学生在课堂上不认真听课、练习,许多教师都绞尽脑汁,想方设法地杜绝学生玩游戏,采取关闭互联网、过滤掉聊天和游戏网站、禁止上机等措施,然而未能彻底地解决问题。

一、初中信息技术课堂引入游戏编程的意义

相对于其他学科来说,初中信息技术教学中普遍存在的问题教师专业水平有待提高,教师发展平台欠缺,师资配备不够完善,教学研究氛围不足的问题,造成初中信息技术发展还不够成熟。但初中学生开始懂得发现和探索自我,思维的独立性和批判性增强,初中学生的个性、智力、自我意识有一定程度的发展,对未知的事情有着强烈的好奇心,学生普遍喜欢游戏,游戏丰富的情节、角色扮演机制、简洁的操作、虚拟的人物形象和任务驱动机制深深吸引学生。所以选择一种合适的教学方法,使初中学生更好地学习知识,是初中信息技术教师必须探索和实践的课题。

二、初中信息技术课堂引入游戏编程的实践措施

(一)激发兴趣,增强求知欲

在教学过程中我发现,由于学生设计所需的程序设计语言、数学知识、函数没学,要理解一些晦涩的、难懂的、抽象的算法、概念比较困难,容易挫伤初中学生们学习程序设计的兴趣和积极性,就会将心思放在玩游戏和浏览网页上。但把学生大脑中对初中信息技术游戏编程的兴奋激活时,就会对所学的知识产生浓厚的兴趣,积极主动学习程序设计语言,在编程中验证问题,查寻资料,扩大知识面。在信息技术课程上教授时,教师可以事先让学生观看某个经常玩的游戏画面,利用游戏中的场景吸引学生的注意力,再适时地引出编程课题,与用VB设计一个游戏程序进行类比,提出授课的教学任务,从而激发了初中学生强烈的编程欲望和求知欲望。

例如某初中教师在开展第一节VB课时,就组织学生观看VB设计的小游戏,如:俄罗斯方块、贪吃蛇、中国象棋、简易赛车游戏、打字游戏等,然后用VB软件打开小游戏的源程序,让初中学生观看游戏代码、界面和运行效果,这样学生都兴趣十足、惊喜不已。激励学生主动地探索VB程序代码的奥秘,一步一步地去制作一个小游戏……

(二)比喻形象,贴近生活

初中信息技术教学中编程内容比较抽象,被学生理解和接受很不容易,特别是程序设计中的算法和概念。教师应化繁为简,讲得通俗易懂,在教学中巧用生活中的实例,形象比喻为学生所接受。例如某初中教师在信息技术讲课是碰到编程当中变量的概念时,教师给出问题:有两个瓶子,一瓶装了水,一瓶子装了油,如何互换两个瓶子里的液体呢?学生就能想到借用第三个瓶子的方法,类比程序设计,理解变量就变得容易了,学生接受也容易了,且不容易忘记。

(三)循序渐进

在教学的过程中,要逐渐使初中学生从重外观的学习过渡到代码的编写。可直接给出样例,要求模学生仿做,使学生熟悉VB控件的属性、事件。通过提出问题,给出样例,留给学生自由发挥、创造,在课堂中开展竞赛,查找得快,又修改得正确的学生有奖励,学生的积极性非常高,获得了成功感,增强了学习的信心,提高了学习兴趣。在程序设计中学中,让学生观看、模仿,通过演示实例,在具体操作中形成认识。例如:显示欢迎标语。

在界面中,包含1个文本控件、1个标签控件、3个命令控件。

代码如下:Private Sub Command1_Click()

Text1.Text=“欢迎您来到VB程序设计世界”

End Sub(下转第67页)

(上接第66页)

Private Sub Command2_Click()

Text1.Text=Date

End Sub

Private Sub Command3_Click()

End

End Sub

在上面的代码中,包含了单选按钮的使用,也包含了以前所学的知识点,如文本框、标签和窗体等,这样循序渐进地进行,让学生很快了解新知识点并很好地应用,达到教学效果。

结语

教学效果是教学方法推行中是至关重要的,有了好的教学策略,实施过程的合理,师生情感的交流不可忽视的,初中信息技术教学的教师要在贯彻课程根本要求的基础上力求开拓创新、与时俱进,积极投入教育,满怀真诚,变“苦学”为“乐学”,变“要我学”为“我要学”。激发学生强烈的求知欲,有目的地对学生实施兴趣培养,获得令人满意的教学效果。

【参考文献】

[1]王冬芹.游戏化教学在初中信息技术课堂中的应用研究[J].《新课程导学》,2014(15):38

篇5:应该如何快速学习编程语言

2、不要陷入语言的细枝末节中:刚开始学习一门语言时,要避免过早陷入语言的细枝末节中(比如语法,技巧等)。并不是说这些东西不重要,而是这些东西可以在后面的实践中慢慢的去学习的。那要怎么做?看下面。

3、开始行动,而非等待准备就绪:不要等你把一门语言完全掌握了再开始行动。把握重点之后,马上开始行动,用它来解决问题,在解决问题的过程中,完成对语言的完善和更深入一步的学习。

★ 怎么样学习电脑编程

★ 数学应该怎么学习

★ 如何培养青少年学习兴趣

★ 青少年学习雷锋精神广播稿

★ 如何系统有效的学习c++编程

★ 如何才能正确的学习jsp编程

★ 编程辞职信

★ 编程问答题

★ 小学生应该如何学习英语

篇6:游戏编程入门

经常有人问我,没有编程经验的人该如何开始开发游戏。在此之前,我总是一个个的尽力回答。然而,后来提相同问题的人数增长到难以处理的地步。我决定,是时候把我所有的建议写成文章,作为一个大概。

这篇文章是针对那些想要开发自己游戏,但几乎没有编程经验的人。事实上,我假设读者没有任何编程经验。我主要讨论游戏开发的程序和设计方面,而不是艺术性。我也不准备讲述如何进入游戏行业(这方面已经有足够的资料),而只是让你逐步的开始开发自己的游戏。最后,我所指出的这条道路也并不能作为唯一的,或是最好的路径来学习开发游戏,但至少对我和一些人很有用。选择一门语言

你要做的第一件事就是选择一门开发语言。你有很多选择,包括

Basic,Pascal,C,C++,Java,等等。也经常会有人争论对于初学者那一门语言是最好的。对于这一系列流行语言的讨论,你可以参看John Hattan的著作,What Language Do I Use?(我用什么语言?)

我的建议是以C和C++开始。有些人会说这些语言对初学者来说太高级了,但因为我自己就是学C++,我并不同意这一说法。而且,C/C++是当今使用最广泛的语言(译者认为应该是汉语。。),所以你可以找到大量学习资料和帮助。你先学C或C++都无所谓,因为只要学了一个,再学另外一个就很容易。但是,如果你先学C++,请保证在学习面向对象编程之前能理解和使用过程编程(等编程熟练再去学习类)。(译者:C是过程性语言,C++是面向对象语言)

如果你开始学习C/C++,发现太难,那再学一个简单一点的也没关系,比如Basic或Pascal。但是我真的认为,如果你坚持努力,而且有好的资料,学C/C++应该没有太大问题。

你的下一个问题可能会是:“我该怎么学C/C++?”我很高兴你这样问。最好的办法是上课。有老师可以回答你的问题,帮助你产生很大进步,编程练习作业也可以保证你能用到所学的东西。

如果你不觉得上课是个好主意,那最好的办法就是买一些好书。不要花太多时间去选一本什么“超级宝典”或“万用全书”,因为你最终可能会买几本。我建议你去一家书店,然后拿几本比较入眼的C或C++书看,直到找到一本或几本你能看懂,并且可以拿来学习的。同时,你可能会想要一些更深入的,或者一些材料,但是你一旦对于这门语言有了一些了解,我相信你应该有自己更好的选择。在这里,我有必要花一些时间,来说我看到很多初学者所关心的一个事情,特别是年轻人:没有钱买书和其他东西。首先,有很多免费资源可以利用,图书馆,Macmillan Computer Publishing(/personal),有成千上百的编程书籍。但是如果你真的想要成为一个好的程序员,还是应该投入一部分资金。应当想方设法(合法的)帮助你弄到一些钱。

网上也有很多C/C++的学习指南。但是我认为那只能作为补充而不是你自学的主要资源。

选择正确的编译器

你写的程序,或者代码,是以文本方式储存的,你甚至可以用记事本写C/C++程序。但是总需要有东西把他们转换成为可执行文件。对于C和C++,那就是编译器。

可用的编译器有好多种,包括很多免费的。选择一款自己适合的编译器很重要,免费的编译器就有这样的好处,你可以把它们试个遍,然后从中选择自己最喜欢的。然而,免费编译器比起商业版,可能会缺失一些功能和大部分服务。幸运的是,多数商业版编译器也兼售介绍版或学习版,这要便宜得多,通常功能却不见得少,唯一的限制是你不能发布用它编译的程序(短时间内你也根本用不着)。

总之,选择编译器取决于你能花多少钱,用什么操作系统,和为什么平台开发。如果要为windows开发,我强烈推荐Microsoft Visual C++。他强大的开发环境使得很多事做起来更方便,毫无疑问没有其他编译器更适合开发windows应用程序。如果你是个学生,你还可以折价买到。(译者:爽!)如果你在DOS平台开发,你最好的选择可能是DJGPP,免费的哦~。

选择开发平台

尽管最终你很可能为好几个平台开发,总要先选择一个来学。当你在学这门语言,还没有接触到图像的时候,你可能会想使用非图形用户界面的操作系统,比如DOS,Unix.这样可以避免接触高层,比如windows编程,让你集中精力学习语言本身。

一旦你做好开发游戏的准备,那么,应该考虑是否改变平台,让我们来看看每个选项的特征。

windows:如果你想成为游戏行业的专家,或者如果你想让许多人来玩你开发的游戏,那么,这就是你要选择的平台。因为多数你的用户使用windows,而且现在我也看不出有什么改变的迹象。当今大多数的windows游戏都是由一种你可能听说过技术---DirectX---开发的。你可以DirextX这个库直接访问硬件,这意味着你可以开发高性能的游戏。

DOS:DOS过去是占统治地位的游戏平台,但是已经一去不复返了。尽管可能有一些特殊爱好者还在为DOS开发游戏,现在没有一个为DOS开发的商业游戏,他也将继续衰落,直到微软不再支持。如果你只是想开发游戏,还是不要选择DOS,如果你非要这么做,也不要太久。记住:由于存在大量DOS游戏开发的书,可能还有人辩护从这些书中学习DOS游戏开发。但是,windows游戏开发的书越来越多,那些辩解也变得越来越无力。

Linux:Linux是Unix的一种,由于很多原因后来变得流行,包括稳定性,价格,和反微软情绪。尽管Linux用户还是相当少,但是围绕着他的热情和不断增长的市场潜力使其也成为不错的选择。

Macintosh:MAC有大量忠实粉丝并不能说明什么,几乎每一个和我讨论的MAC狂热者都需要更多更好的游戏。我没有见过多少MAC游戏开发资源,但我相信还是有的,因此这也是一个选择。

consoles:console(就是PS,N64,DC等等)的游戏市场十分巨大,当然

console游戏开发的前景也不错。然而以非商业的形式开发console游戏,出于各种原因,在现在似乎行不通。如果你开发console,很可能是在被商业游戏开发组雇用之后。

开始进入主题

现在是时候讨论开发游戏了。简单起见,我假设你选择用C/C++在windows平台开发,可能你选择别的,但大多数我说的还是有用的。

首先,甚至在你打算开始开发游戏之前,你必须很好掌握C和C++.你应该懂指针,数组,结构体,函数,可能还有类。如果你精通他们,就可以开始做游戏了。

这篇文章可能不能教会你所有关于开发游戏的东西。幸运的是,也没有这个必要。这方面有很多书,网上也有很多指南。GameDev.net应该有所有你想要的东西,这里我建议你怎么开始:

找一本或几本书。对于windows游戏开发初学者,Tricks of the Windows Game Programming Gurus是个完美的开始。除此之外,还有许多好书.读透这些书,试试所有的例子,不懂得部分多读几遍。

网上指南作为补充。除了弄清书上读到的,他们还涉及一些书上没有谈及的主题。

向专家寻求帮助。如果你不能在书上或指南找到问题的答案,好好利用我们的论坛和聊天室。那里有好多专家愿意帮助别人。

这并不是要你按照顺序执行的,而是可以同时并且不断的重复执行。

光学习还是不够的,你必须运用你所学到的。从一个小游戏开始,然后在这个基础上前进。你可以看一下Geoff Howlands 的著作: How do I Make Games?

A Path to Game Development.开始,自己独立工作。不要急着加入团队,那样只会减缓学习过程。而且一旦你有了自己的几个游戏,你可以为团队做出更大的贡献。

还有关于书,你应该不仅仅看游戏开发的书。为了能够开发出你看到商店出售的游戏,你应该钻研比大多数游戏开发书籍更高级的一些主题。有一些可以在网上找到,但你也应该选一些图形学,人工智能,网络,物理学等方面的书。计算机科学学位看来唾手可得,但因为你被迫上这些课的时候可能认为他们和游戏开发无关----你错了!

包装

这里有一些提示很有用

不要只积累知识,用它:你永远不会知道会理解一些东西知道你是用他们。用你学的东西作些演示。做作书上的练习。

经常玩游戏:这样做会使你做出更好的游戏。而且可以减轻编程的枯燥。帮助别人:能帮别人的地方尽量帮助别人,教别人的过程中自己会学到更多。有始有终:不要有这样的想法“我能够完成这个游戏了,但是我又有一个新的想法,那就直接做下一个。”你可以学得更多如果你完成他,你也可以用事实证明你不是只会空谈。所以,尽量不要做很大很复杂的游戏,直到你有了一定经验。

篇7:哪家有java游戏编程视频教程

/video

哪家有java游戏编程视频教程

想学习Java的人在刚开始都要问哪家有Java游戏编程视频教程?,视频主要讲什么?它的实用性、性能和向后兼容性都彰显其价值所在。随着互联网的发展,Java作为最主流的语言,学习的人会越来越多。

是什么让Java在20年之后依然能够成功呢?

准确测量程序设计语言的受欢迎程度是很困难的,但众多调研统计中的一个普遍接受的指标是 TIOBE指数。它能够通过各种搜索引擎以及谷歌博客、维基百科甚至YouTube进行语言跟踪。(在写这篇文章的时候,我学到了一些新东西,那就是,TIOBE其实是“The Importance Of Being Ernest”的缩写,它是奥斯卡·王尔德的一部剧作,虽然我不清楚这跟程序设计语言有什么关系)。

回顾过去,Java一直是数一数二的。Java已经占据了曾经C语言所拥有的

千锋教育-中国IT职业教育领先品牌

千锋教育Java视频教程

/video

地位,而C语言在Java开始流行之前一直是最受关注的语言。(事情变化多快啊!早在1986年Lisp语言还是排名第二的语言而Ada排名第三)。TIOBE指数也刚刚宣布2015年是Java语言年,而十年之前,Java就已然获此殊荣。

作为普及率的另外一个体现,世界上已有九百万的Java开发者。那为什么Java能够持续的受到欢迎呢? 我认为还是有一些原因的,这里我们列举四条:

1、实用性

James Gosling将Java描述为“蓝领”的程序设计语言。它能使开发者花最小的代价完成工作,同时还能使得开发者在一段时间之后,还能继续完成别人的(甚至自己的)代码并且明白其中的意思。当然,你也可以编写可读性差的代码,就像你在其他语言中能做的一样,但是使用良好的编码风格能够让它比其他许多语言都有更好的可读性。

2.向下兼容

Sun公司在确保一个版本的Java代码能够正常地在新的版本运行上做出了很多努力。虽然事情并不总是这样(如JavaSE1.4中的断言和JavaSE5中的枚举)并且有时不向下兼容的做法能够获得更好的实现(如:泛型),但向下兼容

千锋教育-中国IT职业教育领先品牌

千锋教育Java视频教程

/video

对开发者来说依然是一个引人注目的特性。没有比为了能在新版本的平台上运行代码而修改旧版本中的正常代码更糟糕的事情了。这简直是浪费时间。

3.可扩展性/性能/可靠性

在超过20年和每年数以千计的开发者的推动和发展,Java已经成为了一个坚实的平台,可以赶上甚至超过本地代码的水准(多亏了JVM使用了动态而非静态代码解析的一些优化)。当谈及可扩展性,看看使用Java语言的一些大型企业:Twitter(抛弃了JVM的Ruby-on-Rails,因为它不再能够扩展),Spotify,Facebook,Scalesforce,eBay,当然还有Oracle。Hadoop,Cassandra和Spark,大数据工程的基础框架,无不使用Java或者Scala并且在JVM虚拟机上运行的。如果你想要良好的拓展性和性能,Java和JVM是最好的选择。

4.保鲜度

对我来说这是最重要的一条。查看TIOBE统计图能够发现,2014年10月份开始,Java的受欢迎程度有了显著的提升,这刚好是在JDK8发行之后。JDK8对Java开发者来说有了显著的变化,它引入了Lambda表达式和Stream API。突然间Java开发者能够在不用学习一整套新语言(如Scala)的情况下以一个更加有效的方式进行开发。这些特点也使它有可能更简单地利用多核/多处理器的机器,而不必写很多复杂的和潜在的容易出错的多线程代码。随着Jigsaw工程在为JDK 9的发布而启动,我们会看到模块化使大企业应用程序更容易建立、部署和维护。同时在JDK10中,对于发展新的语言特性的计划已经在进行中了,比如值的类型等等。

千锋教育-中国IT职业教育领先品牌

千锋教育Java视频教程

/video

我相信Java能够在接下来继续保持领先地位。

千锋教育现为回馈广大学子,特请一线名师打造Java顶级课程免费赠送给广大学子Java游戏编程视频教程。http:///video/?,点击进入该网站即可免费领取。如有任何问题,还可加千锋教育官方qq群421475630。欢迎咨询千锋!

篇8:游戏快速编程

关键词:优盘,系统解锁器,AutoHotKey开发工具,系统安全

优盘以其体积小巧、存储量大等特点, 已经成为最常用的移动存储器。除了使用其存储数据外, 能否进一步发挥其功能, 使之更好地为我们服务呢? 当暂时不使用计算机的话, 往往会将系统锁定, 当需要时输入密码执行解锁操 作即可。不过上述方法操作起来过于繁琐, 能否将优盘作为系统自动解锁器 , 这样只需 插入优盘 (当然该优 盘必须经 过特殊处理) , 即可自动为系统解锁, 这无疑大大提高了系 统的安全性。 现在有很多使用优盘来为系统加解锁的软件, 就使用Au-to Hot Key这款功能强大的脚本开发工具 , 来设计两款功能实用的优盘自动解锁程序, 实现上述要求。

1 编程实例一:简易优盘“解锁器”

设计一款简单的程序, 来熟悉一下使用Auto Hot Key的编程方法, 然后再设计一款更加智能的优盘解锁器, 让加解锁系统更加方便。打开Windows资源管理器, 任选一个文件夹, 在空白处点击右键, 在弹出菜单中依次选择菜单“新建”→“Auto Hotkey Script”, 在当前路径下新建一个Auto Hot Key脚本文件, 将其改为合适的名字 (例如“Auto Un Lock.ahk”) 。在该文件的右键菜单中选中“Edit Script”, 打开脚本编辑器。在脚本辑器窗口开头处按回车键另起一行, 输入以下脚本:

之后保存该脚本文件即可。

1.1 该程序的使用方法

该程序的工作方式是首先在“C:Windows”文件夹下创建一个名称为“key.txt”的文件, 在其中输入一行字符 (内容自定 ) , 之后将该 文件复制 到目标优 盘的根目 录下。双 击该“Auto Un Lock.ahk”文件 , 可以运行该程序。当按下F8键时 , 系统即被锁定, 当然这里使用的是用户自己设计的锁定界面, 而不是系统自带的锁定功能。之后该程序即可每隔200毫秒检测连接在本机上的优盘信息。当需要执行解锁操作时, 将包含“key.txt”的优盘连接到电脑上 , 该程序即可对其进行检测 , 当发现目标优盘中包含“key.txt”文件, 并且其内容和“C:Win-dows”文件夹下的同名文件内容完全相同时 , 即可解除系统锁定状态。为了防止其他人使用“Ctrl+Alt+Delete”打开任务管理器强行结束本程序, 在程序中特定针对该操作进行了必要的处理。即使按下该组合键, 也无法执行非法退出操作。

1.2 锁屏代码段分析

程序的第 一行代码 “#NoTrayIcon”表示当 程序运行 后 , 在系统托盘中禁止显示该程序的图标。接下来的代码“Sys-Get, Virtual Screen Width, 78”使用了Auto Hot Key自带的“Sys-Get”函数 , 该函数的功能是取得屏幕分辨率、是否使用了显示器以及其他系统对象的相关信息, 这里的“78”参数表示取得虚 拟屏幕的 宽度 , 并将其数 值存放在 “Virtual Screen-Width”变量中。代码 “Sys Get, Virtual Screen Height, 79”则使用了“79”参数, 表示取得虚拟屏幕的高度, 并将其存放在变量“Virtual Screen Height”中。注意这里说的虚拟屏幕指的是整个屏幕, 包括桌面、任务栏等所有可视对象在内的整个屏幕。之后使用了块结构, 以“F8::”开头, 并以“Return”结尾。表示按下“F8”键后, 将执行其中的程序 段。当然 , 可以设定其他的热键, 具体的热键配置可以参见Auto Hot Key帮助文档, 注意热键后面必须跟随“::”字符。

该程序段以“Lock”开头, 实际上是设置了一个名称为“Lock”的标签 , 这样可以便于执行程序跳转操作 , 以后会使用到该标签。Auto Hot Key可以创建与热键相关的程序, 其特点是程序运行后会将自身隐藏在系统托盘内。实际上, Auto-Hot Key的功能是很强大的 , 完全可以创建GUI可视程序界面。接下来将创建一个背景色为黑色, 并且完全覆盖屏幕的大窗口。创建GUI界面必须使用Auto Hot Key提供的“GUI”函数, 该函数的功能全面, 具体的参数配置极为复杂, 这里只是结合本程序, 来简单说明其用 法。代码 “Gui +Last Found +Al-ways On Top -Caption +Tool Window”的作用是配置目标窗口的属性, 其后跟的参数如果带有“+”字符, 表示激活该参数属性, 带有“-”字符 , 表示禁用 该参数属 性。这里 的“Last-Found”表示使 用上一次 创建的窗 口属性 , “Always On Top”参数表示将该窗口显示在最顶端, “Caption”表示显示窗口标题, “Tool Window”表示不显示该窗口的任务栏按钮。代码“Gui, Color, 000000”表示将窗口背景设置为黑色 , 后跟颜色代码 (和HTML语言定义的色彩代码相同) , “000000”表示黑色。接下来使用“GUI”函数内置的“Font”参数来配置窗口的字体属性, 其中的“Gui, Font, CFF0000”表示该窗口中文字色彩为“FF00000”表示红色, 前面的“C”表示设置字体色彩。代码“Gui, Font, Arial”表示将该窗口的字体设置为“Arial”字体 , 代码“Gui, Font, s32”表示将字体的大小设置为32, 其中的“S”表示设定字体 的大小。 代码“Gui, Add, Text, 系统已经锁定 ! 请插入专用解锁优盘”表示在窗口中添加提示信息, 在最后跟随具体的文本即可。

实际上, “Add”参数可以添加的对象是很多的, 包括按钮、列表框、图片框、滚动条等等, 可以创建内容丰富的窗口。之后使用代码“Gui, Show, x0 y0 h%Virtual Screen Height%w%Virtual Screen Width%, lock”来按照上述预设参数 , 显示目标窗口内容。该窗口以全屏幕显示, 其背景为黑色, 在其中以大字体显示“系统已经锁定! 请插入专用解锁优盘”信息, 表示系统已经被锁定。其中的“Show”参数表 示显示窗 口 , 其后4个参数设定窗口具体显示范围, 其中的“x”, “y”表示在窗口左上角位置, “x0”, “y0”表示其位置在虚拟屏幕左上角 , “h”参数指 明窗口的 高度 , 这里为“% Virtu-al Screen Height% ” , 即虚拟屏幕的高度 , “w”参数指明窗口的高度, 这里为“%Virtual Screen Width%”, 即虚拟屏幕的宽度, 注意使用“%”符号包含变量, 表示引用该变量的数值。该行代码 最后面跟 随“Lock”项 , 表示程序 段跳转到 前述“Lock”标签处 , 即重复绘 制窗口。 接着使用 了“Set Timer, checkkey, 200”代码用来设置计时器。其中的 “Set Timer”函数表示创建计时器程序, 其中的“checkkey”表示预设程序标签, “200”表示200毫秒, 这样每隔200毫秒即可自动运行“checkkey”指定的程序了。

1.3 解锁代码段分析

在“checkkey”标识的代码段中实现 优盘解锁 功能。在“driveget, drives, list, removable”代码中使 用“driveget”函数读取可移动存储器列表, 并将结果保存在“drives”变量中。其中的“List”参数表示获得驱动器列表, “removable”参数表示移 动存储器 。接着使 用“File Read, localkey, C:WIN-DOWSkey.txt”代码读取“C:Windows”文件夹下的“key.txt”文件, 并将其内容存放在 “localkey”变量中 , 其中的“Fil-e Read”函数用来读取目标文件内容。代码 “passkey= ”将变量“passkey”内容清空。代码“keyaccepted:=false”将逻辑变量“keyaccepted”设置为“false”状态, 该变量用来判断文件比较是否成功。接下来使用“loop, parse, drives”代码执行循环, 其中的“Parse”参数表示本循环针对的列表而言的, 也就是针对上述驱动器列表“drives”而定的。每次循环从该列表中依次取得一个数值, 将其存储在“a_loopfield”变量中。代码“File Read, passkey, %a_loopfield%:key.txt”从取得 每一个可移动驱动器根目录下试图读取“key.txt”文件, 之后将其内容存放到“passkey”变量中。

使用“if (passkey=localkey) ”代码判断“passkey”和“lo-calkey”的值是否一致 , 也就是判断优盘根目录下的“key.txt”和系统路 径下的“key.txt”是否相 同 , 如果相同 , 则执行“Gui Destroy”代码释放上述锁屏窗体 , 执行“Block Input off”代码取消 鼠标和键 盘的禁用 状态。“Block Input”函数后 跟“on”则表示 锁定键盘 和鼠标。 之后使用 代码“Set Timer, checkkey, off”结束定 时器运行 状态。代 码“keyaccepted: =true”将“keyaccepted”变量的值设置为“true”, 表示解锁成功。同时通过“break”命令跳出循环。接着使用“if not key-accepted”代码判断“keyaccepted”的值是否为真 , 如果不是表示解锁失败, 继续执行其预设的程序。其中的“Block Inputon”代码执 行键盘鼠 标锁定操 作。代码 “Win Kill, WindowsTask Manager”用来关闭任务管理器窗口 , 防止别人试图利用任务管理器强行结束本程序。“Win Kill”函数的功能是用来关闭指 定的程序 , 其后跟随 目标窗口 的标题栏 名称。接 着“Gui, Show, x0 y0 h% Virtual Screen Height% w% Virtual Screen-Width% , lock”代码用来重新显示锁屏窗口 , 并跳转到“lock”标签处刷新屏幕。

2 编程实例二:智能优盘“解锁器”

上面讲述的程序虽然简单易用, 不过操作起来却比较复杂, 需要先按下指定的热键 (例如F8) , 来锁定系统, 之后才可以插入优盘来为系统解锁。如果能够化繁为简, 当插上优盘时, 立即锁定系统, 当拔下优盘时, 则自动解锁系统。这样, 使用起来就更加灵活了。这里就使用Auto Hot Key, 来设计一段更加复杂的程序, 实现上述要求。

按照上述方法, 创建一个脚本程序, 将其改为合适的名字 (例如“USBlock.ahk”) 。在该文件的右键菜单中选中“EditScript”, 打开脚本编辑器。在脚本辑器窗口开头处按回车键另起一行, 输入并保存以下脚本:

2.1 程序运行方法

在关键的程序行已经添加了注释, 稍加分析就可以看懂程序内容。Auto Hot Key脚本代码的语法很简单, 具体细节可以参阅其帮助文件。注意Auto Hot Key是使用“;”字符来标注注释信息的。在代码“MD5Hash = 533568CD7C7BEA9B2FFB18A31D57A6E9”中包含 了解锁密 码 , 在“Key File Name =lock.txt”设置解密文件名称。只需在优盘根目录下创建一个“lock.txt”文件 , 在其中输入“533568CD7C7BEA9B2FFB18A31D57A6E9”, 即可将其制作为专用解锁优盘。当然 , 也可以根据需要, 更改解锁密码字符串和解密文件名。当程序运行后, 在系统托盘中出现本程序图标, 同时检测是否连接有解锁优盘, 如果有的话, 就不进行锁定。如果没有就将系统彻底锁定。本程序采用透明锁定界面, 可以在锁定界面上显示相关提示信息。当锁定之后, 鼠标键盘就处于禁用状态, 同时封锁所有系统热键。当拔下/插上解锁优盘后, 可以自动锁定/解锁系统。

2.2 程序原理分析

本程序的原理实际上十分简单, 本程序的核心部分就是一个定时器, 通过代码“Set Timer, Check Key, %Check Wait%”, 来将其与“Check Key”程序段的代码绑定, 其执行周期设置在“Check Wait”变量中 , “%Check Wait%”表示Check Wait变量的包含的数值。在代码“Check Wait = 5000”中设定的定时器运行周期为5000毫秒, 当然, 可以修改该时间周期。该定时器每隔5000毫秒运行一次和“Check Key:”程序标 签关联的代码段。在该代码段中首先通过语句“Locked := true”, 将系统锁 定标志位 变量的值 设置为真 。之后通 过语句“Drive Get, drives, list, removable” , 取得当前 所有可移 动设备的盘符, 将其存储到“drives”变量中。通过语句“Stringlen, cd_len, drives”, 将计算出可用移动存储设备盘符的数量。通过“Loop, %cd_len%”循环, 对每一个可移动设备盘符进行检测, 主要检测其根目录下是否存在一个“lock.txt”的文件, 并读取该文件内容 , 将读取的 值放到“Key”变量中。利用“If ( key = MD5Hash ) ”语句检测文件的内容是否与预设的解锁密码相同, 如果相同, 将系统锁定标志位设置为假。通过“If ( ! Locked ) and ( Lock State ) ”语句判断系统锁定标志位是否为假, 同时判断当前是否处于锁定状态, 如果都满足的话, 就通过“Go Sub Unlock”语句跳转到解锁代码段, 执行解锁操作。

如果上述条件不满足, 就通过“Go Sub Lock”语句跳转到锁定代码段, 继续锁定系统。“Lock:”表示包含了锁定代码段, 其以“Return”关键字为结束标记。在该程序段中执行了隐藏任务栏, 封锁字母键操作, 同时激活了另一个 定时器 , 该定时器和“lose Task Mgr”程序段绑定, 其作用是封锁任务管理器, 防止别人利用任务管理器强制结束本程序。接下来使用“Hotkey”函数封锁了常用的系统热键, 防止别人利用系统热键来 避开本程 序的封锁 操作。语 句“Splash Text On, A_Screen Width +2, A_Screen Height +2, Lock SCREEN, `n`n系统进入锁定状态, `n`n请插入专用解锁优盘, `n`n所有按键已经被封锁, `n`n请勿擅自操作本机.”的作用是在设置闪屏界面, 并将其作为系统锁定界面使用, 在界面上中部显示一些警告信息 , 说明系统 已经被锁 定。语句 “Win Set, Transparent, %trans%, Lock SCREEN”的作用是设置半透明的锁定效果 , 让锁定界面看起来更美观。语句“Lock State := true”的作用是将锁定状 态标志位 设置为真 , 表示已经 进入锁定 状态。语 句“BlockInput, On”的作用是屏蔽一切输入操作 , 等同于禁用了鼠标和键盘。“Unlock:”代码段主要作用是恢复所有的封锁项目, 将系统恢复到正常状态。“Close Taskmgr:”代码段主要用来屏蔽任务管理器。

2.3 程序的编译

篇9:游戏快速编程

一、引言

随着航空领域对航空发动机性能要求的逐渐提高和数控加工技术的广泛应用,航空发动机零件逐渐向高性能、高精度的方向发展,采用传统编程方式造成的加工周期长、效率低及加工质量差等成为制约航空发动机零件研制的主要因素。究其根源,主要有以下几方面原因:(1)编程质量的好坏主要取决于编程人员的经验和专业水平,导致程序质量参差不齐;(2)系统只能通过交互方式点取产品几何信息,且缺乏数控编程资源库支持,无法自动获取加工区域信息、自动选取刀具和切削参数,自动化程度低;(3)编制的程序可移植性差,刀具轨迹的生成完全依赖于实际加工模型,即使非常相似的两个零件,也需要重新建立加工坐标系、几何体、选择切削参数等,编程效率较低,编程人员的重复劳动较大。研究和开发一套适用于航空发动机零件的快速编程系统,提高数控程序自动化编制水平已经成为当务之急。针对以上问题,本文提出了一种基于特征的车加工快速编程技术,采用向导指引的方式,以特征为基本加工单元,建立一种从加工特征识别、切削区域化分、切削参数加载到刀具轨迹生成半自动化快速编程机制,有效地提高车加工数控程序编制的效率和质量。

二、特征定义与识别技术

1.特征定义

“特征”一词在工业领域中最早出现在 1978年美国麻省理工学院 Gossard DC教授指导的一篇学士学位论文“CAD中基于特征的零件表示”中。不同的专业领域对特征有不同的定义,至今仍未有一个严格、完整的定义。在机械加工领域,特征是指在一定加工要求下,能够用相同或相类似加工手段加工出来的具有一定形状特征的零件部位。由此可以看出,加工特征不仅包含了零件的几何信息,还包括了加工方法和切削参数等制造信息,是 CAD/CAPP/CAM信息的集成(图 1)。

2.机匣零件车加工典型特征分类

航空发动机机匣是发动机中的壳体、框架类零件,是飞机发动机的重要承力部件,属于静子部件,主要作用是承载发动机零组件重量、承受轴向和径向力的作用。航空发动机机匣类零件种类繁多,结构复杂,按设计结构可以分为两大类,即环形机匣和箱体机匣。

本文主要针对环形机匣进行研究探讨,主要车加工区域为机匣内腔。通过对几类典型环形机匣进行全面分析,将内腔的加工特征分为以下 3类:内圆面、T形槽端部和 T形槽底部,每类加工特征根据具体细节的不同可继续细分,如内圆特征可分为直面内圆和斜面内圆两种,本系统研究的机匣类零件典型特征分类如图 2所示。为了便于特征的检索和特征库资源的管理,对每种加工特征赋予一个指定的编码,通过对特征编码进行检索可以快速定位待识别特征以及对特征库的系统管理。

3.特征识别技术

特征识别技术的作用是从零件的设计模型中提取具有特定结构和特定工艺属性的几何形状的一种手段,具体识别流程如图 3所示。目前,常用的特征识别方法主要有两种,一种是基于边界匹配的特征识别方法,另一种是基于立体分解的特征识别方法。

基于边界匹配的特征识别方法是通过对零件的边界进行识别,来匹配预定义的特征。具体步骤如下:(1)拾取特征的边界信息对特征进行定义;(2)搜索待识别零件的边界表示,将其与定义的特征进行匹配;(3)确定识别的特征参数,构造完整的特征几何模型。这种方法的关键是对特征边界模式的定义和特征搜索策略的确定。

基于体分解的特征识别方法基本步骤如下:(1)首先对零件模型进行分解,将其分解为凸体的集合;(2)通过对分解的凸体进行重新组合,产生对应于特征的体元;(3)对特征体元进行分类,确定特征的类型,建立特征的体表示。

基于体分解的特征识别方法与基于边界匹配的特征识别相比,对识别相交特征和曲面特征有相对优势,但是总体上效率较低。因此,本系统采用基于边界匹配的特征识别技术,并将其应用到 NX软件的 MKE模块实现特征识别。

三、基于特征的车加工快速编程系统框架

为适应航空发动机零件数控编程自动化和智能化的要求,本文在 NX平台的 CAM模块中,将智能编程的思路引入到系统中,集成加工特征识别、切削参数加载和工艺资源知识库,建立了基于特征的车加工快速编程系统,系统框架如图 4所示。

步骤 1:模型预处理工作,在 NX软件中将设计模型和毛坯模型按照设计要求装配在一个部件文件中,并对模型的典型特征进行确定,完成后台典型特征的特征识和加工规则程序的编制。

步骤 2:调用车加工快速编程系统,识别零件的典型加工特征。

步骤3:调用加工规则程序,选取特征所属的加工模块,实现切削区域的自动化分、切削刀具的自动调用和切削参数的自动加载,并生成刀具轨迹。

步骤 4:对步骤 3中生成的刀具轨迹按照实际加工需要进行排序。

步骤 5:对刀轨程序进行后置处理和仿真优化,优化后的程序即可用于实际生产加工中。

1.加工向导定制

本系统采用 NX中的加工向导构造器模块(ProcessStudio Author),创建车加工向导。在加工向导构造器模块把典型零件加工的编程过程定制成向导模板,形成标准的流程,用户根据向导的指引可以快速完成坐标系的创建、刀具、加工方法的选取等操作,极大地缩减了重复性的工作。用户还可以根据实际需求定制加工向导,实现较为复杂的工作。对于经验不足的编程人员可以直接选取合适的加工向导,根据指引完成加工程序的编制,既保证了程序的质量,又缩短了程序编制周期。本系统设计的车加工向导如图 5所示。

2.辅助工具

在 NX软件的加工模块中无法实现建模功能,在机匣类零件编程过程中通常需要创建辅助线或辅助面才能够实现一些程序的编制,这就需要编程人员在建模模块和加工模块不停的切换,给编程人员的工作带来了极大的不便。本系统采用在 NX加工模块嵌入简单建模功能解决了上述问题。图6所示为在建模环境下调用拉伸命令。

3.数据库文件

航空发动机机匣类零件结构复杂,加工特征种类较多,为了能够实现零件数控程序的快速准确编制,需要丰富的数据库作为支持,将成熟的加工经验和典型加工方法固化下来,作为特征识别和程序编制的依据。数据库主要由以下几部分组成。

(1)加工特征库:存储各类零件的典型加工特征,作为特征识别模块的基础特征(图 7)。

(2)加工刀具库:存储刀具的主要参数,包括刀具的类型、形状和主要参数,便于编程时准确快速的调用所需的刀具。

(3)加工规则库:存储各个典型特征各加工程序所需要的加工策略,使用 NX中的 MKE(加工知识编辑器,Machining Knowledge Editor)模块实现对加工规则的编制,通过对加工规则的调用可以实现数控程序的自动生成。

(4)加工向导库:存储定制的向导模版,用户可以根据具体的加工需求从库选择合适加工向导进行数控程序的编制。

在实际编程过程中,编程人员根据具体需求从数据库中选择合适的模板文件进行程序编制,即可以提高编程效率,又能够保证编程质量。同时,编程人员还可以将常用的具有代表性的特征按照工作需求添加到数据库中,对数据库进行不断的丰富和完善,使编制出的加工向导和加工规则在更大的范围内发挥作用。

四、典型机匣类零件车加工快速编程实例

基于以上研究分析,本文应用航空发动机机匣零件(图3)对车加工快速编程工具进行验证。

首先,根据该机匣件的结构特征,将内腔提取为 3个典型特征,进入快速编程工具车加工向导模块(图 8a),完成坐标系和车加工几何体的创建。其次,对典型特征进行识别,完成加工特征模板的调用(图 8b)。再次,调用加工规则程序,完成加工程序的创建(图 8c)。最后,根据实际加工需求,对生成的加工程序进行合理的排序,即完成该机匣件内腔车加工程序的创建。

五、结语

上一篇:超越自我国旗下讲话下一篇:电商的军训口号霸气押韵