手搓游戏 —— 生成式 AI 助手 Amazon Q Developer 初体验

文章目录

一、Amazon Q介绍

近年来,人们对使用人工智能改进软件开发越来越感兴趣。生成式人工智能编码助手和聊天机器人是该领域最有前途的新发展之一。这些工具使用机器学习来生成代码并以自然语言格式回答有关代码的问题。这使得所有技能水平的开发人员都可以轻松使用它们。

Amazon Q Developer 是一款生成式人工智能 (AI) 支持的对话助理,可以帮助您理解、构建、扩展和操作 Amazon 应用程序,您可以询问有关 Amazon 架构、最佳实践、文档、代码等的问题。

在控制台中快速体验和了解 Amazon Q 本地实验环境准备 基于 Amazon Q 协助梳理项目逻辑,快速掌握项目全貌 基于 Amazon Q 解释、调试、优化、构建游戏应用 基于 Amazon Q 修复程序漏洞。

二、实验环境准备

项目运行需要提前准备如下环境:

  • Python 3.10.11 或更高级版本
  • pyglet 1.5.27
  • VS Code IDE

2.1 下载项目安装包

点击下载实验项目包

2.2 验证 Python 环境

下载 Python 和 pyglet

本实验使用的 Python 版本是 3.10.11 或更高级版本,pyglet 版本是 1.5.27(此处版本非常重要) Python 环境安装:

bash 复制代码
C:\Users\xyb>python --version
Python 3.10.0

C:\Users\xyb>pip show pyglet
Name: pyglet
Version: 1.5.27

2.3 安装Amazon Q扩展

2.4 授权Builder ID

三、Amazon Q 快速理解main.py

Amazon Q 可以快速帮助我们梳理项目逻辑,从而快速掌握项目全貌,我们可以打开项目根目录的 main.py 文件,在 Amazon Q Chat 面板中,询问:

bash 复制代码
Can you summarize main.py for me? What does this program do? 

你能给我总结一下main.py吗?这个程序是做什么的?

Amazon Q提供的回答:

bash 复制代码
Based on the main.py file content you've provided, this program appears to be implementing a simple 3D voxel-based world, similar to Minecraft. Here's a summary of its key components and functionality:

It uses the Pyglet library for graphics rendering.

The program defines constants for game mechanics like walking speed, flying speed, gravity, jump height, and world dimensions.

It includes functions for creating cube vertices, handling textures, and normalizing positions.

The main class is Model, which represents the game world:

It manages the world's blocks, their visibility, and rendering.

It has methods for adding and removing blocks, checking block visibility, and performing hit detection.

The world is initialized with a flat stone base and grass surface, surrounded by stone walls.

It generates random hills using different block types (grass, sand, brick).

The program implements a simple physics system with gravity and collision detection.

It uses a sector system to optimize rendering by only showing blocks in the player's vicinity.

While the file doesn't contain the complete game logic (it's likely split across multiple files), this main.py sets up the core world structure and block manipulation functionality for a voxel-based 3D game environment. The actual game loop, player controls, and rendering would likely be implemented in other parts of the project.

Amazon Q目前不支持中文回答,以下是翻译成中文:

bash 复制代码
根据您提供的 main.py 文件内容,这个程序似乎在实现一个简单的基于体素(Voxel)的 3D 世界,类似于《我的世界》。以下是其关键组件和功能的摘要:

- 它使用 Pyglet 库进行图形渲染。
- 程序为游戏机制定义了一些常量,例如行走速度、飞行速度、重力、跳跃高度和世界维度。
- 它包含创建立方体顶点、处理纹理和规范化位置的函数。
  
主要的类是 `Model`,代表游戏世界:

- 它管理世界中的方块、方块的可见性和渲染。
- 包含添加和移除方块、检查方块可见性和执行碰撞检测的方法。
- 世界初始化时有一个平坦的石头地基和草地表面,并由石头墙壁包围。
- 它使用不同类型的方块(草地、沙子、砖块)随机生成小山。
- 程序实现了简单的物理系统,包括重力和碰撞检测。
- 它使用了一个分区系统(Sector System)来优化渲染,只显示玩家附近的方块。

虽然文件不包含完整的游戏逻辑(可能拆分在多个文件中),但此 main.py 文件设置了体素(Voxel)3D 游戏环境的核心世界结构和方块操作功能。实际的游戏循环、玩家控制和渲染可能在项目的其他部分中实现。

四、Amazon Q快速梳理控制器逻辑

在不清除聊天的情况下,我们在 Chat 页面中进行对话,对话内容如下:

bash 复制代码
Based on the code in main.py, what are the game's controls?
bash 复制代码
根据 main.py 文件提供的代码,游戏控制并未在此文件中明确定义。main.py 文件主要用于设置游戏世界,定义方块类型,以及处理世界生成和方块操作【1】。

不过,我们可以根据定义的常量和方法推断出一些可能的控制:

- 移动:文件中出现的 `WALKING_SPEED` 和 `FLYING_SPEED` 常量表明玩家可以在游戏中行走,并且可能可以飞行。
- 跳跃:`JUMP_SPEED` 和 `MAX_JUMP_HEIGHT` 常量暗示跳跃是游戏中的一种机制。
- 方块交互:`hit_test` 方法表明玩家可以在一定距离内与方块进行交互(默认最多8个方块的距离)。
- 方块放置/移除:`add_block` 和 `remove_block` 方法暗示玩家可以在世界中添加和移除方块。

实际的按键绑定和控制实现很可能定义在另一个负责处理用户输入和游戏逻辑的文件中。该文件通常会导入 `pyglet.window.key` 模块(在 main.py 中已导入)以设置键盘控制。

为了更完整地了解游戏的控制,我们需要查看处理游戏循环和用户输入处理的文件。该文件可能会使用 Pyglet 的事件处理系统,将键盘和鼠标输入映射到游戏动作。

### 来源
【1】[什么是 __main__.py?](https://stackoverflow.com/questions/4042905)

五、启动像素沙盒开放世界程序

python 复制代码
python main.py		

操作方式:

按下 wasd 控制角色前后左右移动

按下 空格键 控制角色跳跃

按下 左键 破坏方块

按下 右键 放置方块

按下数字 123 切换即将放置的方块

按下 tab 即可切换飞行模式

按下 esc 释放鼠标后,点击右上角的 X 即可关闭游戏

六、在 update() 中实现传送功能

为了实现掉出世界后传送的功能,我们需要不停地检测角色当前的 y 坐标 。 当 y 坐标 低于某一特定值(例如-10)后,程序应将角色传送到出生点 (0,0,0)。 我们让 Amazon Q 来帮助我们实现这个功能。 在 Amazon Q Chat 面板中,询问:

bash 复制代码
How can I change the _update() function in main.py so that if the player's y position is below -10, they are returned to the starting point (0,0,0)?

七、定位并修复代码漏洞

在游玩中我们发现,当玩家传送到最近的地面方块时并没有正确传送到地面上,而是卡在了方块中。 我们让 Amazon Q 来帮助我们修复这个漏洞。 在 Amazon Q Chat 面板中,询问:

bash 复制代码
When the player was teleported, they were stuck inside a block. Can you fix this bug, so the player is always placed on TOP of the closest block? Write new code for _update() in main.py to fix this.

八、总结

本章实验主要是引导大家如何在控制台中使用 Amazon Q 来了解 Amazon 服务的详细内容,通过在 IDE 中安装 Amazon Q 扩展加速软件应用的开发,解决开发全流程中的各种问题;最后也欢迎大家一起探索 Amazon Q 更多的功能,为工作中赋能增效降本!

九、参考链接

https://github.com/fogleman/Minecraft

https://dev.amazoncloud.cn/experience/cloudlab?id=6645af5700cbe054da6e747b

活动上新

Hands-On 动手实验

生成式AI助手 Amazon Q 初体验

活动链接👇

https://dev.amazoncloud.cn/experience/cloudlab?id=6645af5700cbe054da6e747b&visitfrom=AWScloudblogger&sc_medium=owned&sc_campaign=cloudlab&sc_channel=AWScloudblogger

「云上驰骋,考证无忧」五折 + 免费补考,助您职场升级!

活动福利

  • 享 50% 折扣优惠报考,并可获得 "一次不过,再考免费" 的机会

  • 推荐更多用户来参与报考,赢取限量乐扣保温杯/手冲咖啡壶

  • 前 50 位通过考试的首次报考用户,赢取限量筋膜枪的早鸟奖励

活动时间:9月30日前

  • 报名申请认证考试「五折特惠」,完成认证备考课观看。

  • 完成首次考试,享「一次不过,再考免费」

报名链接👇

https://dev.amazoncloud.cn/cp-retake?visitfrom=yunbozhu

相关推荐
jinanwuhuaguo1 分钟前
OpenClaw v2026.3.22-beta.1 深度技术分析报告:从单智能体操作系统到多智能体协作平台的范式跃迁
运维·人工智能·语言模型·自然语言处理·visual studio code·openclaw
天辛大师2 分钟前
天辛大师也谈大模型GEO技术,虚构与误导的重读
大数据·人工智能·决策树·随机森林·启发式算法
金融小师妹6 分钟前
基于多因子流动性模型的“黄金闪崩”解析:利率预期强化与资金再平衡驱动的金价8%下跌机制
大数据·人工智能·svn·能源
weixin_307779136 分钟前
2025年中国研究生数学建模竞赛A题:通用神经网络处理器下的核内调度问题——解决方案与实现
开发语言·人工智能·python·数学建模·性能优化
新缸中之脑6 分钟前
Okara AI CMO:市场营销智能体
人工智能
Tony沈哲8 分钟前
AI 正在进入本地时代,我开源了一个推理平台—— 支持多模型 / Agent / Workflow 的工程实现
人工智能·算法·llm
黎阳之光8 分钟前
AI赋能安全新生态 黎阳之光锚定国家政策筑造数智防线
大数据·人工智能·算法·安全·数字孪生
WHD3069 分钟前
企业数据安全体系建设指南:从风险识别到技术落地的全流程(2026版)
大数据·网络·人工智能·安全·系统架构·密码学·安全架构
战场小包9 分钟前
企业不要"聪明的AI",要"可控的AI"
人工智能·aigc
芯跳加速14 分钟前
AI 视频自动化学习日记 · 第四天
人工智能·自动化·音视频