在浩瀚的编程挑战中,jsm 编程挑战赛脱颖而出,成为开发人员展示技能和创造力的绝佳机会。上个月的主题“视频游戏”为一场激动人心的比赛奠定了基础,推动参与者探索游戏开发的新领域。在这篇博文中,我将分享我如何创建“宇宙探索者”的旅程,这款游戏最终带领我在星际编码冒险中取得胜利。
游戏:宇宙探索者
代码:github
jsm 编程挑战赛为参与者提出了一个广泛的主题:“视频游戏”。我们可以自由地从头开始创建视频游戏、利用游戏 api,甚至为现有游戏构建粉丝页面。可能性就像宇宙本身一样无穷无尽。
在与我的女朋友(她,剧透警告,成为我在这个挑战中的秘密武器)进行一些头脑风暴会议之后,我们决定开始创建一款基于太空的游戏。于是,《宇宙探索者》诞生了——一款以太空探索、从遥远星球收集资源以及与敌舰作战为中心的游戏。
我做出的最重要的决定之一是选择 phaser 作为我的游戏开发库。尽管以前从未创建过网页游戏,但我还是被 phaser 的功能所吸引,并决定尝试一下。这个决定为我在比赛期间最大的挑战和最重要的学习经历奠定了基础。
// example of initializing a phaser game const config = { type: phaser.auto, width: 800, height: 600, scene: { preload: preload, create: create, update: update } }; const game = new phaser.game(config);
在开发游戏的同时学习 phaser 就像以极快的速度穿越小行星带。学习曲线很陡峭,有时,我感觉自己迷失在太空中。然而,随着我的进步,事情开始步入正轨。我的代码可能更像意大利面条,而不是整洁的星图,但它完成了工作。
// example of adding a sprite in phaser function create() { this.add.image(null, 300, 'sky'); this.player = this.physics.add.sprite(null, 450, 'player'); this.player.setcollideworldbounds(true); }
挑战持续了24天,我以为我是在首次发布后5天就开始了我的旅程。这段时间,我一直以一种轻松的态度来对待cosmic explorer的开发。当我受到启发时我就开始工作,当我需要的时候我会休息一下。这种方法让整个过程充满乐趣并防止倦怠。
通过这次挑战,我在我的编程工具包中发现了一个新星座——phaser。学习使用这个库为游戏开发开辟了一个全新的可能性,这是我以前从未探索过的。
我相信《宇宙探索者》的与众不同之处在于它融合了令人怀旧的像素艺术(我了不起的女朋友制作了所有这些,并且肯定让我获胜)和现代游戏元素。视差星空背景营造出身临其境的体验,动作系统也获得了众多玩家的好评。复古风格的音效增添了另一层魅力,引起了评委和选手的共鸣。
// Example of creating a parallax background function create() { this.bg1 = this.add.tileSprite(null, 0, config.width, config.height, 'background1').setOrigin(null, 0); this.bg2 = this.add.tileSprite(null, 0, config.width, config.height, 'background2').setOrigin(null, 0); } function update() { this.bg1.tilePosition += 0.5; this.bg2.tilePosition += 1; } // This was not my solution, but the same principle. Check out the GitHub repo for the solution :)
对于那些想要开始类似编码之旅的人,这是我的建议:
使用 cosmic explorer 赢得 jsm 编程挑战赛是一次穿越广阔的游戏开发领域的令人难以置信的旅程。它教会了我新技能,突破了我的界限,最重要的是,让我想起了编码的乐趣。无论您是经验丰富的太空船长还是新学员,我都鼓励您接受类似的挑战。你永远不知道你会发现什么新世界。
祝您编码愉快,愿您的编译时间更短,错误更少!