黑翅🔯
黑之翅膀
Minecraft观察者
关注数: 194
粉丝数: 1,828
发帖数: 16,636
关注贴吧数: 38
机车猴+传输带+悬崖,这里是真的恶心到我 这游戏什么都好,就是遥感控制镜头转向这点不好。除了PSP的那个拇指专属的扁平手柄外,电脑或者xbox手柄玩这个转向都很恶心,再遇到这个关卡,简直不要太难玩。
黑兔的像素图片集
【SteamWorks】游戏排行榜API func Top(分数:int,保留最好记录:bool=true,): Steam.findLeaderboard("GameTime") Steam.uploadLeaderboardScore(分数, 保留最好记录)
我做的游戏《泉水镇·居民的反击》上架steam了!!【... 【图片】我做的游戏《泉水镇·居民的反击》上架steam了!!【godot吧】_百度贴吧 来自:http://tieba.baidu.com/p/9135659042
【SteamWorks】在好友列表中显示丰富状态,游戏进度。 官方自带的文档看的一头雾水,还好找到其他人发的帖子,还挺方便的。
我做的游戏《泉水镇·居民的反击》上架steam了!! 游戏时长大概在4~8小时左右,希望大伙们可以支持下我! 这是个轻量化的俯视角射击游戏,一只手就能操作,通过在游戏中杀怪收集金币,然后组织探险队去找回失踪成员,失踪的成员也有一些厉害的角色,找到他们可以解锁更多角色。还可以找到宠物来辅助战斗。每个人物都有自己专属的攻击方式和特殊能力,每次升级会随机出现三张能力卡牌,玩家可以思考如何让人物和卡牌效果搭配出更强的战斗力,从而生存更久,打败更强的怪物。
时隔多年,我找回了制作游戏的初衷。 我是一个敏感的人,我会经常思考自己做过的事,将发生过的事情互相比较,尝试用这种方法推出新的策略,和自我改进。 我在贴吧里的签名是:回顾历史是为了减少未来出错的概率。 我在很小的时候就有制作游戏的梦想,尽管我走了很多弯路,但心里还是默默记住我未来要做游戏这个想法,而且我坚信未来我会达成这个梦想。没错,我做到了,在童年的我觉得不太可能的想法,今天还是做到了。 做游戏跟编程的专业程度无关: 我当时的想法是:我不会写代码,我就做不了游戏..... 我一直尝试去接触代码,但很显然,那时稚嫩的我~啥也不是。在那个年份,做游戏更是会在家里被贴上:叛逆、不务正业、玩物丧志、游戏上瘾、浪费清楚..这种负面评价,所以我想学编程的路,早早就被扼杀在小时候了,被强迫签了平面设计的门课,在描线、构图、比例、排版的中逐渐迷失了自我~~以至于现在做事,都会先过一层画面中思维枷锁。而我还是被蒙在鼓里,甚至没意识到我被限制了。 所以我在早期就是一个以美术起手的妄想自己要做游戏的平凡人~只要有机会,我就会偷偷接触一下代码,虽然看不懂,但我发现我的逻辑思维比较好!我能很快的在很短的时间内,想出很复杂又互相关联的游戏玩法,包括细节。(我想说,我到现在还是用着这项能力,只是在我实现想法的过程中,执行上比以前更快了) 噢,我现在是有编程基础的,我也发现了我说话的方式都变了,但尽管如此,它对“我要实现玩法”的步骤上,只起到了细微的作用。因为我大部分时间都只是花在敲键盘上,而不是更快地在实现我的玩法。 原来有策划这种东西? 以前我并不知道有策划这种职业,我以为一个游戏就只需要程序员就能搞定。后来接触到更深入的圈子,我才知道还有策划这种职业,我突然眼前一亮,这不就是我吗?于是我又研究了一些策划,自学了一点点,看看跟我想象中的过程有什么区别。 然后尝试着开始写更详细的游戏内容,游戏交互逻辑,各种游戏流程之间的转换,交互,更详细的数值等等,渐渐地我发现了好像策划也跟我想实现游戏的过程,差别越来越大! 经过对比我发现,策划是一个偏向于社交属性的这么一个职业,也就是说属于工作流程内部的,跟制作游戏里的其他工作岗位对接的这么个活....把所有的动作都列出来,每个游戏步骤都细化一下,然后交给美术、程序、音乐。每个地方都管一下,确实挺像我在做的事,但我发现,这也还不是我自己想象中的工作流程。 我们可以假设一下,抛开人和人之间的隔阂,默契程度,理解程度,认知水平上的不同,共用一个大脑,我自己写完了策划,然后再根据策划案把游戏做出来之后,我傻了....这个游戏....好无聊....是的,当我花费了大量时间在这些更细的工作流程上,并没有对我实现游戏玩法有什么太大的帮助,而我却一直在细化自己的工作,在实现游戏玩法的时间是显得越来越漫长!而这些浪费掉的时间,是真的真的没有在玩法上得到任何帮助!因为,游戏是“交互的艺术”。 当我意识到这一点,突然就清醒了,我以前用无代码引擎快速制作的游戏、我在Minecraft服务器里用已有的功能搭配玩法,我在纸上画了一些图案并让周围的人按照指定的规则,一起参与进来并体验到快乐,这才是我一直在做的事! 玩法优先! 至此,我直接开始放飞自我! 说话方式,不再归一化: “你的金币不足!购买失败!” → “呀,钱包空空,两手空空,快去赚钱吧” (保证表达的同时,更人性化。) [血条][体力][魔法值][饱食度] → [节操][疯癫][大喇叭][肚子疼] (毫无节操,被打败了!得分:0) [排列整齐的菜单选项] → [随便倾斜的摆放] (乱中有序,绝不统一) [钢琴、吉他、大提琴、和弦、情绪] → [黑兔卖瓜瓜里的瓜~咕咕瓜呱呱呱] (各种奇奇怪怪的音色,让你发现音乐师在搞事情。) [平滑镜头、动态模糊、广角、透视] → [摄影师点了点头,顺便给你来个特写] (镜头不再是镜头,而是可以拟人,可以有表达,可以代表观众) 以上是我的举例,在制作游戏之前,我的想法总让人琢磨不透,游戏流程不按套路出牌,画面内容有时候非常夸张,文字描述上采用的方式很幽默。但如今,我确实失去了,我再也没有那么随便的想法,我被规定限制了,想法上多了好多枷锁,我深知这种思维会影响到我的游戏品质和玩法乐趣,但尽管我发现了这个问题,在制作的时候还是会按照归一化的方式进行制作,我....回不去了... 然后我痛恨自己的错误,并在这里记录下来: 1、在美术上过度专注于表现颜色的运用技巧、风格、美观,除了好看,没有起到任何表达和交流的....内涵。 (对实现玩法没有帮助,本末倒置啊本末倒置...) 2、专注寻找音色,模仿市面上常见的、流行的风格,过度在意编曲的专业性,要做超好听,忘记了实现游戏中满足情感表达的部分。 (对实现玩法没有帮助,本末倒置啊本末倒置...) 3、细化游戏内容,并且经常用现有的游戏作为参考对象,做出了模板化流水线公式的游戏流程,导致自己锁死了设定,缺乏了与玩家深入交流的步骤,遇到与设定相违背的玩法需求是,会被现有的设定框架阻碍了允许扩展思路的方向,以至于游戏流程过于死板,缺乏共情能力。 (对实现玩法没有帮助,本末倒置啊本末倒置...) 4、光线追踪、阴影、法线、贴图、纹理、环境光遮蔽等等细节,以至于在每次创建特效都要花上大量时间去追平现有3A游戏中的大众审美的程度。却忘了特效是作用在交互中,只有细微吸引眼球的作用。 (对实现玩法没有帮助,本末倒置啊本末倒置...) 5、在动作细节上,过于追求动作的流畅度,帧动画会细化到每一个像素点的运动模拟都手工逐帧画出来,尤其是像素画,要做到美感,需要耗费巨量时间。(个人结论:像素画画得好看的游戏,99%都不好玩!)一味的追求单独某个职位的上限值,只会让自己离实现游戏玩法的终点越来越远,本末倒置啊本末倒置... (对实现玩法没有帮助,本末倒置啊本末倒置...) 6、在编程中,过度执着于最优解,最流程,代码最短,效率最高,而忽略了游戏玩法实际体验的乐趣,也忽略了实现玩法的可行性。导致花费大量时间去做了一个最完美的功能之后发现,似乎这个功能也不是很好玩,或者放在某些地方可能很不合适,很可能会想抛弃这个功能,但又舍不得自己写了这么久的代码,造了这么好的轮子。应该把重心放在造10个轮子中,挑一个最合适的进行细化打磨,切记不要一步到位! (对实现玩法没有帮助,本末倒置啊本末倒置...) 7、过度依赖引擎的功能...这个我还好,因为我用Godot到目前练习实际时长只有一“坤”年。(鸡鸡),挑引擎的毛病还是比较小的,能完全满足自己使用需求的引擎,只有自己制作的引擎可以做到。能满足所有人的引擎一定是个烂引擎! 这话可能说的有点严重,但我个人会保留这个观点。原因,如果引擎能满足所有功能,意味着门槛一定会降低,门槛降低意味着人人都能做游戏,而且不需要系统性的学习就能掌握,鄙视链一定会冒出来的!一定会有人认为这是个很低端的引擎,人就是这种生物~~,一方面需要引擎功能齐全,一方面又急着展示自己的技术力,就会陷入这种自我内耗的状态,我的意见是:不管你用什么引擎,我都不会鄙视你,因为站在玩家角度的我,只看游戏是不是足够有趣。 综上所述,自我反思、自我修正、自我成长的结论。 我用无代码引擎制作的游戏,花了一年时间,1年时间都在处理美术、逻辑、玩法设计、交互设计、音乐、音效。而且还是很低成本的劣质制作,要做出我想做的游戏类型,实现完整内容需要至少一年时间。 现在转到Godot引擎,我还多了一道工序,就是要自己写代码,和面对引擎的各种BUG折磨,还有游戏BUG的折磨,时间被延长了N倍。 各游戏制作人的水平也在逐步提高,相较于以前,就需要花更多时间在游戏的视听效果上,时间再一次延长! 如果我要彻底地为我的游戏玩法服务,我必须强制自己抛开以上这些精神枷锁,好让我自己回归到制作游戏最初的那种纯洁的想法 —— 我在用游戏,跟玩家交互!
花了一个月做了个小肉鸽游戏
本地脚本这种纯数字提示应该怎么找? 就知道一个第九9行,我用二分法逐个逐个排除到他不提示找了半天: 这个提示在:子弹发射器脚本 的 射手座的箭矢实例化 的 击杀特效函数里的 尸体生成器脚本 里的 生成肉鸽掉落物函数 里的 实体生成器脚本 里的 生成肉鸽宠物函数 里的 十二星座处女座实例化 里的 肉鸽宠物通用脚本里的 处女座本地脚本里的 第9行...... 给我气着了...
在 Windows 下如何方便地打出「」和 『』 ? 我做了个梦,梦见我用Q E 和 Z C快速打出这些括号,然而回到现实中我才恍然大悟,根本没有这些按键。 所以我搜了一下找到这个方法: 微软输入法 1.切换到中文输入模式 2.输入uubd 便可快乐地打出特殊的标点符号前面输入uu进入U模式输入,后面跟指令。 uudw:单位 uuxh:序号 uuts:特殊 uubd:标点 uusx:数学 uujh:几何 uuzm:字母 (你没看错,uu后面两个指令就是拼音字母。)
【MC】关于我的世界的问题,我不在答复了,谢谢支持。 本人已经很多年没有接触MC了,关于当前版本的各种问题,包括插件,模组,地图,等MC的问题,都不要再问我了,我不会回复的,抱歉。 我已经终止回答所有有关MC的问题了,望须知。
拍点艺术照片
深海恐惧症,把整个大海卡没了真舒服,鲨鱼在我头上游
【森林之子】大结局立方体位置 F1 传送 goto 696 -199 299
既然通关了,住在立方体里不过分吧~
【L4D2】speedrun TAS 相关 host_timescale 0.25 【记录和回放玩家的动作】 http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fforums.alliedmods.net%2Fshowthread.php%3Ft%3D309141&urlrefer=4ac7017a1acfbc3f847ee4566ddcda2e 【创意工坊mod】 http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fsteamcommunity.com%2Fsharedfiles%2Ffiledetails%2F%3Fid%3D510955402%26searchtext%3Dspeedrun&urlrefer=4be3ed9b9dec8a7c6f4b549d229da8ad
【L4D2】短暂时刻 witch_birde.mdl 报错问题 查了一圈没发现有人回答,我来补一个: 找打这个名为: Custom Melee Weapons Support的罪魁祸首 我在left4dead2\addons逐一排查测试,发现一个叫做GS.vpk的mod,把它删了就解决了。 也不知道什么时候装在我游戏里的。 "AddonInfo" { addonSteamAppID 550 addontitle"Custom Melee Weapons Support" addonversion 1.3 addontagline"Custom Melee Weapons Support" addonauthor "dani1341 & Max Chu" addonauthorSteamID "" addonContent_Campaign0 addonURL0 ""
kun字,承不承认?
[MC1.11.2]躲猫猫插件Kenshins Hide and Seek 所有可用方块 Kenshins Hide and Seek v1.7.6.jar1.11.2 版本我逐个尝试出来的可以显示的方块。 以下这些物品都是可以显示的,具体能不能选择还需要自己测试一下: KenshinsHideAndSeek 指令是: 【添加可变方块】/hs map blockhunt blocks add 地图名 <方块英文ID> 【查看所有可变方块】/hs map blockhunt blocks list 地图名 如果需要翻译的话,可以在后面输入井号 #中文名 做注释,这样不会影响到插件正常使用。 blocks: 下面都是 <方块英文ID> 比如:/hs map blockhunt blocks add home BEDROCK ------------------------------ - ACACIA_FENCE - ACACIA_FENCE_GATE - ACACIA_STAIRS - ACTIVATOR_RAIL - ANVIL - BEACON #基岩 - BEDROCK - BIRCH_FENCE - BIRCH_FENCE_GATE - BIRCH_WOOD_STAIRS - BONE_BLOCK - BOOKSHELF - BREWING_STAND - BRICK_STAIRS - BURNING_FURNACE - CACTUS - CARPET - CAULDRON - CLAY - COAL_BLOCK - COAL_ORE - COBBLESTONE - COBBLESTONE_STAIRS - COBBLE_WALL - CROPS - DARK_OAK_FENCE - DARK_OAK_FENCE_GATE - DARK_OAK_STAIRS - DAYLIGHT_DETECTOR - DAYLIGHT_DETECTOR_INVERTED - DEAD_BUSH - DETECTOR_RAIL - DIAMOND_BLOCK - DIAMOND_ORE - DIODE_BLOCK_OFF - DIODE_BLOCK_ON - DIRT - DISPENSER - DOUBLE_PLANT - DOUBLE_STEP - DOUBLE_STONE_SLAB2 - DRAGON_EGG - DROPPER - EMERALD_BLOCK - EMERALD_ORE - ENCHANTMENT_TABLE - ENDER_PORTAL_FRAME - ENDER_STONE - END_BRICKS - END_ROD - FENCE - FENCE_GATE - FLOWER_POT - FURNACE - GLASS - GLOWING_REDSTONE_ORE - GLOWSTONE - GOLD_BLOCK - GOLD_ORE - GOLD_PLATE - GRASS - GRASS_PATH - GRAVEL - HARD_CLAY - HAY_BLOCK - HOPPER - ICE - IRON_BLOCK - IRON_FENCE - IRON_ORE - IRON_PLATE - JACK_O_LANTERN - JUNGLE_FENCE - JUNGLE_FENCE_GATE - JUNGLE_WOOD_STAIRS - LADDER - LAPIS_BLOCK - LAPIS_ORE - LEAVES - LEAVES_2 - LEVER - LOG - LOG_2 - LONG_GRASS - MAGMA - MELON_BLOCK - MOB_SPAWNER - MOSSY_COBBLESTONE - MYCEL - NETHERRACK - NETHER_BRICK - NETHER_BRICK_STAIRS - NETHER_FENCE - NETHER_WARTS - NETHER_WART_BLOCK - NOTE_BLOCK - OBSERVER - OBSIDIAN - PACKED_ICE - PISTON_BASE - PISTON_STICKY_BASE - POWERED_RAIL - PRISMARINE - PUMPKIN - PURPUR_BLOCK - PURPUR_DOUBLE_SLAB - PURPUR_PILLAR - PURPUR_SLAB - PURPUR_STAIRS - QUARTZ_BLOCK - QUARTZ_ORE - QUARTZ_STAIRS - RAILS - REDSTONE_BLOCK - REDSTONE_COMPARATOR_OFF - REDSTONE_COMPARATOR_ON - REDSTONE_LAMP_OFF - REDSTONE_LAMP_ON - REDSTONE_ORE - REDSTONE_TORCH_OFF - REDSTONE_TORCH_ON - RED_NETHER_BRICK - RED_ROSE - RED_SANDSTONE - RED_SANDSTONE_STAIRS - SAND - SANDSTONE - SANDSTONE_STAIRS - SAPLING - SEA_LANTERN - SIGN_POST - SKULL - SLIME_BLOCK - SMOOTH_BRICK - SMOOTH_STAIRS - SNOW - SNOW_BLOCK - SOUL_SAND - SPONGE - SPRUCE_FENCE - SPRUCE_FENCE_GATE - SPRUCE_WOOD_STAIRS - STAINED_CLAY - STONE - STONE_PLATE - STONE_SLAB2 - TNT - TORCH - TRIPWIRE_HOOK - VINE - WATER_LILY - WEB - WOOD - WOOD_BUTTON - WOOD_DOUBLE_STEP - WOOD_PLATE - WOOD_STAIRS - WOOD_STEP - WOOL - WORKBENCH - YELLOW_FLOWER
《爆破兔头》做了几个关卡,终于强迫了自己把美术放到最后做了。
LOL设计师可以把法师删掉了,寡妇残血一个大招还秒不掉脆皮ADC,饮魔刀无CD触发
Godot 4 BUG,做剧情困难了!动画播放器和动画精灵冲突,4.2仍有 用 AnimationPlayer 更改 AnimatedSprite2D 的动画,AnimationPlayer 播放的时候会自动跳转到精灵动画页面。如果精灵动画页面没有打开,就会直接崩溃。 4.1 不会崩溃但会让鼠标跟UI脱离。 4.2 会直接崩坏
Godot 4.1.1 UI这些边角去不掉吗?好影响画面感!
【免费资源】第二版“黑兔先生共享资源包”来了,快来领走吧! 这次直接增加了大量素材,接近第一个包的2倍。 1517个素材文件,85.1MB。 更多图块,地形,天空,怪物,人物,UI。
分享下“黑兔先生共享资源包”,自己的资源文件 偶尔看到有人索要黑兔先生这个资源,所以整理了一份出来。给大家用。 里面有 806 个文件,其中大部分是GIF图,黑兔的动作基本覆盖所有功能了(还有不够用动作,喊我补,有时间我就会补) 这些资源都是免费的,因为都是我做游戏的时候画的。 喜欢的话就拿去吧,不过这里的素材是很多个游戏搭在一起,所以不一定都适合用。 GIF的帧提取,我用Imagine软件打开一个图片接个ctrl+E,就导出帧图到Godot资源里。 这里面的素材随便用,有空的话也可以帮我分享以下。 我自己只想专注做游戏,不太常去关注太多资源网,有大佬方便的话可以帮我转发下。
有没有推荐的方法做 Hitstop (命中停顿)效果? 我目前用过 停止动画播放、停止物理帧(或处理帧)、停止时间、调整游戏时间的方法尝试过。 但其实我游戏里有时间回溯和时间慢放功能会跟这个冲突,所以用了一些比较特殊的手段解决,但我感觉不是那么完美。 所以我想问问有没有知道做这种效果的比较优的方法? 想听听建议。 目前是攻击打中的时候,兔子和鳄鱼都会停住,并不是全局的,主角其实也没有无敌。 这种做法可能在攻击的时候停住被后面偷袭,那么要实现完美的停顿效果,估计要用到全局暂停效果。 但不能是Godot自带的暂停,因为这会跟菜单的暂停冲突。。 所以我在想,还有什么方法可以实现这个效果?这里想听听大家的实现思路!
【Godot4】扇形检测范围原理 已知扇形为圆的一部分,圆的半径=扇形的边长。 多边形Polygon2D系列,可以实现扇形。 首先以Vector2.Zero ,【坐标x0 y0 为第一个点。】 然后设定半径的长度,【设置坐标X=半径长度 Y=0。为第2个点】(既Vector(视野距离,0)) 然后用Vector向量中的rotated方法,获取当前坐标被旋转一定角度后的新坐标。 Vector2 rotated(angle: float) const 返回将这个向量旋转 angle 的结果(单位为弧度)。另见 @GlobalScope.deg_to_rad()。 #------ 新的向量 = Vector(半径,0).rotated(弧度) #------ 旋转后的【新向量 是第3个点】 此时我们已经得到3个顶点,Polygon2D就可以连成一个三角形。 扇形其实就是由多个三角形组成,现在我们用for循环去建立更多旋转一定弧度的向量位置,就可以实现扇形。 而视野的角度,就是在弧度那设置的。弧度转角度的方法名是:deg_to_rad(角度) 角度总共有360度,所以 for i in 角度:循环出来的点就是一个扇形。 由于扇形是从0°开始展开的,所以可以根据怪物的默认朝向,将Polygon2D的旋转角度 = 视野角度的一半 此时扇形就会朝向X的正方向,此时自身的转向就会带动视野旋转了。 由于是生成的,所以不必太担心性能问题。 最后: 如果角度很大,如180度,会创建180个顶点,如果不喜欢弧度太光滑,想减少一些顶点的话: 在for循环下面加入判断: if i % 10 == 0: 这可以限制只在每个十进制中绘制一个顶点,这是取余的方法。 if i % 2 == 0: 获取的i是双数,其中2个数有一个被整除。余数为0 %是求余运算符。 if i % 10 == 0: 获取的i是每10个数中有一个被整除。余数为0
【Godot】菜单、UI、背包中的物品移动的逻辑和思路 一个是界面上可视化的移动,然后可视化的界面控制逻辑的运行,由逻辑改变程序中库存的变化。原理上其实就是一张图的事情,但是实现起来是有点麻烦,以及很多教学视频都是很长很长出好几期视频都说不完。 我个人是不喜欢用库存的,因为Godot的变量基本可以装下所有的东西,所以本质上对象节点什么的都只是一串数字。深入研究之后才发现原理这么简单。节点上的信号检测我用的是: gui_input(event: InputEvent) Slot(槽位)我是做的子节点,然后批量生成背包格子的。然后因为我是直接做的3页背包,每页18,所以很暴力的直接拆开分别For循环了18次。 每个格子都有脚本,脚本里记录Slot的号数。 所以生成出来顺便跟着号数变化,记录每一个槽位的号数。 接着给他们都加入信号。 #制作Slot操控信号: for num in 54: BagSlotList[num].gui_input.connect(Click.bind(num)) 我这里有54个格子,所以针对54个格子生成了54个信号,并且绑定了参数,用来提示当前鼠标点击的是哪个槽位。 #信号名.connect( 函数名.bind( 传递的参数 ) ) func Click(isInput,Slot): 第一个参数 isInput,是信号自带的参数位置,Slot是我自己设定的参数传递。 所以我会得到两个参数: 鼠标操作 和 槽的号数 默认信号是会传递鼠标的所有信号的,但我只需要鼠标左键点击的时候判断逻辑。 if isInput.is_pressed() and Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT): 下面就是被控制之后的逻辑了。。。 后面就是基本操作了。判断槽是否有物品、判断手上是不是有物品、判断物品是否相同类型。 库存那边,我直接用的Array数组来存对象。 这里的对象都是item格式,item也是我自己做的一个单独的节点,里面记录者物品的种类、数量、名称、.....等等 同时 item 其实属于菜单中的物品, 我还会写个转换,让【菜单物品】可以转换成 【掉落物】,相反也有。 这是方便主角在地上捡起物品,又可以从背包把物品扔出去。 最后就基本的逻辑了: 移动物品的时候,点击的物品会被移动到【正在手持的物件】的节点中,并且这个节点会跟随鼠标移动。 $PickupItem.global_position = self.get_global_mouse_position() - Vector2(12,12) 点击的物品节点就会被移动到这个Pickupitem节点里。 过程也很简单 点击物品的时候: ClickSlot.remove_child(Item) <<删除 当前点击槽位的 物品节点 (remove_child 不会真的删除,只是隐藏了) $Panel/PickupItem.add_child(Item) <<在【正在手持的物件】添加 物品节点,物品就被移动过来了 move_node = Item <<用一个变量记录这个物品,方便逻辑判断【当前已持有节点】 上面是界面上的变化,但是库存还没变,所以库存也要变一下。 Pick_up_item = Bag[Slot] #【正在手持的物件】 = 【当前槽位的物品】 Bag[Slot] = null #【当前槽位的物品】= 空 接下来就自由发挥了,原理就是这样。 当然背包还涉及很多判断,比如拾取掉落物,掉落物会转换成物品形态,然后再判断库存中是否有空位可以存放物品,如果有空位,就加入到库存,顺便在界面中创建新的物品节点,然后把物品数据同步,再刷新界面显示。 数量叠加 和 位置交替: 则是判断物品的某些属性是否一致,名字一致ID一致之类的,一致的话就让槽位中的物品数量叠加上去再删除手上的那个物品节点。 如果更复杂一些就有数量限制,当两个物品叠加数量超过64的时候,就用两个物品叠加的数量减去64。 (A = 手持物品 B = 槽位中的物品) (A+B)- 64 = 叠加后剩余的物品数量 A的数量 = 64 B的数量 = 剩余值 此时可以不删除B,让B继续待在手持物中。 物品交替则是排除上面状态后的第二个状态: 槽位.remove_child(B) 删除B节点 持有位.remove_child(A) 删除A节点 持有位.add_child(B) 把B放入手持物品中 槽位.add_child(B) 把A放入槽位中 这个库存里就麻烦点,库存里不能直接删掉,所以还需要造个临时的变量来存放被挪出的B。 A - B 1. - A B 2. B A - 3. B - A 交替有两种方式,一种是交替时两个物品互换位置,另一种是手跟槽位中的物品交换(手上还拿着) 逻辑里建议直接判断库存,可以避免因卡菜单的方式导致物品被复制之类的BUG。
【外设】完美屏蔽键盘声(很强的降噪功能)NVIDIA Broadcast 原理:声音 通过 外设麦克风 → NVIDIA Broadcast进行降噪处理。 录屏软件中将麦克风设置成 麦克风(NVIDIA Broadcast)获取被降噪后的声音。 这个软件可以完美屏蔽我所有的键盘声,只有人声会被录下来,就连放BGM,连你的BGM都能给屏蔽掉。 另一个问题是,如果周围比较吵四处都是人的声音,那这个就只能通过麦克风外置设备进行屏蔽了,好一点的麦克风可以控制声音的接收范围,可以设置较短的收音距离来屏蔽掉较远的声音。 我个人用的是博雅的BOYA BY-M1000麦克风,价格在600左右。然后另外买了个座架放在桌子上,平时就半躺着玩游戏,麦克风很少贴嘴。
【外设】完美屏蔽键盘声(很强的降噪功能)NVIDIA Broadcast 原理: 声音 通过 外设麦克风 → NVIDIA Broadcast进行降噪处理。录屏软件中将麦克风设置成 麦克风(NVIDIA Broadcast)获取被降噪后的声音。 这个软件可以完美屏蔽我所有的键盘声,只有人声会被录下来,就连放BGM,连你的BGM都能给屏蔽掉。 另一个问题是,如果周围比较吵四处都是人的声音,那这个就只能通过麦克风外置设备进行屏蔽了,好一点的麦克风可以控制声音的接收范围,可以设置较短的收音距离来屏蔽掉较远的声音。 我个人用的是博雅的BOYA BY-M1000麦克风,价格在600左右。然后另外买了个座架放在桌子上, 平时就半躺着玩游戏,麦克风很少贴嘴。GTX显卡:http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fwww.nvidia.cn%2Fgeforce%2Fguides%2Fnvidia-rtx-voice-setup-guide%2F%23Setup-guides+&urlrefer=57f24473899248aeea40a0ed7eff5ecb RTX显卡:http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fwww.nvidia.cn%2Fgeforce%2Fbroadcasting%2Fbroadcast-app%2F+&urlrefer=ca65cfd44d3b04a38c1057002bedb49d AMD显卡:显卡驱动自带有
【像素动画】爆炸动画过程规律和原理
【Godot4】2D植物摇晃的Shader 【Godot4】分享一个2D的花草摇晃的Shader【godot吧】_百度贴吧 来自:http://tieba.baidu.com/p/8489961532
【Godot4】分享一个2D的花草摇晃的Shader shader_type canvas_item; uniform float hight = 1.0; //设置高度 1=16px,用于确认草的根部 uniform float wind = 0.02; //摇晃程度 uniform float speed = 3.0; //摇晃速度 void fragment() { // 获取当前像素的UV坐标 vec2 uv = UV; // 将草的倾斜效果应用于纹理坐标 uv.x += sin((uv.y + TIME) * speed) * wind * (hight*0.1 - uv.y); // 从纹理中获取像素颜色 vec4 color = texture(TEXTURE, uv); // 输出像素颜色 COLOR = color; } 适合用在spite精灵图、Tilemap瓦片图块之类的2D的节点。
Godot 4.0 自学研究笔记-1 Godot 4.0 自学笔记·修改鼠标模式(MouseMode)时: 这样写会提示让你将数字转为枚举 Input.mouse_mode = 1 这样写不会提示: Input.set_mouse_mode(1) ·按本地空间旋转节点(rotate_object_local): 围绕轴(单位 Vector3)旋转局部变换,指定角度(弧度)。旋转轴是在物体的本地坐标系中。 rotate_object_local( Vector3(0,1,0), 0.5 ) ·插值(lerp)支持三维向量,但(lerpf)不行: ·开关(bool)等同于(0 or 1),(0 or X): true = 1 false = 0 将一个bool乘以任意数字。 true = 1 * x false = 0 * x 只会返回一个 0或x 的结果 ·RigidBody3D 获取碰撞点: 激活接触监视器contact_monitor,可以使用_integrate_forces(XXX)方法名,获取碰撞状态。通过信号_on_body_shape_entered()可以获取碰撞对象信息。 _integrate_forces(碰撞信息) 获取碰撞信息并记录,通过碰撞信息访问碰撞点。 碰撞信息.get_contact_collider_position(body_shape_index) 获取接触对象的信息。 PhysicsDirectBodyState3D可以提供很多方法名来获取各种碰撞信息,包括碰撞点位置、碰撞对象的法线、撞击时的力度等.... 信号的 local_shape_index 只要用就会报错误,不知道是不是BUG。 ·获取变量的类型(typeof(XXX)): typeof(变量) 返回类型 ·插值(lerp())后面不能跟*delta: 会导致结果无限放大,最终超出500范围,下面是错误的: ShiftRun = lerpf( ShiftRun, 500.0, 0.1 ) *delta*60 下面这个是正确的,最大值500.0,可以当做钳制clamp来用,限制上限。 ShiftRun = lerpf( ShiftRun, 500.0, 0.1*delta*60 ) ·_physics_process 和 _process: _physics_process是物理帧,属于游戏内部的帧数,会被Engine.time_scale游戏时间改变运算速度,_process不会受到时间影响,会根据电脑的帧数执行。所以_process更适合用来刷新UI菜单界面一类的需要立即显示的计算。_physics_process更适合当做玩家,物理计算,游戏中的物体移动等,可以被Engine.time_scale控制实现缓慢或加速的效果。 物理帧在任何时候都保持固定的帧数,就算在卡顿时也会使游戏变慢,缓慢地按帧率执行,而_process在游戏卡顿时会导致游戏中的计算出现误差。 ·Godot4.0 File 改成 FileAccess,读取不用new(): 现在判断文件是否存在可以这样写: if FileAccess.file_exists("user://Options.cfg") ·Basis universal cannot unpack level 1: Basis universal cannot unpack level 1. 换第一个 ·Godot4.0修改窗口分辨率和属性方法变化: DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_BORDERLESS,true) 以前的OS,ProjectSettings 基本不适用了。 ·Godot 4.0 修改部分窗口属性设置改为Window: 如:游戏窗口大小、标题、窗口最大化、窗口的位置... get_viewport().set_content_scale_mode(Window.CONTENT_SCALE_MODE_CANVAS_ITEMS) ·Godot4.0 新版自定义信号参数传递: $节点.value_changed.connect( self.AAA_.bind( "111", "222" ) ) 信号名.connect( 函数名.bind( 传递的参数 ) ) 自带的参数会放在第一位,信号新建的时候不用加,自建的参数会排到后面。
好久没来贴吧玩了,发个最近制作的3D开飞机游戏。
做了挺多图的,就是没啥人玩,准备退坑了。 每个图都做上十几二十个小时,有简单的也有困难的也有好看的也有休闲的,都没啥用。做了16个图,十几个人玩过之后就凉了。
【像素画】极简单元
闲时重构《爆破兔头2D》 #4 —— 时间回溯功能
闲时重构《爆破兔头2D》#3 —— 堆积物体性能测试
闲时重构《爆破兔头2D》#02 —— 实现球体反弹效果
闲时重构《爆破兔头2D》#01 —— 主角基础动作
【音乐】FL音色表 Hypersonic2 音色表 01、Ultra Synth US-1合成器 02、Grand Piano GP-2钢琴合成器 03、Tonewheel Organs NB-3 风琴合成器 Orpeggian(短音) 04、HS2 Preview Patch HS2 合成器精选音色 - ) 05、Phrases HS2 原声琶音组 06、HS1 Preview Patch HS1 合成器精选音色 07、Natural Drum 原声鼓 Reversed Drums 08、Natural Percussion 原声打击 - 09、Contemporary Kits 电子鼓 - 10、Contemporary Percussion 电子打击 - 11、Drum Menus 鼓音色组 - 12、Drum Loops 鼓Loop 13、Acoustic Piano 原声钢琴 - 14、Electric Piano 电钢 - 15、Clavinets Clavinets电钢 - 16、Organs 风琴组 - ) 17、Harpsichord 羽键琴 - 18、Mallets 色彩打击乐 - 19、Bells 铃类 - 20、Percussive 电子色彩打击乐 21、Synth Bass 合成贝司 - 22、Acoustic Bass 原声贝司 - 23、Electric Bass 电贝司 - 24、Acoustic Guitar 木吉他 - 25、Electric Guitar Clean 电吉他 - 26、Electric Guitar Distortion 失真吉他 - 27、String 弦乐 - 28、Orchestral 管弦乐 - 29、Hits 管弦乐重击 - 30、Vocal 人声 - 31、Brass Sections 管乐组 - 32、Solo Brass 管乐独奏 - 33、Saxes Sax组 - 34、Woodwinds 木管组 - 35、Ethnic 民族乐器 - 36、Accordions+Harmonics 手风琴+口琴 - 37、Soft Pads Pad组 38、Bright Pads Pad组 39、Moving Pads Pad组 40、Soundscapes 环境音效 41、Techno Synths Techno合成 42、Poly Synths Poly合成 43、Arpeggios 电子琶音 44、Synths Brass 合成管乐 45、Soft Leads 合成主音(柔和) 46、Hard Leads 合成主音(硬) 47、Synths FX 合成音效 48、Sound FX 采样音效 49、Test Patches 测试音 50、GM Patches GM128 51、GM Drums GM鼓组 52、Combis 音色组 GM # V! M$ U2 D, G2 O3 @8 i GM音色表 钢琴 0 Acoustic Grand Piano 大钢琴(声学钢琴) 1 Bright Acoustic Piano 明亮的钢琴 2 Electric Grand Piano 电钢琴 3 Honky-tonk Piano 酒吧钢琴 4 Rhodes Piano 柔和的电钢琴 5 Chorused Piano 加合唱效果的电钢琴 6 Harpsichord 羽管键琴(拨弦古钢琴) 7 Clavichord 科拉维科特琴(击弦古钢琴) 色彩打击乐器 8 Celesta 钢片琴 9 Glockenspiel 钟琴 10 Music box 八音盒 11 Vibraphone 颤音琴 12 Marimba 马林巴 13 Xylophone 木琴 14 Tubular Bells 管钟 15 Dulcimer 大扬琴 风琴 16 Hammond Organ 击杆风琴 17 Percussive Organ 打击式风琴 18 Rock Organ 摇滚风琴 19 Church Organ 教堂风琴 20 Reed Organ 簧管风琴 21 Accordian 手风琴 22 Harmonica 口琴 23 Tango Accordian 探戈手风琴 吉他 24 Acoustic Guitar (nylon) 尼龙弦吉他 25 Acoustic Guitar (steel) 钢弦吉他 26 Electric Guitar (jazz) 爵士电吉他 27 Electric Guitar (clean) 清音电吉他 28 Electric Guitar (muted) 闷音电吉他 29 Overdriven Guitar 加驱动效果的电吉他 30 Distortion Guitar 加失真效果的电吉他 31 Guitar Harmonics 吉他和音 贝司 32 Acoustic Bass 大贝司(声学贝司) 33 Electric Bass(finger) 电贝司(指弹) 34 Electric Bass (pick) 电贝司(拨片) 35 Fretless Bass 无品贝司 36 Slap Bass 1 掌击Bass 1 37 Slap Bass 2 掌击Bass 2 38 Synth Bass 1 电子合成Bass 1 39 Synth Bass 2 电子合成Bass 2 弦乐 40 Violin 小提琴 41 Viola 中提琴 42 Cello 大提琴 43 Contrabass 低音大提琴 44 Tremolo Strings 弦乐群颤音音色 45 Pizzicato Strings 弦乐群拨弦音色 46 Orchestral Harp 竖琴 47 Timpani 定音鼓 合奏/合唱 48 String Ensemble 1 弦乐合奏音色1 49 String Ensemble 2 弦乐合奏音色2 50 Synth Strings 1 合成弦乐合奏音色1 51 Synth Strings 2 合成弦乐合奏音色2 52 Choir Aahs 人声合唱“啊” 53 Voice Oohs 人声“嘟” 54 Synth Voice 合成人声 55 Orchestra Hit 管弦乐敲击齐奏 铜管 56 Trumpet 小号 57 Trombone 长号 58 Tuba 大号 59 Muted Trumpet 加弱音器小号 60 French Horn 法国号(圆号) 61 Brass Section 铜管组(铜管乐器合奏音色) 62 Synth Brass 1 合成铜管音色1 63 Synth Brass 2 合成铜管音色2
【知识记录】alpha、beta、rc各版本区别 alpha版:内部测试版。α是希腊字母的第一个,表示最早的版本,一般用户不要下载这个版本,这个版本包含很多BUG,功能也不全,主要是给开发人员和 测试人员测试和找BUG用的。 beta版:公开测试版。β是希腊字母的第二个,顾名思义,这个版本比alpha版发布得晚一些,主要是给“部落”用户和忠实用户测试用的,该版本任然存 在很多BUG,但是相对alpha版要稳定一些。这个阶段版本的软件还会不断增加新功能。如果你是发烧友,可以下载这个版本。 rc版:全写:Release Candidate(候选版本),该版本又较beta版更进一步了,该版本功能不再增加,和最终发布版功能一样。这个版本有点像最终发行版之前的一个类似 预览版,这个的发布就标明离最终发行版不远了。作为普通用户,如果你很急着用这个软件的话,也可以下载这个版本。 stable版:稳定版。在开源软件中,都有stable版,这个就是开源软件的最终发行版,用户可以放心大胆的用了。 商业软件 RTM版:全称为Release to Manufacture。工厂版。改版程序已经固定,就差工厂包装、光盘印图案等工作了。 OEM版:厂商定制版。 EVAL版:评估版。就是有30或者60天等使用期限的版本。 RTL版:Retail.(零售版),这个版本就是真正发售的版本,有漂亮的包装、光盘、说明书等东西和高昂的价格。
steamworks 成就与统计 踩坑笔记 有可能是我没找到批量上传成就的方法,网页直接创建成就真是个麻烦的很的一个过程! 避雨2的成就 我的游戏里有58个成就,本来打算同步一下steam,结果发现这个页面只能一个成就一个成就这样去添加,非常麻烦 ! _1_0_NAME 从此消失了,直接从_4_0_NAME开始 重点!新建过的ID删除后不会重新出现,而是变成一个新的ID,所以这里面的顺序是根据默认匹配给你的ID顺序决定的,不能中途修改顺序(也可能是我没找到方法,如果有人知道方法可以评论区说一下造福后人)。 所以这里面的成就,我第一次是一次过新建了58个成就然后全部API名字修改好了,然后发现中间少了一个A_012,于是我只能在最后补上一个成就,接着去上传图片,之后就发现没办法改顺序,导致我按顺序上传的图片错了其中一个,后面的所有成就顺序全错了! 啥也没有~ 最坑的是每一个成就图标都要单独上传,一开始我只有彩色图标,用PS批量转换成黑白了,然后发现图片如果连续点上传按钮,保存之后就会出现空白,所以只能每次点击上传按钮都要等他上传完,图片出来之后才能继续上传下一幅图片,上传速度非常慢! 所以最后理清了原理,找到网页操作的我认为的最优解了。 首先是按照游戏里成就的数量,新建相同的成就数量,然后逐个保存一次。 接着去 “成就本地化” 页面,下载“本地化数据” 然后按照steam默认的ID,填写对应语言的成就名和成就描述,然后上传上去,再回到成就页面对照名字来修改API。 可以看到左边的ID是固定死的 API名称,对应游戏里传递解锁的专属名称。 进度状态:要在 【统计数据】里新建统计,这个统计会记录成就的进度。 注意左边,又有一个ID,这个ID也一样,删了一次就少个ID(什么离谱操作?),我之前删除过,所以从6开始了...这里设置完默认的 统计类型的总量,成就那边才可以选择。 选择对应的【统计状态】,可以设定最小值和最大值。 比如我这边分别有四个成就,死亡0~10,0~100,0~1000,0~10000,在统计设置页面我设置的最大值是10000,然后在成就这边就分别设置最大值。(这里面其实是:一个是统计的最大值,一个是当前成就的最大值)而它们起到的作用只是一个进度条显示,进度不包含解锁成就的功能,只是用来看的。 好了差不多就这些了..... 踩完这所有坑之后,大概明白了,最好的顺序,可以减少很多没必要的麻烦。 总结 不到最后一步不要改API名称 先创建足够的成就数量(最好不要删除了,不想要显示可以勾上隐藏的勾子) 下载成就本地化数据,把成就名和成就描述先填好 去发布一次,方便在steam游戏商店页面看到游戏的所有(无图标的)成就 现在可以把成就图标全部塞进成就列表里了,过程很慢,可一次性把图设置好,但上传按钮一定不要连着按好几个(因为我发现按了上传的时候,地址看会看到正在编辑的成就内置ID,连着按两个上传,相当于第一个成就上传到中途被你刷新了网页上传另一张图片,最后虽然你看着图片确实上传上去了,能看到图,但保存之后,只会保留你最后点上传按钮的那张图片....这个做的真的.....) 放到最后再来改这个API名称(如果一开始就改了,本地化的时候很容易分不清哪个成就的内置ID对应这个API,比如出现:NEW_ACHIEVEMENT_4_10_NAME,一时很难确定这到底是哪个成就) cv21509449
爆破兔头2D Demo1.3版本(物理优化+环境音+交互反馈大改进)
【自制游戏分享】花了大概6天吧,做了个《热血功夫校园》,3D横版格斗游戏。
在steam上架了我的游戏了,目前的Demo,我还特地加了godot的图标 祝愿godot继续强化!!! Steam直通车:http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fstore.steampowered.com%2Fapp%2F1858970&urlrefer=7372541d866a484a440a4eff3a658536 我(黑之翅膀)和叁踋猫一起做的,第一个试玩版,还没做完,在steam上架上也是经历了一波三折各种事情哈哈。
关于steamworks上架的游戏,点进去会进steam官网热卖页面的问题 打开了游戏的访问页面却跳转到了steam官网 http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fstore.steampowered.com%2F&urlrefer=925258b3d66f431f8e9f228f28d62ae0 原因原来是我只审核了demo的页面,而我的正式版商店页面还没审核。 客服就告诉我说demo页面其实是连到正式版游戏页面的一个按钮。 没错..它只是一个按钮... 所以要等正式版的商店页面通过了,才能进入。
【随手笔记】取“范围值”转换成“百分比”(归一化)A~B数值范 设A起点最小值,B终点最大值。 C = A~B之间任意值 把起点回归到0的位置:C - 最小值A 再获得AB距离:最大值B - 最小值A 归一化 = (C - A)/距离 0~1就可以当做一个百分比。 0%~100%示范: A = -20 B = 40 B - A = 60 相当于从0到60的距离转换成百分比0%~100%. 那么60=100%,只需要知道这个数占60的几成就行了 如果:C = 5 C - A = 25 25 / 60 ≈ 0.42 所以C占了=42%
想问一下怎么改exe的图标。godot的图标太丑了。 一方面当然是想要有自己的个性图标,另一方面上steam也是要有exe才方便区分自己的游戏。 最3.4+能换图标吗。。。 别说godot免费帮忙宣传之类的话,我可以吧godot图标塞入游戏开头中做个动画,也可以把godot图标做成游戏物品,就是接受不了“我的长相是godot”的样子。
留点东西
当我尝试将背景原画的光景层放进godot里套入add,我整个人蒙了! WTF,特殊算法?比PS还能保留细节。 往godot一丢!PS里导出的原图。我死了...谁来救救我...我死在图里了..
godot做的《爆破兔头》2D版近况(只能发一个视频..)
2D场景,这6天画的像素场景。 图1图2是分层图,前景没有混合,所以看不见。3D没有体积光和体积雾,穿模严重,只好等4.0了。 没了3D的我只能往2D发泄了大概在12月份把demo1肝出来挂steam愿望单。 希望能赶得过来(赶不过来话人就没了)
#godot# 简单几张图片做成的炫彩光效果
【反向通关】男女主互换 为什么发帖都会莫名其妙消失。。。 也没看到百度删帖通知回收站也看不见
【MC】把掉落物变成纯装饰品,就是纯摆设的物品。 /entitydata @e[type=item,c=99] {Item:{tag:{Unbreakable:1,AttributeModifiers:[{}]}}} 修改实体 /entitydata @e 实体 类型:物品,数量 C=99 无法破坏Unbreakable, 属性 AttributeModifiers 清空[{}] 正常武器:修改后: 是个花瓶。把需要修改的物品扔地上,然后命令方块激活那个指令,地上那一坨物品就变成个装饰品。
画了几个背景,这样的横版画面喜欢吗? #私人素材,勿用。3D转成2D,都不敢画人物了。 程序难度逻辑难度和设计难度都有所下降,就是眼睛有点疼。。。
再重做《爆破兔头》在2D上面下功夫了
这里收集一下画风很简单的独立游戏给大家参考(长更) 一楼不发,讲几个条件: 下面收集的游戏画风都会是非常简单的, 没有多大细节的但是好玩度依旧很高的独立游戏。
1
下一页