speed

案例分析:设计模式与代码的结构特性

我的未来我决定 提交于 2019-12-07 15:25:30
一. 什么是策略模式    这里引用百度百科的定义。策略模式是指有一定行动内容的相对稳定的策略名称。策略模式在古代中又称“计策”,简称“计”,如《汉书·高帝纪上》:“汉王从其计”。这里的“计”指的就是计谋、策略。策略模式具有相对稳定的形式,如“避实就虚”、“出奇制胜”等。一定的策略模式,既可应用于战略决策,也可应用于战术决策;既可实施于大系统的全局性行动,也可实施于大系统的局部性行动。 二. 策略模式的优缺点 无论哪种模式都有其优缺点,当然我们每次在编写代码的时候需要考虑下其利弊。 策略模式的优点: 1. 提供了快速替换继承关系的办法:案例中的我们能快速的替换僵尸类,速度,攻击类型。 2. 减少代码中的if else 等判断语句:我们在更换攻击状态的时候不用去判断,当达到某个条件时直接切换攻击实现类就可以了。比如上文中的普通攻击变超级攻击。 3. 实现的选择:策略模式可以提供不同的实现。 策略模式的缺点: 1. 策略模式会造成很多策略类:上文中的所有速度实现类,攻击实现类…… 2. 通讯开销很大:比如我们上面的速度接口的speed需要传递3个参数。这三个参数对有的僵尸类是有意义的,对大部分僵尸无意义,这时候就会造成没必要的通讯开销。 3. 必须自行知道所有的实现类有何不同?每次新建一个僵尸类的时候必须要知道所有的速度类及攻击实现类的不同。此时这些就会暴露出具体的实现问题

cocos2d对动画的各种操作

。_饼干妹妹 提交于 2019-12-06 16:24:36
关于动画的各种操作,总结一下以便以后复习查找。 内容简要: 1、 瞬时动作 2、 延时动作 3、 组合动作 4、动画 5、速度变化 6、函数调用 7、创建动作动画 8、控制动画帧的速度 原文地址: http://blog.csdn.net/dingkun520wy/article/details/7014233 ----------------------------------------------------------------------------------------------------------------------------------------------------- 瞬时动作 :瞬时动作的基类是InstantAction 1、放置位置 CGPoint p = ccp(width,height); [sprite runAction:[CCPlace actionWithPosition:p]]; 2、隐藏 [sprite runAction:[CCHide action]]; 3、显示 [sprite runAction:[CCShow action]]; (效果类似亍 [node setVisible:YES]. 之所以作为一个劢作来实现是为了可以不其 他劢作形成一个连续劢作) 4、可见切换 [sprite runAction:

跟随鼠标的星星实例

人盡茶涼 提交于 2019-12-06 12:36:51
跟随鼠标的星星实例 //设置间距 var jianju:uint=90; //设置移动速度 var speed:uint=2; //复制影片剪辑 for(var i:int=0;i<6;i++){ this["my_xing"+i]=new star(); this["my_xing"+i].x=100+jianju*i; this["my_xing"+i].y=100; this["my_xing"+i].width=85; this["my_xing"+i].height=85; this["my_xing"+i].gotoAndStop(Math.floor(Math.random()*6)) //在舞台显示。 addChild(this["my_xing"+i]) } addEventListener(Event.ENTER_FRAME,genshui); function genshui(e:Event) { //默认情况下第一个星星的位置为鼠标位置,此处35为鼠标的位置往右移动35/speed这么长。 this.my_xing0.x+=(root.mouseX+35-this.my_xing0.x)/speed; this.my_xing0.y+=(root.mouseY-this.my_xing0.y)/speed; //接下来,是最重要的部分

任意值属性 透明度

喜你入骨 提交于 2019-12-06 02:39:07
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>8 任意值属性 透明度</title> <style> body,div{ padding:0; margin:0; } #div1{ width:200px; height:200px; background-color:yellow; border:4px solid #000; opacity: 0.3; } </style> <script> window.onload=function(){ var oDiv = document.getElementById('div1'); oDiv.onmousemove = function(){ startMove(oDiv,'opacity',100); }; oDiv.onmouseout = function(){ startMove(oDiv,'opacity',30); } }; function startMove(obj,attr,iTarget){ clearInterval(obj.timer); obj.timer = setInterval(function(){ var icur = null; //属性值 变量 if(attr == 'opacity'){ icur

任意值属性 多物体宽高

人盡茶涼 提交于 2019-12-06 02:38:01
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>任意值属性 多物体宽高</title> <style> ul,li{ list-style: none; } li{ width:200px; height:100px; background-color: yellow; margin:10px; border:4px solid #f00; } </style> <script> window.onload=function(){ var Li1 = document.getElementById('li1'); var Li2 = document.getElementById('li2'); Li1.onmouseover = function(){ startMove(Li1,'height',400); }; Li1.onmouseout = function(){ startMove(Li1,'height',100); }; Li2.onmouseover = function(){ startMove(Li2,'width',400); }; Li2.onmouseout = function(){ startMove(Li2,'width',200); } };

判断网络环境

狂风中的少年 提交于 2019-12-05 20:17:27
1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head> 7 <body> 8 9 <script> 10 // get the maximum downlink speed 11 // var speed = downlinkmax(); 12 // 13 // // check if it is enough for our amazing feature 14 // if (speed < sufficient) { 15 // disableFeature(); 16 // } 17 18 // (function (window, factory) { 19 // 'use strict'; 20 // if (typeof define === 'function' && define.amd) { 21 // // AMD 22 // define([], factory); 23 // } else if (typeof exports === 'object') { 24 // // Node.js 25 // module.exports = factory(); 26 // } else { 27 // //

三大特性-多态

…衆ロ難τιáo~ 提交于 2019-12-05 15:31:41
1 package Day3.Demo2; 2 3 /** 4 * 体现多态的写法,是下面的run方法,run方法在面向的是一个抽象的Car 5 * 在run方法看来,它只看Car,这个抽象的东西,具体是宝马,还是奔驰,run不关心 6 */ 7 public class App { 8 public static void main(String[] args) { 9 //多态:通俗理解,我要来个人(抽象)帮帮我 10 //多态:是对象多种表现形式的体现,同一个事件发生在不同的对象上会产生不同的结果 11 Car car1 = new Bmw(); 12 Car car2 = new Benz(); 13 //多态:就是同一个接口,使用不同的实例而执行不同操作 14 run(car1); 15 run(car2); 16 17 } 18 /** 19 * 马路在跑车 20 * @param car 21 */ 22 private static void run(Car car){ 23 System.out.println("马路在跑车"+car.getBrand()+"车"); 24 } 25 } 1 package Day3.Demo2; 2 3 public class Benz extends Car{ 4 public Benz(){ 5 super("奔驰",

【cocos2d-js官方文档】五、Cocos2d-JS v3.0的新Action API

前提是你 提交于 2019-12-05 14:59:42
新增action中的方法 以前,当我们需要重复一个action的时候,我们需要: sprite.runAction(cc.Repeat.create(action, 2)); 上面代码中创建了一个新的Repeat对象重新包装action,这样不管在语义上还是代码上都比较难理解。 为什么我们不能像jQuery一样的简单方便的使用原action呢? 于是我们在新版本中为action增加了新的方法: sprite.runAction(action.repeat(2)); 要循环action只需要在action后面增加.repeat(),而不需要和以前一样重新生成一个action,是不是更加方便了? ^.^ 另外,我们还针对action的相关类,增加了更加简单的创建方法,通过类名第一个字母改为小写就能创建出一个新的对象: var action = cc.moveBy(2,cc.p(10,10)); 上面代码等同于: var action = cc.MoveBy.create(2, cc.p(10, 10)) 看到这里,大家一定很担心一件事儿~兼容性。。。 其实,大家不必太过于担心,旧的方法依旧是被支持滴。 为什么要新增API 刚刚提到了怎么调用新的方法,但是为什么我们在现有一套比较成熟的方案下还是在新版本中加入了新的方法呢? 其实这一切都是为了更简单,更符合大家的使用习惯

vue编写轮播图组件

泪湿孤枕 提交于 2019-12-04 18:31:47
<template> <div id="slider"> <div class="window" @mouseover="stop" @mouseleave="play"> <ul class="container" :style="containerStyle"> <li> <img :style="{width:imgWidth+'px'}" :src="sliders[sliders.length - 1].img" alt=""> </li> <li v-for="(item, index) in sliders" :key="index"> <img :style="{width:imgWidth+'px'}" :src="item.img" alt=""> </li> <li> <img :style="{width:imgWidth+'px'}" :src="sliders[0].img" alt=""> </li> </ul> <ul class="direction"> <li class="left" @click="move(600, 1, speed)"> <svg class="icon" width="30px" height="30.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http:/

Java类与对象课后编程题

眉间皱痕 提交于 2019-12-04 18:00:41
p110 CPU.java public class CPU { int speed; int getSpeed() { return speed; } public void setSpeed(int speed) { this.speed = speed; } } HardDisk.java public class HardDisk { int amount; int getAmount() { return amount; } public void setAmount(int amount) { this.amount = amount; } } PC.java public class PC { CPU cpu; HardDisk HD; void setCPU(CPU cpu) { this.cpu = cpu; } void setHardDisk(HardDisk HD) { this.HD = HD; } void show(){ System.out.println("CPU速度:"+cpu.getSpeed()); System.out.println("硬盘容量:"+HD.getAmount()); } } Test.java public class Test { public static void main(String args[]) { CPU