给还没有玩过VPS的推荐几个还算不错的OFFER

推荐还算不错的OFFER

123systems ovz   4.5$  128M 500GBW 10G HD 2xCpu(这并不重要) 入门型练手.  谁也没想到黑五之后更有优惠.

输入优惠码. CYBERMONDAY2015  9$ > 4.5$ 还不错吧. 别忘了用优惠码

step1注册账号: https://123systems.net/billing/aff.php?aff=949

step2隐藏入口: https://123systems.net/billing/cart.php?a=add&pid=101

123system_offer_cyber

vpscheap : ovz  实惠型梯子专用. 10 $

https://crm.vpscheap.net/cart.php?a=add&pid=206

 

igniteservers 12$  然是KVM 的. 稳定型. 750G BW 1xCPU  30G HD 还可以玩WP NODEJS之类的.

已经无货了.

step1注册账号:  https://bandwagonhost.com/aff.php?aff=28 还有15个坑.

step2隐藏入口: https://igniteservers.com/client/cart.php?a=add&pid=228

推荐动手能力强的同学试试. paypal支付就可以.

Read More

SPECIAL OFFER! .COM just $1.49*! support transfer.

cjcrmn149s  is the coupons code.  i just used it.  2014 is over.  the is the best godaddy coupon code dec 2014.

“Plus ICANN fee of $0.18 per domain name per year. $1.49 price good for the first year of one new or transfer .COM per customer. Additional years or .COMs may be purchased for $9.99 per year. Discounts cannot be used in conjunction with any other offer or promotion. Not all payment methods valid with this offer, acceptable payments will display in cart at checkout. Your discount will be applied in your shopping cart. After the initial purchase term, discounted products will renew at the then-current renewal rate. Go Daddy reserves the right to deny use of this offer and/or cancel domains purchased using this offer if the offer is abused or used fraudulently, as determined by Go Daddy in its sole discretion. ”

special tips,

you should change the money to USD$. instead of CNY.

you should use  a valid us billing address.

if so, you can transfer your .com to godaddy . if you just want to renewal your domain.  take it way to save a little money.!

Did you know that GoDaddy just released their NEW Website Builder? It’s easier to use, has hundreds of new designs, and you get a free domain with each annual plan. All for just $1.00/mo! Use my referral code WOWCNSOFT at checkout to get 35%* off anything else you buy and I’ll earn store credit!

Screen Shot 2014-12-29 at 11.14.28 PM

Read More

Give away for Christmas! Free VPN Account . Get free gift from Super Bombe Crush!

Super Bombe Crush Lite is a light action game. Use joystick to control your hero , place bombe , kill monster ,destroy game object. collect stars.find the teleport door. Loot gold coin. gain high score ,challenge yourself.

  1. 20+ funny levels.
  2. Fantasy 3d particle system.
  3. Real 3D game world.
  4. Various game item.

iPad Version is ready for sale.  Universal version will be released soon!  Beta players invitation is going.  send mail to : super.bomber.crush@gmail.com.

As beta player, you can free gold,  play game new feature earlier.  e.g: online feature . !

//Check The GamePlay Video ?

 

 

 

The Rule:

1. Download SuperBombeCrush from iTunes.  playing for a while.    +5%  chance    Apple Store

2. Write your experience. feeling. advice.  if you can write review directly, you will get 20% chance.

3. Comment here. and  mail to   super.bomber.crush@gmail.com .

4. On Christmas Holiday,  we will send rewards . show result here.   of course, we will random choice from the user list.  so , hurry do it!

The V P N account will be sent to you, and you can use it  watch You Tube . Facebook, Twitter.  you know it.!!!

2014-12-08. Game Start!!!

Read More

使用TexturePacker 制作动画的贴图 导出在 SpriteKit 中使用.SpriteKit Animations and TextureAtlasses,Use TexturePacker.

作为经常使用的工具, TexturePacker的确是很方便的打包贴图的工具. 打包可以减少DrawCall次数.对于提升性能有很大作用.而且作者很友好,如果是开发阶段使用, 可以申请免费的授权. 当然,如果产品赚了钱都应该买一份正版.SpriteKit是ios7新的特性,为2D游戏开发而做, TexturePacker也推出了一个示范的实现,整合在一起. 工具化,制作流程规范化是趋势. 你out了么.

ios7 SpriteKit 开发者指南. http://upyun.cocimg.com/cocoachina/SpriteKit_PG.pdf

TexturePacker 下载: http://www.codeandweb.com/texturepacker/download

支持的真多啊: Cocos2d SpriteKit Corona SDK Starling Unity3D Flash / AS3 CSS / HTMLLibGDX AndEngine Moai Cocos2d-X XNA PlayStation® Suite V-Play

SpriteKit Animations and TextureAtlasses

http://www.codeandweb.com/blog/2013/09/23/spritekit-animations-and-textureatlasses

使用TexturePacker 制作动画的贴图 导出在 SpriteKit 中使用.

The main advantages over the pure Xcode solution are

  • Organizing your sprites in folders
  • Importing multiple formats such as PNG, PSD, SVG, SWF
  • Compile time checks for sprite names
  • Creating animations with a single line of code

纯Xcode的优点:  在目录里自己组织Sprites /可以同时导入各种格式. png psd  svg swf / 编译时检查sprite 资源名字 /一行代码完成动画创建.

Let’s start with how to easily create your atlas.

下面就开始示范如何创建 atlas

Create your SpriteKit atlas with TexturePacker

To create a new SpriteKit atlas, simply start TexturePacker and drag & drop the directories containing your sprite images to the Sprites area of TexturePacker. TexturePacker will automatically load and lay out all image files:

拖拽sprites文件夹到 TexturePacker 窗口即可. 导入资源. 如下图.

Select SpriteKit in the Data Format field, and enter a path to which the atlas bundle should be written. Parallel to this .atlasc file TexturePacker generates a .h header file which contains useful macros for easy SKTexture creation. If you choose the Xcode project directory as output here, the generated header file is automatically found in the include path.

选择导出格式. 设置导出路径以及导出的模板. 推荐导出到Xcode的工程目录里面. 直接就可以include 了.

To use the published sprite sheet in Xcode, drag and drop the .atlasc bundle and the generated .h header file to your Xcode project:

导出后, 需要加入  .atlasc  .h 文件到工程里. 方法如下, 拖拽到Xcode 的窗口里.

Xcode asks how the folder should be added. If you create a folder reference, the Xcode project is automatically updated in the future if the altascbundle changes (e.g. additional sprite sheets are added).

然后, 在对话框里, 选择 create folder references for any added fodlers   以及 确认  add to targets 选中.  这样资源文件才会在打包时包含到App里.

Creating a SKSpriteNode from the texture atlas

演示使用 textureAtlas 创建. SKSpriteNode

Creating a textured sprite is quite easy, just load the texture and use the SKTexture object when creating the sprite node:

很简单就是用 SKTexture

texture = [SKTexture textureWithImageNamed:@"Background"];
sprite = [SKSpriteNode spriteNodeWithTexture:texture];

The first line loads the sprite—looking for a single sprite in the file system— and if not found searching all sprite sheets available to the application.

The second line creates a sprite object using the specified texture.

Adding compile-time checks to your SpriteKit project

As the texture image is referenced by its file name, typos in its name or a mismatch due to a reorganized texture atlas cannot be detected at compile-time.

因为texture 是一个文件名. 所以没办法在编译时检查某些贴图资源不存在的情况. 毕竟这是逻辑状态. 比如 “button1”  你可以用不存在的贴图资源创建对象. 只有运行时才会报错. 编译时检查不出来的.

TexturePacker 提供了一个变通的解决方法. 引入了一个头文件  如果你使用了不存在的资源名字. 就会报错了. 当然也需要你使用常量去创建对象. 比如  __BUTTON__ 而不是 “button1“ 后者的话还是会有问题的.

SpriteKit replaces missing images with a dummy graphic which might look strange. Imagine what this would mean for you if it accidently reaches the AppStore…

TexturePacker helps you avoid this: with compile-time checks!

TexturePacker creates a header file together with your atlas. You can simply import it using:

#import "sprites.h"

The file contains all sprite names used in the atlas as a #define. It also defines a macro for each texture image which creates the corresponding SKTexture object.

#define SPRITES_SPR_BACKGROUND       @"Background"
#define SPRITES_SPR_CAPGUY_TURN_0001 @"capguy/turn/0001"
#define SPRITES_SPR_CAPGUY_TURN_0002 @"capguy/turn/0002"
...
#define SPRITES_TEX_BACKGROUND       [SKTexture textureWithImageNamed:@"Background"]
#define SPRITES_TEX_CAPGUY_TURN_0001 [SKTexture textureWithImageNamed:@"capguy/turn/0001"]
#define SPRITES_TEX_CAPGUY_TURN_0002 [SKTexture textureWithImageNamed:@"capguy/turn/0002"]

Using these defines, creating a sprite is a 1-liner:

通过定义好的头文件创建 SKSpriteNode  即 Sprite 我们需要的动画精灵.

SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithTexture:SPRITES_TEX_BACKGROUND];

If you now rename the sprite and publish the sprite atlas from TexturePacker, the definition also changes its name. When compiling in Xcode you get a compiler error about a missing sprite.

注意: 如果你修改了定义的名字. 会有编译错误.  需要手动修改成新的动画的名字. (老的被删除了)

Simplifying SpriteKit’s animation handling

Sprites are considered as animation if they end with a number—e.g. img_01img_02, etc. For these an NSArray object with all textures of the animation is defined.

#define SPRITES_ANIM_CAPGUY_TURN @[ 
        [SKTexture textureWithImageNamed:@"capguy/turn/0001"], 
        [SKTexture textureWithImageNamed:@"capguy/turn/0002"], 
        [SKTexture textureWithImageNamed:@"capguy/turn/0003"], 
        ...
SKSPrite 用数组来管理帧. 如上.

This makes it extremely simple to animate sprites:

SKAction *walk = [SKAction animateWithTextures:SPRITES_ANIM_CAPGUY_WALK timePerFrame:0.033];
[sprite runAction:walk];
初始化一个动画Action 如上. SKAction 是一组动画帧. 代表一个状态. 比如walk.

No more adding single frames, no more worrying about missing animation phases!

Enhancing the animation with additional frames—or removing frames—doesn’t require you change the code at all: TexturePacker always fills in the right frames.

Using SKActions to move the sprite

用SKActions 来移动sprite吧.

For our sample application we use two animations:

  • walk (left to right)
  • turn (right to left)

These animations can be created as mentioned above:

SKAction *walk = [SKAction animateWithTextures:SPRITES_ANIM_CAPGUY_WALK timePerFrame:0.033];
SKAction *turn = [SKAction animateWithTextures:SPRITES_ANIM_CAPGUY_TURN timePerFrame:0.033];

Due to the enormous width of the iPad display we have to repeat the animation a few times:

SKAction *walkAnim = [SKAction sequence:@[walk, walk, walk, walk, walk, walk]];
用重复的Action 实现新的组合动画.. 如上.. walk ,walk ...
Note As SpriteKit does not allow repeat actions to be nested, we cannot use [SKAction repeatAction:count:] here, this would conflict with [SKAction repeatActionForever:], see below. This is why we implement the action as a sequence of walk actions.
注意: 因为 SpriteKit 不允许 重复的actions 被嵌套循环.
In the animation CapGuy walks without moving forward. We need a move action to move the sprite from left to right, and back. The action gets the same duration as the animation itself:
SKAction *moveRight  = [SKAction moveToX:900 duration:walkAnim.duration];
SKAction *moveLeft   = [SKAction moveToX:100 duration:walkAnim.duration];

We have only an animation with CapGuy walking from left to right, but not in the other direction. So we use a scale action with scaling factor -1 to get a mirrored animation. Another action is needed to set the scaling back to 1:

SKAction *mirrorDirection  = [SKAction scaleXTo:-1 y:1 duration:0.0];
SKAction *resetDirection   = [SKAction scaleXTo:1  y:1 duration:0.0];

All action which are put into a group are executed in parallel. We are not only adding the walk and move actions to a group, but also the mirror /reset actions. They have a duration of 0 and are executed at the beginning of the group, so their scaling factor has direct impact on the walk /move actions:

所有的action 是并行执行的. 通过在开头加入 mirror/reset 来实现改变方向.

SKAction *walkAndMoveRight = [SKAction group:@[resetDirection,  walkAnim, moveRight]];
SKAction *walkAndMoveLeft  = [SKAction group:@[mirrorDirection, walkAnim, moveLeft]];

Now we combine walkturn actions into a sequence, and repeat this sequence forever:

self.sequence =
  [SKAction repeatActionForever:[SKAction sequence:@[walkAndMoveRight, turn, walkAndMoveLeft, turn]]];
上面我们把走和转向混合起来.然后一直执行它.

Applying SKAction to multiple SKSpriteNodes

SKAction objects can be used for many sprites in parallel. In our example we want to create a new CapGuy sprite each time the user touches the screen. We have to create a new SKSpriteNode only, and run the action on it which we created in the section above:

SKAction作为数据可以给多个SKSPrite对象来使用. 下面的例子实现了 每次点击 新建一个自动走的精灵的.

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithTexture:SPRITES_TEX_CAPGUY_WALK_0001];
    sprite.position = CGPointMake(100, rand() % 100 + 200);

    [sprite runAction:sequence];
    [self addChild:sprite];
}

The complete SpriteKit sample

如图,你可以看到很多精灵人物走来走去.

Source code available for download

The source code is available on GitHub. Either clone it using git:

Read More

利用程序彩蛋实现无VPS挂机Vagex赚美元.

今天我将告诉你最无脑的赚美元的方法.

1.需要你在操作VPS挂机VAGEX 赚美元项目.

2.有IOS设备. iphone ipad ipod touch

3.想从繁琐的手工操作中解脱出来.

4. 从AppStore下载 LazySocialTalker.

然后按如下方法操作.

切换到Help界面, 用手指滑动屏幕, 做出 Check的手势.

于是你会看到一个对话框. 提示你 Got Gesture “

切换到Setting界面,  你会看到多了一个 Vagex ID的文本框.  单击后可以编

辑设置为你自己的 Vagex ID

保存后,双击VagexID Item 会自动转向 内嵌的浏览器. 并打开  Vagex.com 提示你登陆. 你输入密码就好了. 记着选择保存登陆信息.后面全靠它了。

开始使用之前, 要到Settings界面里,双击 Facebook 和 Twitter 分别进行授权操作.  授权后,就可以实现一键发送和验证  Vagex的Link 的功能.

于是平时需要几分钟,关键是很繁琐的手动操作 就变得很简单了,  一步就可以达成. !!

上个图

Read More

FREE Resources to help you finsih your game demo…

FREE Resources to help you finsih your game demo…

Hey guys! You didn’t think I’d set you all to task and not offer a helping hand did you?

Well here are a few great resources that can help you get started or add a few bits to your games to help you realize your concepts.

A lot of this stuff is either Royalty Free or Creative Commons or Public Domain even. Have a look for yourself, I’m splitting up these links into their areas of use.

Music

Incompetech (big music catalog. search by genre or feel)
RoyaltyFreeMusic.com (mainly royalty free for a flat cost, but they have a free section. worth a look still!)
FlashKit.com (intended for Flash projects, but has quite a large library of music loops)

Sound Effects

SoundDogs.com (big big sound effect DB)
SoundBible.com (another resource, but not as big as SoundDogs)
ACIDplanet.com (for musicians, but they release sets of samples each week. the odd sample would make a good SFX & esp. good if you are making a musical game)

Graphics

OpenGameArt.org (a whole collection of free sprites–2D and 3D, tiles and other assets free for use)
WidgetWorx’s SpriteLib (a single ZIPped collection of sprite meant for use to get started, taken from older iOS and OS X game projects)
Lost Garden (Daniel Cook’s infamous Epic Megagames sprites and other newer offerings. He’s been pretty good to the game dev community and here is some of his work.)

There are a lot of ones that I like to dig through and have a search when making my prototypes, but you can of course find others out there. You can even just use Google it’s self to search for something specific, though sometimes I have found that to be a little time consuming if it’s a really rare or unusual thing your looking for.

Such as… Here is a blog post I found that has all kinds of links to other such resources: http://letsmakegames.org/resources/a…me-developers/

Enjoy and don’t get too caught up in all the assets and forget about YOUR vision of your game entry! 

Found any other great resources, why not share?

Read More

[糊说]苹果审核那些事1,新增加了Kids分类.

收到邮件.告知正式加入了支持细分年龄的Kids  5岁以下, 6-8岁 9-11岁.. 貌似11岁以后就不是Kids?哈哈.
  • Ages 5 & under
  • Ages 6–8
  • Ages 9–11
  • You can only choose one age range for each app. Apps approved for the Kids category will still have a primary and secondary category, but will also appear in a new, separate area of the App Store. To assign the Kids category to an already existing app, submit a new version of your app for review. Starting this fall, the currently existing Kids subcategory for game apps will no longer be displayed on the App Store.

旧的App需要传一个新版本才可以有机会修改. 为啥不支持直接修改呢? 流程决定的貌似.没有下线模式.

从最近接触到的几个事情, 审核规则还是得自己去读一下原文,然后好好理解, 切莫道听途说.

请大家随时保持关注. 只有熟悉规则才可以最大化收益.

几个提示:  kivy 是基于Python,也上线了,说明什么?  Lua是脚本,使用Lua的也可以上线. 更别说那些插屏广告的  积分墙的. 都能上线.

Read More

Open Source or Developer Friendly . you are the world.

开源,还是开源, 最近接触和使用的都是开源的技术. 越发的体会到巨大的价值. 如果非要说的邪恶一点, 那就是在人生路口选择上船. 即便是免费船票, 也可以有豪华邮轮. 无非是后期还贷. 但当你已经具备还贷能力的话, 这一些就不算什么了.

这就是开源的一种驱动模式. 对开发者投资. Developer friendly.

有很多项目即使是闭源的, 但也保持了 Developer friendly.  比如 NewRelic 的免费T恤. 只有真正的开发者才可能参与的活动. 过滤掉了一群无关Greek 人肉党.

开源的第二个模式是, 培养用户的习惯. 结果是会造成用户学习其它技术的曲线会无形中变高 , 然后随着年龄增大, 越发的会沉浸在使用的快乐中. 占领开发者, 让开发者为自己的平台做产品,做应用.  反正缺的就是精品, 也不怕市场变成汪洋大海.

开源其实是天生Developer  friendly 的. 因为是程序员开发的, 多少都会对同类心存善念.   当你越过了开源这道坎, 你就真的成熟了, 因为你看到了产品和技术的差异, 以及之间的技术鸿沟.  归根到底, 开源可以星星之火来燎原, 毕竟一家独秀 也不见得用户买单. 思维枯竭, 不可跨越的瓶颈, 都会成为潜在的杀手, 扼杀着每个团队.  我想制作了一款成功游戏, 然后就一蹶不振的例子也不少了.  而啥没有一鼓作气呢?   我觉得就是遇到了不可跨越的瓶颈.

Marmalade 这个引擎, 推出了一个活动, 提交一款BlackBerry10应用并上线, 就可以免费使用1年. 这个case 是个很好的 Developer friendly 的, $499 其实是虚的不存在的.  Marmalade 没花一分钱, BlackBerry 也没有. 只有开发者花了很多时间成本.  然后获得了一年授权,和免费的BlackBerry帐号.   当然还有销售赚钱的美好前景. 收益最大的还是前两家.

所以现在看看 苹果提供的 3/7分成方式是不是有点邪恶呢.  他不光赚设备钱 还得赚开发者未来的钱.  每年还99$这种小钱都不放过. 也许这就是强势最好的诠释. 而且的确阻止了很多人前进的步伐. 剩下的都是弥笃的坚定者. 产品自然也更可能是棒的.  生态圈的口碑好,赚钱也就更容易. 花得值是用户是否花钱的一个理由.  所以, 苹果不是邪恶的, 在试图维系生态圈的良性发展. 用经济杠杆.   也许某一天 $99  可以赊账, 代价肯定是利息会更高. 那时候,你就会毫不犹豫的选择$99了.

我相信闭源项目也都有一颗开源的心. 可能是出于维护成本和保持项目的简洁等等.  所以我又想起我以前设想的深度开源的模式. 即有限范围内的开源. 比如针对已有产品的团队 等等. 交换和交流结合. 大家好,才是真的好.

Read More

iPad上最方便的看片方法. 离线空间 迅雷 HD是亮点

利用迅雷离线空间, 可以轻松下载常见片. 不知道为啥没有网警去扫迅雷的服务器.

然后在iPad上登录 迅雷云HD  浏览离线空间,  下载. 自带所谓的加速取回, 实际上就是正常没限速模式. 亮点是支持在线转码. 片源文件尺寸有时很大. 转成高清 标清 就非常小. 400M的AVI原始文件 经过转换只有80M 还不影响观看效果. 俺不是高清控, 看完就删你懂的.

下载之. (重复性越多,越节省资源)

最近没有想看的片是真的.. 找不到那种让我心动的片子了.

Read More