游戏开发中游戏性能的优化
大家好,我是优就业小优,又和大家见面了。这节课我们来聊聊游戏性能优化。大家在玩游戏的时候可能经常会遇到卡顿,延迟,死机,不流畅等等问题,那么这些问题是怎么引起的呢?如何去尽量的减少这些情况的发生呢?这些问题对于游戏开发者来说是必须要面对的问题, 也是必须要解决的问题!下面就由我来给大家讲讲在开发中我们应该从哪些方面着手去减少或者解决这些情况的发生。上面我们例举在游戏运行的过程中可能会遇到的一些问题
【Web前端基础知识】如何使用Canvas绘制圆形
Canvas是HTML5中新增的元素,专门用来绘制图形,相当于在页面中放了一张“画布”,可以在里面绘制图形,但是不是指用鼠标画图,而是需要用Javascript编写需要绘制的图形的脚本。我们利用canvas可以绘制出下图:在绘制上图之前,我们先来看下相关知识点:一、 开始创建路径使用beginPath方法开始创建路径。beginPath() 方法表示开始一条路径,或重置当前的路径。简单来说,其实就
【Python基础知识】Python中的列表
很多初学Python的小伙伴不知道该从何开始学起,其实零基础学习的话可以先学习一些Python基础知识,等基础打牢之后再去接触更加深入的技术,接下来小编就为大家简单介绍一下有关于Python中列表的内容,希望对大家的学习有帮助。一、概念在Python中,列表(list)是常用的数据类型。列表由一系列按照特定顺序排列的项(item)组成。列表用方括号“[]”括起来,并用逗号“,”来分隔其中的项。例如
【Java基础知识】Java流程控制
在Java程序中,我们所写的代码是按照逻辑一行一行的进行的,但是现实中我们经常会遇到很多的选择,然后根据不同的情况进行不同的处理,在Java中同样也有这样的流程处理方式,这些方式主要有顺序结构,选择结构,循环结构顺序结构表示的是,中间没有其他的情况,程序从上到下按照代码顺序依次执行每个语句;选择结构即表示遇到了不同的情况,我们需要不同的处理,在Java中我们可以使用的选择结构的语法有if(条件){
【Python基础知识】Python中的while语句
很多初学Python的小伙伴不知道该从何开始学起,其实零基础学习的话可以先学习一些Python基础知识,等基础打牢之后再去接触更加深入的技术,接下来小编就为大家简单介绍一下有关于Python中while语句的内容,希望对大家的学习有帮助。1、while循环语句迭代(iteration)意味着反复执行相同的代码块。实现迭代的编程结构称为循环(loop)。假设有一项任务,要在屏幕上输出从1到100的数
【Web前端基础知识】css表示颜色的方法
在制作页面的时候我们经常需要设置字体颜色或者背景颜色,丰富多彩的颜色能够让页面呈现更好的效果,在网站中用到颜色的地方也很多,文字颜色,背景颜色,边框颜色等都需要用到。在css中表示颜色的方法主要有以下几种。1. 关键字颜色属性值是颜色的名称。例如:div{ color:red; } 效果:2. 十六进制十六进制表示颜色的原理是利用光的三原色:红色,绿色,蓝色。利用这三
【Python基础知识】Python中的逻辑运算符
逻辑运算符用于组合多个条件测试语句。假设“我今年18岁”和“我身高2米”这两个语句,前一个语句是真的,后一个语句是假的,因此,“我今年18岁,并且我身高2米”这个语句是假的。其中,“并且”可以认为是逻辑运算符。Python中有三种逻辑运算符,分别是and、or和not。一、逻辑运算符and在某些场景下,需要同时检查两个甚至更多的条件。假设某运动队招收运动员的要求是年龄不得低于14周岁,同时身体健康
Python基础01 Hello World!
简单的‘Hello World!’ Python命令行假设你已经安装好了Python, 那么在Linux命令行输入:$python将直接进入python。然后在命令行提示符>>>后面输入:>>>print('Hello World!')可以看到,随后在屏幕上输出:Hello World!print是一个常用函数,其功能就是输出
Python快速教程 (手册)
说明1. 教程将专注于Python基础,语法基于Python 2.7 (我会提醒Python 3.x中有变化的地方,以方便读者适应3.X的情况)。测试环境为Linux, 将不会使用到标准库之外的模块。2. 我将专注于python的主干,以便读者能以最快时间对python形成概念。3. Linux命令行将以 $ 开始,比如 $ls, $python4. pyt
Java进阶09 事件响应
在GUI中,我们看到了如何用图形树来组织一个图形界面。然而,这样的图形界面是静态的。我们无法互动的对该界面进行操作。GUI的图形元素需要增加事件响应(event handling),才能得到一个动态的图形化界面。元素, 事件, 监听器我们在GUI一文中提到了许多图形元素。有一些事件(Event)可能发生在这些图形元素上,比如:点击按钮拖动滚动条选择菜单Java中的事件使用对象表示,比如Action
Java进阶02 异常处理
程序很难做到完美,不免有各种各样的异常。比如程序本身有bug,比如程序打印时打印机没有纸了,比如内存不足。为了解决这些异常,我们需要知道异常发生的原因。对于一些常见的异常,我们还可以提供一定的应对预案。C语言中的异常处理是简单的通过函数返回值来实现的,但返回值代表的含义往往是由惯例决定的。程序员需要查询大量的资料,才可能找到一个模糊的原因。面向对象语言,比如C++, Java, Python往往有
Python标准库13 循环器 (itertools)
在循环对象和函数对象中,我们了解了循环器(iterator)的功能。循环器是对象的容器,包含有多个对象。通过调用循环器的next()方法 (__next__()方法,在Python 3.x中),循环器将依次返回一个对象。直到所有的对象遍历穷尽,循环器将举出StopIteration错误。 在for i in iterator结构中,循环器每次返回的对象将赋予给i,直到循环结束。使用ite
Python深入 Python的内存管理
语言的内存管理是语言设计的一个重要方面。它是决定语言性能的重要因素。无论是C语言的手工管理,还是Java的垃圾回收,都成为语言最重要的特征。这里以Python语言为例子,说明一门动态类型的、面向对象的语言的内存管理方式。 对象的内存使用赋值语句是语言最常见的功能了。但即使是最简单的赋值语句,也可以很有内涵。Python的赋值语句就很值得研究。a = 1整数1为一个对象。而a是一个引用。利
Mac OSX网络诊断命令
下面是一些Mac OSX下常用的网络诊断命令。它们能帮助我们发现网络问题。文中提到的协议和网络通信原理,可参考协议森林。有些工具,如arping, arp-scan,需要借助HomeBrew安装。 基本工具网络诊断的第一步,是了解自己的设备,比如有哪些接口,IP地址都是什么。ifconfig显示网络接口(interface)信息。如接口名称,接口类型,接口的IP地址,硬件的MAC地址等。
树莓派:文本编辑器与文件
GNU nano是Unix系统下一款常用的文本编辑器,以简单易用著称。与之相比,功能更强大的Vi和Emacs编辑器,学习曲线比nano陡峭很多。由于nano对于一般的文本编辑来说已经足够,所以我想简单介绍一下,以便于更好入门。 基本使用在Shell中输入下面命令,就可以启动nano:nano test.txt命令nano后面跟着想要修改的文件名。如果当前文件夹下存在名为test.txt的
树莓派的GPIO编程
树莓派除了提供常见的网口和USB接口 ,还提供了一组GPIO(General Purpose Input/Output)接口。这组GPIO接口大大拓展了树莓派的能力。GPIO不仅能实现通信,还能直接控制电子元器件,从而让用户体验到硬件编程的乐趣。 GPIO简介在树莓派3上,GPIO接口由40个针脚(PIN)组成。每个针脚都可以用导线和外部设备相连。你可以通过焊接的方式来把导线固定在PIN
Linux的内存分页管理
内存是计算机的主存储器。内存为进程开辟出进程空间,让进程在其中保存数据。我将从内存的物理特性出发,深入到内存管理的细节,特别是了解虚拟内存和内存分页的概念。 内存简单地说,内存就是一个数据货架。内存有一个最小的存储单位,大多数都是一个字节。内存用内存地址(memory address)来为每个字节的数据顺序编号。因此,内存地址说明了数据在内存中的位置。内存地址从0开始,每次增加1。这种线
调度器简介,以及Linux的调度策略
进程是操作系统虚拟出来的概念,用来组织计算机中的任务。但随着进程被赋予越来越多的任务,进程好像有了真实的生命,它从诞生就随着CPU时间执行,直到最终消失。不过,进程的生命都得到了操作系统内核的关照。就好像疲于照顾几个孩子的母亲内核必须做出决定,如何在进程间分配有限的计算资源,最终让用户获得最佳的使用体验。内核中安排进程执行的模块称为调度器(scheduler)。这里将介绍调度器的工作方式。进程状态
Linux文件管理相关命令
在了解了Linux文件管理背景知识之后, 我们可以学习一些命令来管理我们的文件。 文件操作相关有一些命令可以帮助我们"修剪"之前看到的文件树。$touch a.txt如果a.txt不存在,生成一个新的空文档a.txt。如果a.txt存在,那么只更改该文档的时间信息。(这个命令实际上用得并不广泛,但可以帮我们创建一个空文件来实验下面操作)$ls .是list的简写,列出
Linux文本流
之前已经用文本编辑器修改过文本。现在,我们要深入理解所谓的“文本”。文本流在计算机中,所谓的数据就是0或1的二进制序列,但严格来说,Unix以字节(byte)来作为数据的单位,也就是说这个序列每八位(bit)为一个单位。八位的二进制数字,会落在十进制从0到255的范围内。利用ASCII编码,可以把这一个字节转换成为256个字符中的一个。所以,在Unix中,数据完全可以用字符的形式表示出来,也就是所