大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 为了便于SpriteKit中物理行为的调试,我们可以借助于Xcode的playground的强大机制.我们只需要随时修改我们的代码,就可以在观察窗中立即观察到物理对象的变化. 现在为了给眼睛观察一定延时时间,我们写一个延时方法: public func delay(seconds seconds:Double,completion:()->()){ let p…
我们知道在Xcode的playground中不仅可以测试console代码,还可以测试UI代码,甚至我们可以测试SpriteKit中的场景,有兴趣的童鞋可以看我之前写的这一篇blog: Xcode的playground中对于SpriteKit物理对象的更新为何无效 而在本篇中我们只是简单聊一聊最新的Xcode8.0 beta2(以下简称Xcode8b2)中playground对UIKit支持有了哪些改变. 首先贴出以下小段演示代码: // 1 import UIKit import XCPlay…
对于一般对象,playground中默认的quick look显示已经够用,比如简单的字符串,Int,或简单的自定义Class等等. 不过对于有些情况,我们需要自定义对象在playground中的显示,比如图形化显示. Xcode对于在playground中自定义显示对象给予了特殊的支持,我们可以通过在自定义类中完成特殊的debugQuickLookObject方法来达到此目的. 以下例子代码摘自互联网,本猫做了修改. 我们先创建一个自定义类名为CheckersBoard,需要继承自NSObje…
我们知道在SpriteKit物理引擎实际是基于Box2D! 在SpriteKit中当你设置好适当的碰撞参数后,通过遵守SKPhysicsContactDelegate,你可以选择实现2各碰撞回调方法: didBeginContact didEndContact 方法中会传递一个参数,其类型为SKPhysicsContact,其中含有5个非常重要的碰撞信息,下面分别介绍一下: bodyA 类型为SKPhysicsBody,表示第一个碰撞接触对象 bodyB 类型同上,表示第二个碰撞对象 conta…
在创建Node的物理对象后,默认情况下物理对象和Node的实际边界相应的非常好,由于此时Node的默认锚点是当中心位置即(0.5,0.5),只是假设我们改变了Node的锚点,就会发现其物理边界还是保持原来的位置,这可不是我们想要的结果: let bouncer = SKSpriteNode(imageNamed: "bouncer") bouncer.anchorPoint = CGPoint(x: 0.5, y: 0) bouncer.position = CGPoint(x: 0,…
我前面早些时候提到物理形状不能被缩放. 现在我却说可以缩放它们,这是为啥呢? 好吧,拥有物理物体节点的缩放属性真心不能被动画化或改变在运行的时候; 但是你可以在SpriteBuilder中设置启用物理属性节点的初始的缩放值,所以在项目published时,它将建立一个物理碰撞形状的一个合适的缩放版本.…
本节主要讲解如何创建无限循环Endless的星空背景(如下图).玩家飞船发射子弹,监测子弹击外星敌机的SpriteKit物理碰撞并消灭敌机,以及应用iOS的CoreMotion加速计移动飞船躲避外星敌机(加速计须用真机测试).   Space Battle 此<宇宙大战 Space Battle>教程共分为三系列, (一)宇宙大战 Space Battle -- 初始建立工程及场景Scene.导入各个SpriteNode精灵.Particle粒子节点及建立背景音乐 (二)宇宙大战 Space…
参考:http://blog.163.com/liang_liu99/blog/static/88415216200952123412180/ 以下的介绍主要针对的是Delphi的面向对象的知识,可能和C++.Java.PHP……其他面向对象的编程语言有一些出入 一.介绍几个概念 说到类和对象,我们不能不提及这样几个概念:类.对象.实例.谈谈“我”的简单理解 对象指的是泛称,自然界的任何实体都可以看成是一个对象 类是以这些对象某些特征而分成的一系列的种类 实例则是特质属于某一个类的一个对象 例子…
类似于Ruby的ruby document,Xcode的Playground自身也提供一些嵌入文档中的格式注释的语法. 我们先定义一个简单的类: class A{ } 按住opt点击class A,你会发现啥都没有 我们在class A上面增加一行注释,只不过有别于单行注释的//,我们用的是/// ///A simple class that does some stuff you want it to do 现在描述具体多了吧. 接下来我们在类中添加一个方法: ///Does somethin…
首先判断问题出现在Star的类方法doStickShorterWork中,于是逐步分词注释代码,最后剩下如下代码: +(void)doStickShorterWork:(Stick *)stick{ GameScene *gameScene = [GameScene sharedGameScene]; CCPhysicsNode *physicsWorld = (CCPhysicsNode*)stick.parent; @synchronized(gameScene){ if ([stick.n…
,因为将反弹棒变长和缩短的代码是类似的所以我们只看一个即可,就让我们详细看看缩短的方法吧. +(void)doStickShorterWork:(Stick *)stick{ GameScene *gameScene = [GameScene sharedGameScene]; CCPhysicsNode *physicsWorld = (CCPhysicsNode*)stick.parent; @synchronized(gameScene){ if ([stick.name isEqualT…
如第一篇文章中图片所示,该游戏是一个弹球游戏. 玩法很简单,屏幕底部有一个反弹棒,用来确保小球不掉出屏幕同时反弹小球撞击屏幕上方的砖块. 玩家可以触摸屏幕来左右移动反弹棒. 等等!还不是这么简单,当小球击中特殊的砖块时会掉出特定的道具五角星.用反弹棒接触道具会有特殊的效果;目前有2种效果: 1.红色的五角星反弹棒会变长10秒钟 2.黑色的五角星反弹棒会缩短10秒钟 反弹棒是一个附有物理对象的节点(Node),在SpriteBuilder中是不可以放大或缩小一个附带物理对象的Node的.为了实现反…
最近在写的BrickHit游戏App中出现了一个比较头疼的问题. 该问题很难用常规手段调试,因为其发生看起来貌似是随机的. 我想在这里将这个问题的现象和解决过程详细的记录下来,一来避免其他童鞋走弯路,二来自己以后也可以参考. 所谓我看到的僵尸物理对象,我的定义是打开物理node调试后,可以在屏幕上看到该对象,该对象没有实际外形,我把它理解为没有SpriteFrame.但实际遍历物理node的子对象根本找不到该物理对象. 可能表述不是很清楚,简单来说,就是一个不在物理node中的物理对象,没有外观…
注意:打开物理使能(Physics-enabled)的节点忽略他们的父节点关系. 这意味着,一个物理使能的子节点不会随着其父节点移动. 物理引擎对于节点父子关系这个概念毫不知情,因此单独的对待所有物理使能的节点,意味着这些节点与其他节点相互独立. 我强烈建议你在设计所有复杂物理对象的时候抛开任何其所谓的父子关系,除非子节点没有物理使能并且其应该跟随其物理使能的父节点. 你将在Spring object(弹簧对象)的章节中看到对应的例子.…
游戏中的对象按照物理规律移动,体现重力.引力.反作用力.加速度等物体特性,实现自由落体.摇摆运动.抛物线运动,以及物理碰撞现象的模拟.用于模拟物理碰撞.物理运动的引擎称为物理引擎. 来自瑞典斯德哥尔摩大学的Stefan Hedman基于JavaScript,开发了一款面向HTML游戏的2D物理引擎,P2物理引擎.P2和Box2D物理引擎一样,集成了各种复杂的物理公式和算法,帮助实现碰撞.加速.自由落体等物理对象的模拟. P2是一个开源项目,可在GitHub下载,使用build中的p2.min.j…
SQL Server中STATISTICS IO物理读和逻辑读的误区 大家知道,SQL Server中可以利用下面命令查看某个语句读写IO的情况 SET STATISTICS IO ON 那么这个命令的结果显示的物理读.逻辑读的IO单位大小是多少,比如结果显示有 物理读取 次 是代表 对硬盘做了1次物理IO吗? 在回答这个问题之前,需要先普及几个常识 在一般默认情况下 Windows的内存分页大小单位是4KB 数据库的最小读写单位是 8K页面 Windows操作系统的NTFS文件系统最小读写单位…
就是问,在面向对象思想里,先有对象还是先有类,乍一看和先有鸡蛋还是先有鸡是一类问题,其实不然!这个问题,在lz考研复试的时候被面试官问过,一模一样,如今又在一个笔试题里看到了类似的题目,眨一下,有人会说,没有类,哪里来对象呢?其实不然,这个问题很经典,考的就是oo思想和软件工程的意识. 我经历之后的收获:面对问题,首先分析提问的角度,看清问题 这样问,显然对方是在考察被考者,oo思想掌握程度和软件工程的意识,都说在OO中,换句话就是在面向对象思想里(包含各行各业)……自然不需要在乱想什么内存角度…
在 Javascript中prototype属性的详解 这篇文章中,详细介绍了构造函数的缺点以及原型(prototype),原型链(prototype chain),构造函数(constructor),instanceof运算符的一些特点.如果对prototype和构造函数不熟悉,可以前往Javascript中prototype属性的详解 和 Javascript 中构造函数与new命令的密切关系 仔细的品味品味.先来做一个简单的回顾. 首先,我们知道,构造函数是生成对象的模板,一个构造函数可以…
JSON.parse()用于从一个字符串中解析出json对象. var str = '{"name":"huangxiaojian","age":"23"}' ; JSON.parse(str); // age: "23" name: "huangxiaojian" 2.JSON.stringify()用于从一个对象解析出字符串. var a = {a:1,b:2 }; JSON.str…
function clear1(flag) { //获取页面中所有的input对象 var inputs = document.getElementsByTagName("input"); for(var i = 0; i<inputs.length; i++){ //获取一个input对象 var input = inputs[i]; if(input.type == "text"){//如果是文本输入框的input对象 if(getTableId(inpu…
powershell中使用超大内存对象 简单介绍了powershell中超大内存对象的用途,开启powershell超大内存对象的办法. powershell 传教士 原创文章 2016-12-31 允许转载,但必须保留名字和出处,否则追究法律责任 powershell 2GB large object .net 大对象 前 言 问:powershell中,哪些对象有可能会占用大内存? 答: stringbuilder对象,大数组arraylist,hashset等. 问:powershell中…
转载自http://joeyio.com/2013/07/22/xcode_key_binding_like_eclipse/ Xcode自定义Eclipse中常用的快捷键 22 July 2013 之前在用Eclipse写Java的时候,有几个常用的快捷键,比如删除当前行,在当前行下面插入空行,向上/下移动当前行等等,到了Xcode里怎么也找不到这些快捷键,一直觉得Xcode自带的快捷键不够强大,直到今天才知道不借助第三方的插件,在Xcode下完全也可以实现这些功能,下面就说一下如何来做. 首…
在javascript中对参数处理: 1 <script> 2 function getParam() 3 { 4 urlInfo=window.location.href; //获取当前页面的url 5 intLen=urlInfo.length; //获取url的长度 6 offset=urlInfo.indexOf("?"); //设置参数字符串开始的位置 7 strKeyValue=urlinfo.substr(offset,len); //取出参数字符串 这里会获…
1.无论怎样尽力,我们总是会使用到某些需要大量内存的数据,而这些内存并不需要经常访问.或许你需要从一个大文件中查找某个特定的值,或者算法需要一个较大的查询表.这时,你也许会采用2中不太好做法:第一种是创建一个本地变量,然后在每次执行该算法时都生成一大块垃圾:第二种则是创建一个成员变量,在很长一段时间内都占用着这一大块内存.很多时候这两种做法都不是非常好. 2.有没有一种好的选择来处这个问题呢?答案是创建弱引用,弱引用的对象和垃圾对象差不多,程序会告诉垃圾收集器该对象可以被回收,不过在回收之前你仍…
这篇博客的路线是由深入浅,所以尽管图画的花花绿绿的很好看,但是请先关注我的文字,因为初接触类的小伙伴直接看类的实现可能会觉得难度大,只要耐着性子看下去,就会有一种“拨开迷雾看未来”的感觉了. 一.python中类和对象的概念 首先,我们先来说说什么是类.看了很多关于python类的介绍,大多都介绍如何使用,但是对于概念却一笔带过,一个初学编程的小伙伴很难理解. 概括的说:类可以比作是某种类型集合的描述.然而这中抽象的描述,对于初学者来说并没有什么卵用. 今天就来详细的说说: 我们把一类相同的事物…
按照先前从网上看到的参考,开通了开发者账号之后,要先在本地生成一个request文件,然后上传苹果开发者网站,然后在官网上生成一个证书.cer文件,拿这个文件在本地生成p12文件,然后就是一堆鸡零狗碎的操作,比如加设备之类的. 在xcode 5.0中,在preferences菜单项打开的窗口中,选中Account标签页,把自己的账号加进去. 如果已经开通了开发者账号,直接在xcode organizer弹出的窗口中,选设备选项卡,然后选中要拿来做开发的设备,右键菜单,“add device to…
注:这篇文章写得很好.加底纹的是我自己的理解 python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性(特征)和行为来描述一个对象的.比如家里的小狗,它的颜色,大小,年龄,体重等是它的属性或特征.它会汪汪叫,会摇尾巴等是它的行为. 我们在描述一个真实对象(物体)时包括两个方面: 它可以做什么(行为) 它是什么样的(属性或特征). 类是用来规范和描述实体对象的.类描述了类对应的每一个对象的属性.如人类,…
buffer cache中,各个object对象占用的buffer blocks: COLUMN OBJECT_NAME FORMAT A40 COLUMN NUMBER_OF_BLOCKS FORMAT 999,999,999,999 SELECT o.OBJECT_NAME, COUNT(*) NUMBER_OF_BLOCKS FROM DBA_OBJECTS o, V$BH bh WHERE o.DATA_OBJECT_ID = bh.OBJD AND o.OWNER != 'SYS' G…
以上内容来自:http://wenku.baidu.com/link?url=haeRBhswlEcqddk48uW8YVMsdFNWsllimn_dzUYchb6G9NdT4pqgluCpnLQIdWkLSAtG5MFlt8DAkO1Vf12YVyw85A2AaBR9OPbdv6ddgju 感觉写的不错,复制过来: 类的指针:他是一个内存地址值,他指向内存中存放的类对象(包括一些成员变量所赋的值).    对象,他是利用类的构造函数在内存中分配一块内存(包括一些成员变量所赋的值). 在应用时:…
在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等) 方法一 在for-each循环中使用entries来遍历 这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. Map<Integer,…