精彩博客

用 Python 写个贪吃蛇,保姆级教程!

> 本文基于 Windows 环境开发,适合 Python 新手 ![](https://img2020.cnblogs.com/blog/759200/202106/759200-20210601231920077-4317072.png) 本文作者:HelloGitHub-Anthony HelloGitHub 推出的[《讲解开源项目》](https://github.com/HelloGitHub-Team/Article)系列,本期介绍 Python 练手级项目——贪吃蛇! 原本想推荐一个贪吃蛇的开源项目:python-console-snake,但由于该项目最近一次更新是 8 年前,而且在运行的时候出...

06/02 09:17
5.9K
1
使用 gperftools 进行性能分析

### 安装 gperftools * 到 [gperftools](https://github.com/gperftools/gperftools) 下载 release 。 * 编译并安装。 ```shell $ ./configure ``` 若产生如下输出,则需要安装 `libunwind` 。 ```shell $ configure: WARNING: No frame pointers and no libunwind. Using experimental backtrace capturing via libgcc. Expect crashy cpu profiler. ``` 查找并安装 `libunwind` ,之后再重新 `./configure` 。 ```shell $ sud...

05/08 12:08
110
0
520,花一夜给女神写走迷宫游戏

>以前虽然写过走迷宫,很多人反映没找到代码不会部署,没看明白原理,这次把更详细写出优化并将代码放到github,趁着520可以自己放一些图片献给女神! ### 起因 先看效果图(**文末有动态图**)(在线电脑尝试地址[http://biggsai.com/maze.html](http://biggsai.com/maze.html)): 项目github地址:[https://github.com/javasmall/mazegame](https://github.com/javasmall/mazegame): ![image-20210520104455552](https://img-b...

05/21 12:21
1.5W
7
聊一聊游戏服务器架构设计-聊天功能的那些事

今天和小伙伴们聊一聊网络游戏架构的那些事,想必每个玩过联网游戏的小伙伴们都知道游戏内部会有一个聊天功能,那么我们来扒一扒这个看似简单的聊天功能。 一、世界喊话 首先我们知道一般简单一点的聊天室的实现方式是你发一条消息广播给所有人,这样大家就好像都在一个屋子里互相都能看到对方的发言。很多大学、专科的学生都实践过这类功能。 这种聊天室的工作模式可以用下面这张图来表示,一般我们实现这类功能只要服务器收到...

2016/07/09 22:55
1.2W
15
新工具开源!一款双11养猫5亿用户的互动引擎

阿里巴巴历时2年自研开发的互动游戏引擎Eva.js正式开源,致力于让前端工程师更低成本的开发互动游戏,并已经在淘宝、天猫、支付宝、优酷、考拉、菜鸟、盒马等业务场景中使用。 官网:https://eva.js.org Github: https://github.com/eva-engine/eva.js 为什么要做Eva.js ▐ 背景 一个高速发展的APP,一定会去做拉新,留存,促活,转化。而游戏中的使命感、社交欲、拥有感、成就感等等正是令人上瘾的元素,将业务与游戏相结合,进...

04/26 16:51
864
0
godot制作的battle city

最开始的时候我就想制作一个90坦克的demo,之前看了其他的游戏引擎感觉不好搞,后来用了godot感觉可以研究一下,最近学着做了一些。虽然看起来可能跟原版有差距,但是大部分功能都有了,增加了一个地图编辑器。 截图: 大致功能就如同上面截图一样,截下来就介绍一下实现这个游戏中基本的难点和godot引擎使用的注意地方。在玩过原版坦克大战的时候,如果你仔细观察过就会发现敌人出生的地方如果多辆坦克一起出生的话,刚开始是没...

03/24 23:04
509
0
开发一个不走寻常路的贪吃蛇

学编程的小伙伴或多或少都写过贪吃蛇这个小游戏吧,核心的算法就是通过数组来维护蛇的移动和增长。具体实现方式: 地图:一个 M x N 的网格,每次移动的距离都是网格尺寸的 k 倍 移动:根据键盘按下的移动方向算出蛇头的位置,添加到数组顶部(unshift),同时移除数组的最后一个元素 进食:把食物的位置添加到数组顶部 碰撞:每次绘制前遍历数组,检测蛇头与身体每一块是否接触 原理很简单,实现起来也很简单,可以说是游戏领域...

2020/02/24 15:22
3.2K
0
DrawInstance和完全不做合批情况下的性能差异

1)DrawInstance和完全不做合批情况下的性能差异 2)UWA报告中检测出工程没有的资源 3)精灵设置九宫后,如何不在界面中显示出来 4)关于AssetBundle资源的卸载问题 5)Total Mono突然上涨的原因 这是第236篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。 UWA 问答社区:answer.uwa4d.com UWA QQ群2:793972859(原群已满员) Rendering Q:我做了个测试...

02/26 14:44
563
0
《从零开始的 RPG 游戏制作教程》第九期:信息反馈(上)

往期回顾 前言 第一期:制作基础场景 第二期:让勇者和怪物登场 第三期:基础的数值设计 第四期:从理论的角度简单聊聊关卡 第五期:制作物品和技能 第六期:设置怪物掉落物并部署关卡怪物 第七期:触发器与逻辑 第八期:对话、按钮、变量、马甲 第九期:信息反馈(上) 在玩游戏的时候,我们总是需要很多信息来给玩家反馈。 接下来我们讲讲信息反馈。 在进入正题之前,我们要建立一个认知:即人的注意力是有限的。 人的注意力是...

02/23 16:16
2.2K
0
代码不止|Google 助你打造优质移动端用户体验

立即查收 2020 Google 开发者大会移动开发干货 谷歌开发者大会技术演讲部分 昨天已经正式拉开帷幕 Android 、Google Play 和 Chrome OS 和谷歌开发者大会值日生一起来看 率先带来了哪些技术优化? 现在扫码一网打尽全部技术干货! 不要忘记今天 13:00 看 Flutter 、Web 和 Material Design 如何打造优质的前端用户体验! 加强隐私保护依然是 Android 11 优化的重要考量,谷歌为此对三方面的隐私信息实行更精细的控制,为私人数...

2020/11/18 09:59
9.9K
0
UE4/Unity绘制地图基础元素-线(下篇)

[UE4/Unity绘制地图基础元素-线(上篇)](https://my.oschina.net/u/4213628/blog/4693050) ## 前言 上篇中记录了绘制线的基本流程,而下篇主要是对绘制线中遇到的性能和效果问题进行阐述。在绘制完一条线并且希望给其加上描边样式时,会遇到不可避免的闪烁问题。而在绘制大量的交错道路时,需要同时考虑绘制性能和闪烁问题如何解决。本文总结了高效绘制描边线的方法,并对调研过的解决Z-Fighting闪烁的方案进行阐述。 ## 像素圆...

2020/11/03 12:16
6K
5
基于UE4/Unity绘制地图基础元素-线(下篇)

[基于UE4/Unity绘制地图基础元素-线(上篇)](https://my.oschina.net/u/4209404/blog/4685884) ## 前言 上篇中记录了绘制线的基本流程,而下篇主要是对绘制线中遇到的性能和效果问题进行阐述。在绘制完一条线并且希望给其加上描边样式时,会遇到不可避免的闪烁问题。而在绘制大量的交错道路时,需要同时考虑绘制性能和闪烁问题如何解决。本文总结了高效绘制描边线的方法,并对调研过的解决Z-Fighting闪烁的方案进行阐述。 ## 像...

2020/10/30 11:57
2.6K
4
基于UE4/Unity绘制地图基础元素-线(上篇)

## 前言 这篇文章是使用游戏引擎探索地图可视化的开篇。传统的地图渲染通常是在iOS/Android/Web平台进行的,为了探究更酷炫的地图展示,会记录基于UE4/Unity进行地图渲染的探索过程。 ## 地图基础元素 - 线 线作为地图渲染的基本元素,在地图中可以代表各种形式的道路。道路数据通常以离散点串形式存储,因此如何将点串绘制成有宽度的线是渲染最关注的问题。本文记录了绘制有宽度的线的方法,并对优化线展示效果的各种线帽和拐角...

2020/10/23 11:49
2.1K
3
Linux基金会开源软件大学人才激励计划申请即将截止!

Linux 基金会自2011年开始,每年都会启动 LiFT 奖学金计划,为有理想、热爱学习的开发人员、系统管理员、开源新手等提供培训机会,让更多人了解开源、学习开源、参与开源。 随着中国的开源力量不断发展壮大,2020年秋,Linux基金会的奖学金计划即 Linux 基金会开源软件大学人才激励计划也将在中国正式启动!欢迎中国大陆及港澳台地区的朋友们积极参与。 Linux Foundation开源软件大学人才激励计划申请人,可以来自任何行业,从事...

2020/10/23 11:48
6.8K
0
从Chrome小恐龙游戏学习2D游戏制作

在chrome浏览器的断网页面,按空格键或者向上键会出现一个小恐龙跑酷小游戏,这个2D小游戏在设计上精致小巧,在代码上也只有三千多行,思路清晰严谨,很有学习价值 demo 在非断网情况下,可以通过chrome://dino 进行访问,源代码在source面板中无法显示,可以前往这里下载。在这篇文章中异名会梳理2D游戏的制作思路,主要包括游戏的mainloop主循环和实例的update更新、帧图的动态绘制和切换、帧率的控制、游戏对象的运动控制、碰...

2020/10/15 18:10
1.2W
4
CitrusEngine系列教程一:认识CitrusEngine

教程作者:cls分享站 CitrusEngine系列教程一:认识CitrusEngine CitrusEngine系列教程二:结合starling和Box2D开发游戏 CitrusEngine系列教程三:使用flash cs 设计关卡 CitrusEngine系列教程四:Citrus的2D动画和摄像头 CitrusEngine系列教程五:使用PhysicsEditor创建box2d刚体 CitrusEngine系列教程六:使用Tiled Map Editor创建地图 ............................................................................ 终于要...

2013/05/03 17:36
796
0
【深入Cocos2d-x】探索Cocos2d-x中的内存管理-引用计数和自动释放池

#深入Cocos2d-x-探索Cocos2d-x中的内存管理-引用计数和自动释放池 ###引用计数(Reference Count) 引用计数是一种在C++中相当古老的内存管理方法,ios中将这种机制包括在NSAutoreleasePool中。所有我们在Cocos2d-x中也有个相似的东西,叫CCAutoreleasePool,用处基本上一样,详细请看:[NSAutoreleasePool Class Reference](http://api.viglink.com/api/click?format=go&key=9b4efad421c8b103b2c94b796db973b0&loc=http%3A%2F%...

2013/05/27 19:58
4.9K
0
【深入Lua】理解Lua中最强大的特性-coroutine(协程)

---------- [点击进入我的新博客](http://www.cnblogs.com/neverdie/) ---------- ###coroutine基础 Lua所支持的协程全称被称作协同式多线程(collaborative multithreading)。Lua为每个coroutine提供一个独立的运行线路。然而和多线程不同的地方就是,coroutine只有在显式调用yield函数后才被挂起,同一时间内只有一个协程正在运行。 Lua将它的协程函数都放进了coroutine这个表里,其中主要的函数如下 ![表格][1] 摘取一段[云...

2013/12/21 00:40
9.4W
8
quick-cocos2d-x平台Lua源码打包后运行出错的一种情况

quick-cocos2d-x平台的Lua源码打包及加密功能是其提供的方便功能之一(具体可参考lonewolf的这篇文章)。今天Quick-x群里的一位朋友在使用时遇到了点问题,经过我们的探讨找到了原因。虽然是个小问题,不过还是顺手记录一下,以便今后自己和大家查询。 这位朋友在app/scenes/MyScene.lua文件里使用了以下语句调用另一个模块: local SocketTCP = require("app.Utitls.SocketTCP") 所调用的模块文件SocketTcp.lua放在app/Utitl...

2013/12/31 23:40
2.3K
0
OpenGL超级宝典笔记——深度纹理和阴影

之前我们介绍过简单的把物体压平到投影平面来制造阴影。但这种阴影方式有其局限性(如投影平面须是平面)。在OpenGL1.4引入了一种新的方法阴影贴图来产生阴影。 阴影贴图背后的原理是简单的。我们先把光源的位置当作照相机的位置,我们从这个位置观察物体,我们就知道哪些物体的表面是被照射到(被光源看到)的,哪些是没有被照射到(被遮挡住)的(在某个方向上离光源最近的表面是被照射的,后面的表面则没有被照射到)。我们开...

2014/01/09 21:18
4.7W
13

没有更多内容

加载失败,请刷新页面

初窥鸿蒙

一、什么是鸿蒙 鸿蒙即 HarmonyOS ,是华为公司推出的支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备的分布式操作系统,并且它提供了多语言开发的 API,支持 Java、XML、C/C++、JS、...

06/10 18:21
1.6W
6
深入浅出聊聊 Rust WebAssembly(一)

什么是 webassembly 在 2019 年 12 月之前,如果你要编写一个web页面,那一定离不开 html、css、js 这三个好兄弟。在 2019 年 12 月之后 W3C 宣布 webassembly 加入了他们。为什么要在三兄弟...

06/10 10:55
1.4W
3
一文教会你认识Vuex状态机

摘要:简单来说,Vuex就是实现组件全局状态(数据)管理的一种机制,可以方便的实现组件之间数据的共享。 本文分享自华为云社区《Vuex状态机快速了解与应用》,原文作者:北极光之夜。 一. 速识...

06/09 10:02
1.5W
4
V8 执行 JavaScript 的过程

👆 这是第 102 篇不掺水的原创,想要了解更多,请戳上方蓝色字体:政采云前端团队 关注我们吧~ 本文首发于政采云前端团队博客:V8 执行 JavaScript 的过程 https://www.zoo.team/article...

06/08 21:30
7.8K
4
读写分离水太深,你把握不住,让CQRS来

多年以前,那时我正年轻,做技术如鱼得水,甚至一度希望自己能当一辈子的一线程序员。 但是我又有两个小愿望想要达成:一个是想多挣点钱;另一个就是对项目的技术栈和架构选型能多有点主动权...

06/08 14:07
2.6W
13
Go timer 是如何被调度的?

hi,大家好,我是 haohongfan。 本篇文章剖析下 Go 定时器的相关内容。定时器不管是业务开发,还是基础架构开发,都是绕不过去的存在,由此可见定时器的重要程度。 我们不管用 NewTimer, ti...

06/08 08:37
7.2K
0
深入浅出协程、线程和并发问题

"协程是轻量级的线程",相信大家不止一次听到这种说法。但是您真的理解其中的含义吗?恐怕答案是否定的。接下来的内容会告诉大家协程是如何在 Android 运行时中被运行的,它们和线程之间的关...

06/03 11:44
1.9W
0
深入解析 Raft 模块在 ZNBase 中的优化改造(下)

作者:管延信 上期回顾:深入解析 Raft 模块在 ZNBase 中的优化改造(上) 导读 云溪数据库 ZNBase 是由浪潮开源的一款 NewSQL 分布式数据库,具备 HTAP 特性,拥有强一致、高可用的分布式架...

05/31 11:03
5.5K
8
浅析扣减库存的方案设计

你好,我是悟空,今天来探讨下扣减库存的方案。 生活中,我们总是用各种电商app抢购商品,但是库存数是很少的,特别是秒杀场景,商品可能就一件,那如何保证不会出现超卖的情况呢? 一、扣减...

05/28 15:01
2.2W
3
HTAP 数据库如何实现?浅析 ZNBase 中的列存引擎

作者:马静伟 编辑:大东BE 导读 TP 与 AP 融合的 HTAP 数据库正成为业内的发展趋势。但由于大规模数据场景下 TP 与 AP 系统本身的复杂性,要在一套数据库系统中融合两种使用场景的功能并不容...

05/28 14:03
8.6K
18
高德Serverless平台建设及实践

导读 高德启动Serverless建设已经有段时间了,目前高德Serverless业务的峰值早已超过十万QPS量级,平台从0到1,QPS从零到超过十万,成为阿里集团内Serverless应用落地规模最大的BU。这个过程...

05/28 12:10
1.4W
1
从源码出发看zgc的技术内幕

笔者经过上次对zgc在不同环境下进行的测试后,发现zgc所带来的提升非常之大。一时间对zgc在生产中使用充满信心,但是在全面使用之前,难免对其几大新特性有一些好奇,比如:染色指针,读屏障...

05/27 16:38
2W
13
拯救祭天的程序员——事件溯源模式

一、事前 你相信吗?曾经有一段日子,我几乎没接到过合格的产品需求。 开局几句话,技术全靠猜。 总是以为简单的需求 曾经,我从产品那里接到过这么一个需求: 对系统的用户进行分级,不同级别...

05/27 12:54
2.3W
8
React 事件系统是如何工作的?

一、DOM 事件流 在浏览器中,我们通过事件监听来实现 JS 和 HTML 之间的交互。一个页面往往会被绑定许许多多的事件,而页面接收事件的顺序,就是事件流。它类似于蹦床,从高处下落,触达蹦床...

05/24 19:25
1.2W
5
懂得取舍才是缓存设计的真谛

Previously 前两篇文章(缓存稳定性 和 缓存正确性)跟大家讨论了缓存的『稳定性』和『正确性』,缓存常见问题还剩下『可观测性』和『规范落地&工具建设』 稳定性 正确性 可观测性 规范落地和...

05/24 09:00
1.5W
1
提效 7 倍,Apache Spark 自适应查询优化在网易的深度实践及改进

本文基于 Apahce Spark 3.1.1 版本,讲述 AQE 自适应查询优化的原理,以及网易数帆在 AQE 实践中遇到的痛点和做出的思考。 前言 自适应查询优化(Adaptive Query Execution, AQE) 是 Spark 3....

05/21 10:47
1.2W
0
一起看 I/O | Android 更新一览

作者 / Karen Ng, Director, Product Management & Jacob Lehrbaum, Director of Developer Relations, Android & Play 作为 Android 开发者,我们致力于打造让世界各地的用户们满意的体验。...

05/20 19:06
3.5K
0
低代码平台如何一步步摧毁开发团队的效率与创新!

关于低代码平台,之前我也推送过两篇相关的文章,我的观点很简单:东西是好的,有它所擅长和适用的领域,但软件产品不存在银弹,低代码平台一样如此! 现在在搜索引擎上搜“低代码”这样的关...

05/14 10:26
4.1W
15
CSP浅析与绕过

XSS是最常见、危害最大的网页安全漏洞,想要抵御它们,要采取非常多编程措施,非常麻烦。那么,有没有可以从根本上解决问题,浏览器自动禁止外部注入恶意脚本的方法呢?CSP应运而生。 本文涉...

05/13 17:03
5K
2
Flutter Web插件实现:打通JavaScript和Dart

之前分享了如何在Flutter插件中支持Android和Windows,这篇文章将增加Web插件的实现方法,以及创建一个简单的web一维码,二维码识别应用。 参考资源 https://dart.dev/web/js-interop https:...

05/13 15:23
2.1W
1

没有更多内容

加载失败,请刷新页面

返回顶部
顶部