python+Layaair引擎学做html5棋牌游戏开发

2023-10-18 20:40

本文主要是介绍python+Layaair引擎学做html5棋牌游戏开发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

过年这段时间,无聊就开始练习做游戏开发,由于经验不足,而且自己规定限制在20天之内完成,因此只能瞎子摸象,一步步摸索。没有游戏代码样本、没有H5游戏经验、没有前端开发知识。

练习目标:做个棋牌游戏玩玩。

1:选择游戏引擎,这个开源的有很多选择,比如egret、Phaser、cocos2d-JS、layaair等,可以根据自己的选择,我这里选择layaair,开发语言是typescript。

2:游戏服务器,H5游戏一般用websocket做主要的协议,可以的话在websocket中用protobuf协议来和服务器通信,我这里选择了python做服务器。

先说明一下,涉及到了网络传输和数据库等操作,python不会比其他语言慢,因为服务器不是用来密集型计算的,而是在于IO,服务器主要耗时在于读写数据库和网络传输。此外目前python在手游中做为服务器的比例越来越高。

游戏服务器设计:

游戏服务器 table,play类等:

table类主要属性包含:

tableCase#目前房间状态,空闲 抢庄,准备,投注,结算等等tablePlays#游戏玩家tableZhuangjia#庄家tableforbiddener#黑名单 tableRoomer #房主tableModel #房间模式 ,抢庄或者指定庄家tableroomCard#当前牌桌的总局数,超过局数就结束tableCurrent#当前牌局的局数.........................#等等tableMaxpeople#房间最大人数

 

table类主要方法包含:

def currentTablecase()#当前桌的游戏状态def rwqueue()#当前读写队列def exeEvent()#服务器间隔10帧执行的队列def register(self, newer)#当前牌桌加入新成员def createRoomIni(self,user,message):#游戏玩家创建房间初始化参数设置等等def ready(self,user):#玩家准备def qiangzhuang(self,user):#玩家抢庄def getzHuangjia(self,user): #得到当前牌桌的庄家..........................#等等def putQueue()#队列,客户端发送的数据保存在table的队列

 

等等,还有很多的方法不一一列举了,

play类主要属性包含有:

userId,username,token#等等LastRequestDate#上次请求时间NetBroken#网络中断时间,是否重连selfcase #当前玩家空闲 抢庄,准备,投注,结算等状态touzhuData#投注数据等等..........................#等等socre#玩家分数

等等,还有很多的属性不一一列举了,

客户端的设置:包含界面、动画、缓动、滤镜等动画。

1:server.ts//主要是处理连接服务器,接受等处理

2:sound.ts//声音的播放处理

3:tween://主要是一些元素的缓动处理

4:ani//一些动画的播放处理

5:work.ts//游戏逻辑的处理

转载于:https://my.oschina.net/u/248241/blog/1622633

这篇关于python+Layaair引擎学做html5棋牌游戏开发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/235014

相关文章

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

使用Python创建一个能够筛选文件的PDF合并工具

《使用Python创建一个能够筛选文件的PDF合并工具》这篇文章主要为大家详细介绍了如何使用Python创建一个能够筛选文件的PDF合并工具,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录背景主要功能全部代码代码解析1. 初始化 wx.Frame 窗口2. 创建工具栏3. 创建布局和界面控件4

一文详解如何在Python中使用Requests库

《一文详解如何在Python中使用Requests库》:本文主要介绍如何在Python中使用Requests库的相关资料,Requests库是Python中常用的第三方库,用于简化HTTP请求的发... 目录前言1. 安装Requests库2. 发起GET请求3. 发送带有查询参数的GET请求4. 发起PO

Python与DeepSeek的深度融合实战

《Python与DeepSeek的深度融合实战》Python作为最受欢迎的编程语言之一,以其简洁易读的语法、丰富的库和广泛的应用场景,成为了无数开发者的首选,而DeepSeek,作为人工智能领域的新星... 目录一、python与DeepSeek的结合优势二、模型训练1. 数据准备2. 模型架构与参数设置3

Python进行PDF文件拆分的示例详解

《Python进行PDF文件拆分的示例详解》在日常生活中,我们常常会遇到大型的PDF文件,难以发送,将PDF拆分成多个小文件是一个实用的解决方案,下面我们就来看看如何使用Python实现PDF文件拆分... 目录使用工具将PDF按页数拆分将PDF的每一页拆分为单独的文件将PDF按指定页数拆分根据页码范围拆分

Vue ElementUI中Upload组件批量上传的实现代码

《VueElementUI中Upload组件批量上传的实现代码》ElementUI中Upload组件批量上传通过获取upload组件的DOM、文件、上传地址和数据,封装uploadFiles方法,使... ElementUI中Upload组件如何批量上传首先就是upload组件 <el-upl

前端知识点之Javascript选择输入框confirm用法

《前端知识点之Javascript选择输入框confirm用法》:本文主要介绍JavaScript中的confirm方法的基本用法、功能特点、注意事项及常见用途,文中通过代码介绍的非常详细,对大家... 目录1. 基本用法2. 功能特点①阻塞行为:confirm 对话框会阻塞脚本的执行,直到用户作出选择。②

Android开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问

Python中常用的四种取整方式分享

《Python中常用的四种取整方式分享》在数据处理和数值计算中,取整操作是非常常见的需求,Python提供了多种取整方式,本文为大家整理了四种常用的方法,希望对大家有所帮助... 目录引言向零取整(Truncate)向下取整(Floor)向上取整(Ceil)四舍五入(Round)四种取整方式的对比综合示例应

python 3.8 的anaconda下载方法

《python3.8的anaconda下载方法》本文详细介绍了如何下载和安装带有Python3.8的Anaconda发行版,包括Anaconda简介、下载步骤、安装指南以及验证安装结果,此外,还介... 目录python3.8 版本的 Anaconda 下载与安装指南一、Anaconda 简介二、下载 An