- 博客(35)
- 资源 (1)
- 收藏
- 关注
原创 Redis构建分布式锁(加锁、解锁)通用函数
Redis构建分布式锁(加锁、解锁)通用函数use Util\RedisUtil;class Index {function redis() { $keyname = 'usr'; $redisObj = new RedisUtil('127.0.0.1', 6379); $start = $this->getMillisecon...
2019-05-28 16:24:21
563
原创 Phaser游戏框架与HTML Dom元素之间的通信交互
本想按照PHASER的HTML Dom元素官方实例:http://labs.phaser.io/index.html?dir=game objects/dom element/&q= 来创建HTML DOM元素,但this.add.dom 一直提示错误,无奈直接用HTML5的语法来创建DOM元素,然后在Phaser内获取该DOM元素,也不用再使用第三方的Phaser Html Input插...
2018-12-29 11:36:49
596
原创 Phaser Matter Collision Plugin 碰撞插件 -- iFiero技术分享
Phaser 自带的Arcade虽然易用,但复杂的物理碰撞明显就不够用了,于是Matter等物理引擎还是不得不学的,以下是Matter物理体碰撞的一个插件,它省去了我们判别两个物理体相撞后哪个是gameObjectA和gameObjectB,实在是好用又省心,特推荐如下:引入插件:const config = { // ... physics: { default: "mat...
2018-12-13 14:17:00
789
原创 Phaser3跟随自定义路径移动的赛车 -- iFIERO游戏教程
在线预览:http://www.ifiero.com/uploads/phaser/pathrotate/代码:var config = { type: Phaser.AUTO, width: 720, height: 520, backgroundColor: '#2d2d2d', parent: 'phaser-example', scen...
2018-12-07 17:24:48
953
原创 用EC5/EC6自定义class的区别及用法 -- Phaser3网页游戏框架
EC6 自定义classclass Brain extends Phaser.GameObjects.Sprite { constructor (scene, x, y) { super(scene, x, y); this.setTexture('brain'); this.setPosition(x, y); }...
2018-12-04 16:12:43
480
原创 Phaser3让超级玛丽实现轻跳、高跳及加上对应的跳跃声音
在线测试地址:http://www.ifiero.com/uploads/phaserjs3/jumper/空格键:轻按:跳低 ,长按:跳高键盘:–> 向右 , <-- 向左请确保已打开电脑的音乐开关var config = { type: Phaser.AUTO, width: 650, height: 450, parent: "ifie...
2018-12-03 10:55:34
1720
原创 PHASER3 设置场景SCENE SLEEPING休眠和WAKE唤醒
A good way to set scene stop when hidden and run while visible again !使用sleep和wake方法的好处:1.可以彻底让scene场景彻底休眠2.update function不会再运行3.同时会暂停场景内的Timer事件GameScene.js代码// phaser version 3.15.0// 监听是否当前...
2018-11-20 18:00:22
952
原创 Phaser3游戏三角学应用--一只跟随屏幕点击位置游动的鱼
资源图:代码var config = { type: Phaser.AUTO, parent: 'iFiero', // game id; html中为 <div id="iFiero"></div> width: 500, height: 380, scene: { preload: preload, ...
2018-11-15 13:15:59
928
原创 PHASERJS3 应用对象池随机产生炸弹并销毁 -- JavaScript Html5 游戏开发
scene.js/// &lt;reference path="../../libs/phaser/phaser.min.js"/&gt; 'use strict';var BootScene = new Phaser.Class({ Extends: Phaser.Scene, initialize: function BootScene() { ...
2018-11-09 16:05:19
646
原创 Phaser3 场景Scene之间的传值 -- HTML JAVASCIRPT 网页游戏开发
一、首先当然得有至少有二个场景sceneA.js,sceneB.js二、从场景A传值到场景B二种方法1)通过事件this.events.emit(‘event key’,{objKey:objValue});从sceneA通过 ths.events.emit时传值到sceneB时有个需要特别注的事项就是,得把sceneB的 active设为 ture,否则因为 sceneB还未激活,是监听...
2018-11-08 15:32:36
1716
原创 Phaser3 屏幕适配iPhoneX、iPhoneXS的坑 -- JavaScript Html5 游戏开发
巨坑:在config内不要把 width 设为 window.innnerWidth在config内不要把 width 设为 window.innnerWidth在config内不要把 width 设为 window.innnerWidth重要的事情得说三遍…var game;// once the window loads...window.onload = function (...
2018-11-07 11:45:00
2554
原创 GameplayKit的GKStateMachine用法与实例
玩家进入GameScene场景中 -> 通过GKStateMachine进入到指定的游戏状态GKState在GameScene场景中 -> 根据不同的逻辑调用GKStateMachine -> 在各个不同的游戏状态GKState之间进行切换源码如下:一、GameScene.swftimport SpriteKitimport GameplayKitclass Ga...
2018-10-11 12:25:56
565
原创 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
此篇文章是对上一篇文章(http://www.ifiero.com/index.php/archives/611)的进一步补充,主要说明如何适配Apple的最新三款手机iPhoneXs、iPhoneXs Max及iPhoneXr !!!回顾:为何要把场景中的所有图片, 都按照屏幕大小为 2048 * 1536 来绘制。 也就是说, 我们的背景图的大小是 2048 * 1536, 其他图片也是...
2018-09-26 22:57:20
32076
原创 Swift使用AVAudioPlayer来调节游戏的背景音乐大小
音乐文件的声音大小有时在做为游戏背景音乐时会过大,而如果我们只是简单应用SKAudioNode来加载音乐的话,是无法进行声音大小的调节的,因此我们必须使用更强大的AVAudioPlayer来进行声音大小的调节。具体实现代码如下: import AVFoundation class GameScene: SKScene,SKPhysicsContactDelegate { priva...
2018-09-17 14:21:09
792
原创 轻量级游戏框架Javascript之Create.js创建形体 + P2.js创建物理体
HTML<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>P2 Physics World</title></head><body>
2018-09-08 18:59:07
845
原创 学好三角学(函数) — SWIFT和JAVASCRIPT游戏开发的必备技能 iFIERO.com
不论是使用哪种平台进行开发,三角学在游戏当中都被广泛的使用,因此,小编iFERO认为,三角学是必须得掌握的技能之一。先以Javascript为例一、角度与弧度最直观地说,一个 60度 的角,可以用 60°来表示,也可以用 π / 3 (圆周率除以3)来表示;同理,一个 90度 的角,可以用 90°来表示,也可以用 π / 2 (圆周率除以2)来表示;还有,一个 180度 的...
2018-09-06 17:02:44
223
原创 应用UserDefaults储存游戏分数和最高分 - by iFIERO.com
应用UserDefaults储存游戏分数和最高分我们在GameScene.swift里 private var currentScore:SKLabelNode! // 当前分数节点 private var cScore:Int = 0 /// Int 存当前分数 private var highScore:SKLabelNode! // 最高分数 private var...
2018-08-24 11:22:45
359
原创 一步一步图文介绍SpriteKit使用TexturePacker导出的纹理集Altas
1、为什么要使用纹理集?游戏是一种很耗费资源的应用,特别是在移动设备中的游戏,性能优化是非常重要的纹理集是将多张小图合成一张大图,使用纹理集有以下优点:1、减少内存占用,减少磁盘占用;2、减少磁盘读取次数,一次性读取一张大图比多次读取多张小图速度更快 一张大图:打开-读取小图-读取小图-读取小图-关闭; 多张小图:打开-关闭,打开-关闭,打开-关闭,打开-关闭;3、减少Op...
2018-08-21 16:16:16
578
原创 SpriteKit在复制节点时留了一个巨坑给开发者,需要开发者手动把复制节点的isPaused设置为false
根据When an overlay node with actions is copied there is currently a SpriteKit bug where the node’s isPaused property might be set to true提示,SpriteKit有一个Bug需要开发者自己来填。SpriteNode节点在被copy()复制后,会自动被设置为暂停,...
2018-08-04 12:54:44
506
原创 运用GamePlayKit的GKEntity及GKComponent 的iOS游戏开发实例
GameplayKit是一个面向对象的框架,为构建游戏提供基础工具和技术。 GameplayKit包含用于设计具有功能性,可重用架构的游戏的工具,以及用于构建和增强诸如角色移动和对手行为的游戏玩法特征的技术。我们这里主要讲GKEntity和GKComponent这二个类; GKEntity类(实体): 可以容纳很多组件的容器,根据自己的需求来加入相应的Component组件。 ...
2018-07-29 14:02:06
431
原创 SpriteKit手机游戏摇杆JoyStick的使用 -- by iFIERO游戏开发教程
工欲善其事,必先利其器有时候学习如何应用第三方库是非常重要的,因为我们不用再自己重复造轮子,在这里,我们就把原先利用重力感应来操控飞机改为用游戏摇杆joystick来操控,具体的操作如下: // 声明游戏摇杆; private var joystick:AnalogJoystick! // 游戏摇杆; 创建函数,新建游戏摇杆节点,并添加到GameScene中...
2018-07-27 13:35:22
1393
2
原创 SpirteKit深度复制SKSpriteNode节点及convert转换其它Scene上的节点到当前场景坐标
Playground输出的代码 ,注意右侧打印出的SpriteNode输出值,HAPPY_NODE的输出信息一致.//MARK:- 扩展SkSpriteNode属性extension SKSpriteNode { func copyWithPhysicsBody()-&gt;SKSpriteNode{ let spriteNode = self.copy() as...
2018-07-22 16:49:15
384
原创 SPRITEKIT游戏框架之关于PHYSICS物理引擎属性
Spritekit提供了一个默认的物理模拟系统,用来模拟真实物理世界,可以使得编程者将注意力从力学碰撞和重力模拟的计算中解放出来,通过简单地代码来实现物理碰撞的模拟,而将注意力集中在更需要花费精力的地方。现在,让我们来学习这个系统的使用吧。首先需要认识两个类,一个是场景scene的属性类SKPhysicsWorld,这个类基于场景,只能被修改但是不能被创建,这个类负责提供重力和检查碰撞(碰撞需...
2018-07-08 20:20:48
279
原创 (三)宇宙大战 Space Battle -- 场景SCENE切换、UserDefaults统计分数、Particle粒子效果
此《宇宙大战 Space Battle》SpirteKit手机游戏教程共分为三系列:(一)宇宙大战 Space Battle -- 新建场景Scene、精灵节点、Particle粒子及背景音乐(二)宇宙大战 Space Battle -- 无限循环背景Endless、SpriteKit物理碰撞、CoreMotion加速计(三)宇宙大战 Space Battle — 场景SCENE切换、UserDe...
2018-07-07 18:25:48
402
原创 SpriteKit游戏开发适配iPad/iPhone6/7/8/Plus及iPhoneX的尺寸及安全区域
编辑文章未适配前:Ball球超过屏幕的上下方适配后:Ball球就在屏幕的可视范围内运动了一、那么如何适配不同的iPhone、iPhoneX及iPad的屏幕尺寸呢?我们开发一个App的时候, 通常希望它在 iPhone, iPad, Mac上同时能运行, 尤其是游戏。这样就需要我们考虑不同设备不同的分辨率,但处理起来比较麻烦,比如说,按照官方的做法,我们需要提供诸如 ifiero@1x,ifiero...
2018-07-05 21:18:46
1774
原创 iFIERO - (二)宇宙大战 Space Battle -- SpriteKit 无限循环背景Endless、SpriteKit物理碰撞、CoreMotion加速计
本节主要讲解如何创建无限循环Endless的星空背景(如下图)、玩家飞船发射子弹,监测子弹击外星敌机的SpriteKit物理碰撞并消灭敌机,以及应用iOS的CoreMotion加速计移动飞船躲避外星敌机(加速计须用真机测试)。![Space Battle](http://upload-images.jianshu.io/upload_images/3896436-0727250d91e26fa5?...
2018-06-30 17:37:16
558
原创 iFIERO -- (一) 宇宙大战 SPACE BATTLE — 新建场景SCENE、精灵节点、PARTICLE粒子及背景音乐
开始游戏教程前,首先介绍一下SpriteKit是什么?SpriteKit提供了一个图形渲染和动画的基础结构,你可以使用它让任意类型的纹理图片或者精灵动起来。SpriteKit使用传统的渲染循环,在每一帧被渲染之前帧的内容就已经处理好了。你的游戏决定了场景的内容以及场景中的每一帧是如何变化的。SpriteKit利用图形硬件渲染动画的每一帧,即精灵的位置可在每一帧动画中改变。SpriteKit框架渲染...
2018-06-26 15:07:49
382
原创 iFIERO -- 如何应用SpriteKit的Camera实现游戏中的Endless无限循环背景
效果wobbing.pngCamera向右移动camera的节点移动到2048(self.size.width)的时候,把红色框内的节点移动到最右边( node.position.x += self.size.width * SCENE_NUMBERS)/// 查找所有命名为ground的精灵节点 enumerateChildNodes(withName: "//ground") ...
2018-06-24 15:07:25
268
原创 iFIERO -- 如何用SpriteKit实现游戏中的ENDLESS无限循环背景
红色框中的节点bgNode1,SpriteNode的名称Name BG1 位置为Position(0,0)bgNode1 = childNode(withName: "BG1") as! SKSpriteNode黄色框为的节点bgNode2, SpriteNode的名称Name BG2 位置为Position(0,2048)bgNode2 = childNode(withName: "BG2")...
2018-06-22 10:59:14
438
原创 如何精确设置SpriteKit精灵的物理体PhysicsBody
如何精确设置SpriteKit精灵的物理体PhysicsBody ,首先要开启精灵的物理体外框显示,可以直观的在模拟器或者真机上看清楚精灵的物理体外观(精灵周围有一圈兰色的细线)!精灵周围有一圈兰色的细线开启精灵的物理体外框显示精灵物理体精灵物理体脚+手在Scene中的尺寸大小直接使用rectangleOfrectangleOf碰撞不精准碰撞不精准使用精灵物理体本身的texture 当反重力向上时...
2018-06-20 19:22:47
1456
原创 iFIERO -- SkyNinja天猪之城 SpriteKit iOS游戏源码
这是第二款![SkyNinja.gif](https://upload-images.jianshu.io/upload_images/3896436-8488f7fa265bdeb1.gif?imageMogr2/auto-orient/strip)![Snip20180612_2.png](https://upload-images.jianshu.io/upload_images/38964...
2018-06-12 13:08:25
447
原创 iFIERO -- Space Battle 宇宙大战 SpriteKit游戏源码
/* * 游戏中的所有元素全部由iFIERO所原创(除引用之外),包括人物、音乐、场景等, * 创作的初衷就是让更多的游戏爱好者可以在开发游戏中获得自豪感 -- 让手机游戏开发变得简单。 * 秉着开源分享的原则,iFIERO发布的游戏都尽可能的易懂实用,并开放所有源码, * 任何使用者都可以使用游戏中的代码块,也可以进行拷贝、修改、更新、升级,无须再经过iFIERO的同意。 * ...
2018-06-12 00:35:19
601
原创 【Swift】Alamofile网络请求数据更新TableView的坑
写这篇BLOG前,有些话不得不提一下,就仅当发发恼骚吧。。。今天下午为了一个Alamofire取得数据而更新TableView的问题,查了一下午的百度(360也是见鬼的一样),竟然没有一个简单明了的回答,而唯一几个比较接近答案的,说要 self.tableView.reloadData(),也没有贴上代码,说要放在哪个函数内,都犹抱琵琶半遮面,让初学者自己采坑,于是郁闷了一下午,刚刚回到家,试想想,要不试试英文网,毕竟Swift就是人家老外的,说不定老外会告诉你,怎么取得数据并绑定Table
2017-01-06 19:37:19
762
转载 【Swift】GCD多线程和BlockOperation实用代码块
为了实现对并行任务的进一步控制, 除了GCD之外,iOS还提供了另外一个多线程机制,叫做:Operation Queue
2017-01-01 19:24:43
805
iFIERO -- Space Battle 宇宙大战 SpriteKit游戏源码
2018-06-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人