pixi 小游戏_pixi2d小游戏跳一跳源码/pixi教程,基于pixi-spine的2d游戏

pixi 小游戏_pixi2d小游戏跳一跳源码/pixi教程,基于pixi-spine的2d游戏jump gammer 这很简单 先这样再这样 哈哈哈 做的时候就各种红了 这个项目是我上一年参加虎牙小程序比赛 留下的 不知道现在虎牙小程序凉凉了没 那时候遇到了各种部署上去的问题 通宵了两晚修改 pixi 和 pixi spine 的源码 遗憾的是错过了比赛提交的时间节点 所以这就是 那个 stone 人物踩在上方的 落脚物 为什么是 HuyaLogo 的原因 所以把这个项目拉出来

jump-gammer

68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6e706d2d76362e31332e312d626c756568747470733a2f2f696d672e736869656c64732e696f2f62616467652f747970657363726970742d76332e342e332d626c756568747470733a2f2f696d672e736869656c64732e696f2f62616467652f7675652d2d636c692d76332e31312e302d626c756568747470733a2f2f696d672e736869656c64732e696f2f62616467652f6e6f64652d7631302e302e302d626c756568747470733a2f2f696d672e736869656c64732e696f2f62616467652f506978694a532d76352e302e302d677265656e

这很简单,先这样再这样(= = 哈哈哈,做的时候就各种红了)。这个项目是我上一年参加虎牙小程序比赛,留下的(不知道现在虎牙小程序凉凉了没)。 那时候遇到了各种部署上去的问题,通宵了两晚修改pixi和pixi-spine的源码,遗憾的是错过了比赛提交的时间节点。所以这就是, 那个stone(人物踩在上方的,落脚物)为什么是HuyaLogo的原因。

所以把这个项目拉出来,修改成web页面,http升级成websocket,做个基本游戏的示范教程吧。

项目示例,欢迎提issues。

预览图

68747470733a2f2f7265732e7073792d312e636f6d2f4669414f7a41525a557757754e3746325441624f395f3553334b3356

68747470733a2f2f7265732e7073792d312e636f6d2f46743736677774337a6f74635974433544666c33556d57336c374671

68747470733a2f2f7265732e7073792d312e636f6d2f4669675064744a596274774f554450346f65394a4779542d2d644233

Demo Getting Started

# npm i

# npm run serve

git clone 服务器url

# npm i

# tsnd –respawn ./src/serve-1.0.1.ts

完成,哪里报错改哪里(比如服务器url,需要直接修改下)。

工具

mvc或者mvvm框架,自己喜欢就行,用自己熟悉的。

PixiJS,PixiJS是啥? PixiJS是一个超快的2D渲染引擎。它自动侦测使用 WebGL 或者 Canvas。开发者无需专门学习 WebGL 就能感受到强大的硬件加速的力量。 emm,反正就是一个很厉害的东西(某厂哒哒最喜欢PixiJS了,我一开始研究他们的H5,他们就是用PixiJS实现各种好玩的交互的)。

pixi-spine,骨架。使制作好的动画可以加载于Pixi,可以调用方法来进行动画播放。

TypeScript,静态类型检查工具,游戏状态类型多,一定一定要用,不然修改对象类型根本无从下手。

git,版本管理工具,顺便要说的是,要遵循常用Gitflow工作流程,大型的游戏一个人根本开发不来(虽然这不是大型游戏,但是建议哦,从小做起)。

docker/cdn,部署项目用的,这个项目是基于cdn的,喜欢折腾自己的可以像这个游戏的服务器一样使用docker+travis。

night-watch,e2e测试,本游戏需要4个玩家,不想心累的可以写e2e测试。

微信分享,微信获取名称,自己手写吧。

教程

游戏需求

游戏需要四位玩家,每位玩家只能控制三个位置,所移动到的位置如果有且仅有一位玩家到达,那么获得该位置得得分,否制大家都获得不了分数。 游戏房主在创建房间的时候,如果退出房间,该房间解散,玩家们需要重新选择房间或创建房间。

68747470733a2f2f7265732e7073792d312e636f6d2f466c6b504247683437593368573130624e31543349484e4c5462516b状态考虑的东西就有点多了。

工具配置

Sprite

Sprite是啥?可以当作一个图片的对象(texture纹理)。

生成一个sprite

const SPRITE = new PIXI.Sprite.from(‘xx.png’)

// or

PIXI.Loader.shared.add(“assets/spritesheet.json”).load(setup)

function setup() {

let sheet = PIXI.Loader.shared.resources[“assets/spritesheet.json”].spritesheet;

let sprite = new PIXI.Sprite(sheet.textures[“image.png”]);

}

AnimatedSprite

动画序列帧Sprite,比如我们碰撞的时候需要眩晕效果,跳跃的时候需要尘埃效果,这个时候就可以使用播放序列帧的方法,达到动画的效果。

public parseTexture(textures: PIXI.Texture, x: number, y: number) {

const animationSprite = new PIXI.AnimatedSprite(textures)

animationSprite.animationSpeed = 0.2

animationSprite.width = 50

animationSprite.height = 50

animationSprite.x = x

animationSprite.y = y

animationSprite.gotoAndPlay(Math.random() * 2)

}

PIXI-SPINE

人物sprite

创建人物Sprite,人物?人物起码会动吧?面部表情?身体动作?那我们是不是要建造一个容器,容器里面包括无数sprite或者无数子容器,比如人物的手、脸部、头部等。 emmm,这也太难了吧?光是把sprite组合起来就已经麻烦了,而且还要按照规律来移动手臂,身体,脸部表情。 怎么办?pixi-spine走起。

stone sprite

跳跃AnimatedSprite

灰尘AnimatedSprite

气泡AnimatedSprite

Action

移动路线

移动方向判断

碰撞

stone与人物保持x距离

人物碰撞(性能优化,条件性判断碰撞)

碰撞相关特效展示

游戏进入流程图

游戏规则

服务器逻辑状态处理

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220797.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午7:37
下一篇 2026年3月17日 下午7:38


相关推荐

  • 爬山算法 ( Hill Climbing )/模拟退火(SA,Simulated Annealing)

    爬山算法 ( Hill Climbing )/模拟退火(SA,Simulated Annealing)一 爬山算法 HillClimbing 爬山算法是一种简单的贪心搜索算法 该算法每次从当前解的临近解空间中选择一个最优解作为当前解 直到达到一个局部最优解 爬山算法实现很简单 其主要缺点是会陷入局部最优解 而不一定能搜索到全局最优解 假设 C 点为当前解 爬山算法搜索到 A 点这个局部最优解就会停止搜索 因为在 A 点无论向那个方向小幅度移动都不能得到更优的解 nbsp 二 模拟退火 SA

    2026年3月17日
    3
  • SpringDataJpa

    SpringDataJpaSpringDataJpa

    2022年4月22日
    39
  • redis如何设置定时过期_redis 设置过期时间[通俗易懂]

    redis如何设置定时过期_redis 设置过期时间[通俗易懂]1、设置过期时间功能:即对存储在redis数据库中的值可以设置一个过期时间。作为一个缓存数据库,这是非常实用的。如我们一般项目中的token或者一些登录信息,尤其是短信验证码都是有时间限制的,按照传统的数据库处理方式,一般都是自己判断过期,这样无疑会严重影响项目性能。我们setkey的时候,都可以给一个expiretime,就是过期时间,通过过期时间我们可以指定这个key可以…

    2026年4月14日
    4
  • snmp trap日志「建议收藏」

    snmp trap日志「建议收藏」日志类型有三种,file,syslog和snmptrapsnmptrapd.conf文件内容及参数snmptrapd手册:http://www.net-snmp.org/docs/man/snmptrapd.conf.html,http://www.net-snmp.org/wiki/index.php/Snmptrapd中文翻译:《snmptrapd.conf文件内容及参数》,而且详细列出了参数《SnmpTrap的发送和接收演示》IBM开发者网站关于snmptrap引用最.

    2022年8月20日
    26
  • 人工智能 猴子摘香蕉问题[通俗易懂]

    人工智能 猴子摘香蕉问题[通俗易懂]人工智能猴子摘香蕉问题1.定义描述环境状态的谓词。AT(x,w):x在w处,个体域:x{monkey},w{a,b,c,box};HOLD(x,t):x手中拿着t,个体域:t{box,banana};EMPTY(x):x手中是空的;ON(t,y):t在y处,个体域:y{b,c};BOX(u):u是箱子,个体域:u{box};BANANA(v):v是香蕉,个体域:v{banana};2.初始状态AT(monkey,a):猴子在a处EMPTY(monkey):猴子手中是空的O

    2026年4月13日
    6
  • centos在设置时区

    centos在设置时区

    2022年1月15日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号