down

[Canvas前端游戏开发]——FlappyBird详解

断了今生、忘了曾经 提交于 2020-01-10 09:49:50
一直想自己做点小东西,直到最近看了本《 HTML5游戏开发 》,才了解游戏开发中的一点点入门知识。 本篇就针对学习的几个样例,自己动手实践,做了个FlappyBird, 源码共享在度盘 ;也可以参考 github ,里面有更多的游戏样例。 游戏截图 HTML5之Canvas Canvas是Html5中用于绘图的元素,它可以绘制各种图形,比如长方形,多边形,圆形等等。如果想要了解Canvas的使用可以参考: http://www.w3school.com.cn/tags/html_ref_canvas.asp //如果想要使用canvas,首先需要获得上下文对象: ctx = document.getElementById('canvas').getContext('2d'); //然后使用这个ctx绘制图形 在cavas每个绘制都是独立的操作。比如下图的两个绘制图形,第二个会以覆盖的形式绘制,因此 绘制图形的顺序 就显得十分重要了。 canvas之drawImage() 本篇的游戏开发中,主要使用的是依据图片绘制的api: drawImage() ,它有两个基本的使用方法: ctx.drawImage(image,this.bx,this.by,this.bwidth,this.bheight); ctx.drawImage(image,x,y,width,height,this

移动开发:你以为事件分发很简单,但我却被问哭了...

旧城冷巷雨未停 提交于 2020-01-07 04:13:55
今天上班第一天给大家娱乐一下,给大家讲讲事件分发,你可能会一笑:“别搞我呀,事件分发谁不知道呀。” 但是,今天的内容,可能真的有你不知道的。 注意: 如果你对事件分发原理并不是太了解,那么需要先对事件分发有足够的了解,最后再进行后续的阅读。 下面开始正文,因为这个问题是与同事间交流产生,所以本文以对话形式呈现。 主角: 小 A,小 B。 小 A: B 啊,你给我言简意赅的讲讲事件分发的流程。 小 B: 好嘞。 “事件分发是针对一次手势的过程,这个手势包含一次 ACTION_DOWN,多次 ACTION_MOVE,和一次 ACTION_UP”,在 ACTION_DOWN 的时候来决定本次事件的“TargetView”,该 View 会决定这次事件分发的事件流向。 父控件可以在 ACTION_DOWN或者 targetView不为空的情况下,进行拦截,如果拦截了 targetView 的事件,会给它发一个 ACTION_CANCEL。 小 A: 回答的可以呀,我来考你几个问题。 小 B: 尽管来。 小 A: 你说一次事件分发过程中会有多次ACTION_POINT_DOWN吗? 小 B内心:这不是送分题么,看样子小 A 兄弟对于多指这块不太熟悉呀,这都能做为问题。 小 B: 当然可以,多指的时候,你按下第一个手指,再按下第二个手指ACTION_POINTER_DOWN就来了。 你可以看看

ceph物理机nova状态为down的处理方法

馋奶兔 提交于 2020-01-01 18:17:35
文章目录 物理机nova状态为down的处理思路 说明 故障排除思路 1、先去web界面查看rabbitMq服务是不是正常的 2、查看状态为down的nova服务是否为active,不为active即服务有问题 3、不是服务问题(不能ssh过去),则直接去管理口重启物理机即可。 物理机nova状态为down的处理思路 说明 在控制节点上查看所有物理机运行状态,如果有某台为down,先别急着去重启物理机,而是先排除是不是服务down了,如下图,就是虽然显示已经down了,但还能ssh过去。如果服务有问题,重启服务即可。 故障排除思路 1、先去web界面查看rabbitMq服务是不是正常的 如果rabbitmq出问题了,去该控制节点查看服务:systemctl status rabbitmq-server (我这是正常的,所以是active,如果在web界面看到是故障的,这儿状态就并非active) 然后重启rabbitmq服务:systemctl restart rebbitmq-server (重启报错,看日志报错,可能是相关服务也出问题了,所以导致rabbitmq服务不能正常重启) 再次查看服务,状态是active即可:systemctl status rebbitmq-server 处理完毕后再去rabbitmq的web界面看,该控制节点状态已经正常。 2

用JavaScript实现图片剪切效果

一世执手 提交于 2019-12-31 02:30:18
学会如何获取鼠标的坐标位置以及监听鼠标的按下、拖动、松开等动作事件,从而实现拖动鼠标来改变图片大小。 还可以学习css中的clip属性。 一、CSS实现图片不透明及裁剪效果。 图片剪切三层结构 1、第一层opacity,给图层设置透明度 2、第二层clip,clip属性:对图片进行裁剪,实现图像的一部分显示,其他部分进行隐藏 3、第三层选取框absolute(与第二层重叠的),包括八个触点的效果html代码: 1 <div id="box"> 2 <img src="img/1.jpg" id="img1" /> 3 <img src="img/1.jpg" id="img2" /> 4 <div id="main"> 5 <div class="Divmin up-left"></div> 6 <div class="Divmin up"></div> 7 <div class="Divmin up-right"></div> 8 <div class="Divmin right"></div> 9 <div class="Divmin right-down"></div> 10 <div class="Divmin down"></div> 11 <div class="Divmin left-down"></div> 12 <div class="Divmin left"><

C++比较经典书籍

风格不统一 提交于 2019-12-30 04:52:51
这是本人总结的一些认为C++比较经典的书籍,希望对大家有用 Thinking in C++ C++编程思想 C++入门书籍,不多介绍 http://www.laixp.cn/soft/sort01/sort02/down-12215.html C++ Primer 5 th 也是一本入门书籍,很经典,初学者多看 http://www.laixp.cn/soft/sort01/sort02/down-11801.html http://www.laixp.cn/soft/sort01/sort02/down-11800.html 深入C++对象模型 这本书主要讲解C++一些底层设计原理,比如说一些虚函数表,多态的实现原理、方法,要想再C++上有深入了解,这本书是一本必看书,推荐 http://www.laixp.cn/soft/sort01/sort02/down-12267.html C++设计模式 设计模式,很有名的一般书,四人帮写的。现代软件讲究的是可复用,内聚解耦,这本书提供了多种模式供我们选择,是C++必看的一本书 http://www.laixp.cn/soft/sort01/sort02/down-12331.html 大规模程序设计 大家知道C++程序编译时比较慢的,笔者开发的一个项目,改动一些基础类的话,重新编译要花掉几个小时,这个人工成本是非常大的。那么这

网络虚拟化

徘徊边缘 提交于 2019-12-28 13:40:42
介绍 https://segmentfault.com/a/1190000004059167 在专业的网络世界中,经常使用到Virtual Routing and Forwarding(VRF),比如Cisco,Alcatel-Lucent, Juniper 等。对于L2 switch,自从上世纪90年代就开始使用VLAN,一个物理交换机上可以使用多个广播域,如今大多数交换机都支持4K vlan。 这个概念被引入到L3,如今很多网络设备支持VRF。这意味着,单个物理设备上可运行多个虚拟路由(L3 转发实例)。 在linux中,VRF被叫做“network namespace”。 每个network namespace拥有其对应的路由表(routing table)& 其对应的iptables,并且运行程序运行其中。 为什么有人使用它?比如一个运行在linux上的 Firewall,将firewall的所有服务端口分配给一个network namespace,这样,默认的network namespace 和 Firewall network namespace就运行着不同的路由表。像SSH这样的application运行在默认的network namespace,但是不在Firewall network namespace。 下面展示了其基本用法。 Basic network

Android 事件分发机制

情到浓时终转凉″ 提交于 2019-12-27 10:51:57
1.View的事件分发 流程 dispatchTouchEvent(): onTouchListener—>onTouch方法 onTouchEvent onClickListener—>onClick方法 ListenerInfo static class ListenerInfo { /** * Listener used to dispatch focus change events. * This field should be made private, so it is hidden from the SDK. * { @hide } */ protected OnFocusChangeListener mOnFocusChangeListener ; /** * Listeners for layout change events. */ private ArrayList < OnLayoutChangeListener > mOnLayoutChangeListeners ; protected OnScrollChangeListener mOnScrollChangeListener ; /** * Listeners for attach events. */ private CopyOnWriteArrayList <

Android事件分发机制--浅显易懂解析

别等时光非礼了梦想. 提交于 2019-12-27 05:49:25
Android事件分发机制的本质 将点击事件向某个View进行传递并且最终得到处理,即当一个点击事件发生后,系统需要将这个事件传递给一个具体的View处理,这个事件的传递过程就是事件分发过程 事件在那些对象传递 Activity、ViewGroup、View分发流程:Activity(Window)-> ViewGroup -> Viewsuper:调用父类方法true:处理事件,事件不在继续往下传递false:不处理事件,事件也不继续传递,交给父控件的onTouchEvent()处理传递: Activity -> ViewGroup -> View 从上往下调用dispatchTouchEvent() View -> ViewGroup -> Activity 从下往上调用onTouchEvent() 1. Activity的事件分发 当一个点击事件发生时,事件最先到达Activity的dispatchTouchEvent()进行事件分发 public boolean dispatchTouchEvent ( MotionEvent ev ) { //一个事件的开始总是从DOWN开始 if ( ev.getAction ( ) == MotionEvent.ACTION_DOWN ) { //默认空方法,每当按键、触摸、trackBall事件分发到当前的Activity就会被调用

托马斯微积分 从入门到失望

痞子三分冷 提交于 2019-12-27 01:19:42
决定把例题用程序都完成一遍。从最基本的开始:语言选择用python,vex,Houdini作图 <1> a,求球的体积.半径为4,中心点为0,左断点为-4,右断点为4 import math radius = 4.000 diameter = radius *2 # sphere r=4 R=8 # this spere is y=sqrt(16-x*x) # per cylinder volume is PI*r*r*dtx def sphere_function(xpos,dtx): return math.sqrt(16.00-xpos*xpos) * math.sqrt(16.00-xpos*xpos)*dtx # @n is the is this sphere that will split to n piece along xpos # if sphere r=4, slice is 8, dtx= R/8 = 1 def calculateVolume(n): v = 0 dtx = diameter/n for j in range(0,n,1): xp = j*(diameter/n) - radius #if sphere radius is 4,left plot is -4 ,right plot is 4 v += sphere_function(xp

MBProgressHUD 的crash down

大兔子大兔子 提交于 2019-12-26 18:43:39
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> crash: *** Assertion failure in -[MBProgressHUD show:], /Users/zhongqihulian/Desktop/ projectName /qihaoduobao/Pods/MBProgressHUD/MBProgressHUD.m:248 2016-04-14 10:35:40.071 qihaoduobao[1106:259596] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'MBProgressHUD needs to be accessed on the main thread.' *** First throw call stack: (0x1823e5900 0x181a53f80 0x1823e57d0 0x182d5899c 0x1002537c8 0x100252530 0x10017cb90 0x1000de1f8 0x1004d3e2c 0x100f45bf0 0x100f45bb0 0x100f54e10 0x100f544d8 0x18204d470 0x18204d020) libc+