前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >腾讯云AI代码助手:你的代码手替

腾讯云AI代码助手:你的代码手替

原创
作者头像
炒香菇的书呆子
修改于 2024-08-26 00:25:51
修改于 2024-08-26 00:25:51
5880
举报

1. 前言

近年来,随着人工智能技术的飞速发展,AIGC和大模型成为了科技圈和互联网行业的热门话题。各类AGI产品以其强大的数据处理能力、高效的学习机制以及广泛的应用前景,赢得了广泛关注。我们可以在众多领域使用AI来帮助我们生成文本,图片甚至视频。但是对于编程代码领域,哪个产品更深得我心呢?

上个月接触到了腾讯AI 代码助手,刚开始觉得它与同类的AIGC应用差不多,也就没有太放在心上,可是用了之后,体验感还不错,尤其是再配合腾讯云的其他产品一起使用,甚至有点爱不释手。

5916260414b0c5a2144337cee908e62
5916260414b0c5a2144337cee908e62

腾讯云 AI 代码助手是由腾讯云自研的一款开发编程提效辅助工具,开发者可以通过插件的方式将 AI 代码助手安装到编辑器中辅助编程工作(VS Code 或者 JetBrians 系列 IDE);而 AI 代码助手插件将提供:自动补全代码、根据注释生成代码、代码解释、生成测试代码、转换代码语言、技术对话等能力。通过腾讯云 AI 代码助手,开发者可以更高效地解决实际编程问题,提高编程效率和代码质量。

今天带大家体验如何快速上手使用腾讯云 AI 代码助手

腾讯云 AI 代码助手安装链接:腾讯云 AI 代码助手

image-20240826003536576
image-20240826003536576

2.配置安装腾讯云 AI 代码助手

目前腾讯云 AI 代码助手助手支持 100+ 种主流的编程语言,同时也支持如 VS Code、IntelliJ IDEA、GoLang、PyCharm、WebStorm等主流编译器。兼容性很好

关于腾讯云 AI 代码助手的入门介绍,请看这篇文章,此次不在详细介绍入门

腾讯云 AI 代码助手入门介绍:https://cloud.tencent.com/document/product/1749/104236

安装配置介绍:https://cloud.tencent.com/document/product/1749/105967

3. AI 代码助手编程实战

在上述第二部分我们通过在vscode上使用腾讯云 AI 代码助手简单了解了其功能特性,下面我们通过一个java项目,了解如何在开发中使用腾讯云 AI 代码助手

测试工具:

操作系统版本:windows 11 专业版

IntelliJ IDEA 版本:2024.1.1

java版本:jre-8u411-windows-x64.exe

Java开发工具包:jdk1.8

Comate 版本:

项目代码:https://download.csdn.net/download/qq_43475285/19694306

3.1 环境配置

关于IDEA的使用安装,这里不做过多介绍,详情请了解IDEA及java官网

IDEA下载:https://www.jetbrains.com/idea/

java下载:https://www.java.com/zh-CN/

java安装配置教程:https://www.java.com/zh-CN/download/help/download_options.html

在配置完基本信息后,我们在IDEA中导入我们的java项目。

此java项目为一个单机版本坦克大战游戏,我们将通过使用腾讯云 AI 代码助手对项目代码进行优化和增加详细注释

image-20240516150442932
image-20240516150442932

运行,看一下效果,

加入我们作为一个小白,初次接触这个java项目,项目运行结果为一个坦克大战的单机游戏,但是今天游戏怎么玩并不是我们的关注重点,我需要快速上手了解代码的逻辑结构,以快速对其进行升级优化

12
12

我们手动浏览一下代码结构,编辑相对规范一些,但是注释相对较少,类引用逻辑有点混乱

21
21

对于新手来说很难快速看懂,那么怎样才能快速入门上手一个java项目呢

传统的方式如下

阅读代码结构:了解项目的目录结构,重点关注主要的源代码文件、配置文件和资源文件。 阅读核心类和模块的代码,特别注意项目中的关键业务逻辑、框架使用方式以及重要的设计模式。 使用调试工具:学会使用IDE的调试功能,通过设置断点、步进执行等方法,深入理解代码的执行流程和数据流向。 查阅文档和注释:仔细阅读项目中的文档和代码注释。良好的注释能够大大加快你对项目理解的速度。 小步快跑:从小的功能或修复开始做起,逐步增加对项目的贡献。实践是学习最快的方式。 提问与交流:加入项目相关的沟通渠道(如Slack、钉钉群、邮件列表),不要害怕提问。团队成员的经验和解答往往能让你少走弯路。 持续学习:Java生态系统庞大,不断有新的框架和技术出现。保持好奇心,持续学习相关技术和最佳实践,对于快速适应新项目非常有帮助。

这次我们体验点不一样的,使用baidu Comate工具来快速帮助我们上手java项目

3.2 配置腾讯云 AI 代码助手工具

选择File--settings

image-20240826004804859
image-20240826004804859

然后选择Plugins,右侧搜索腾讯云 AI 代码助手,然后insatll

image-20240826004936970
image-20240826004936970

然后重启IDEA

重启IDEA后,系统会提示我们需要登录AI代码助手

重启之后,左下角提升我们需要登录

image-20240826005300910
image-20240826005300910

选择登录,同意授权

image-20240826005326293
image-20240826005326293

然后返回IDEA,可以看到在左侧就可以使用我们的AI代码助手了

image-20240826005435723
image-20240826005435723

3.3 使用腾讯云 AI 代码助手进行代码优化

3.3.1 代码注释优化

首先我需要腾讯云 AI 代码助手帮我梳理一下代码逻辑,首先我们要选中需要分析的代码片段

例如我要了解Tree类的代码,并且需要帮我添加注释

image-20240826005639512
image-20240826005639512

我们可以对比一下前后的代码片段

代码语言:java
AI代码解释
复制
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;

//设置界面树和丛林
public class Tree {
	public static final int width = 30;
	public static final int length = 30;
	int x, y;
	TankClient tc ;
	private static Toolkit tk = Toolkit.getDefaultToolkit();
	private static Image[] treeImags = null;
	static {
		treeImags = new Image[]{
				tk.getImage(CommonWall.class.getResource("Images/tree.gif")),
		};
	}
	
	
	public Tree(int x, int y, TankClient tc) {  //Tree的构造方法,传递x,y和tc对象
		this.x = x;
		this.y = y;
		this.tc = tc;
	}
	
	public void draw(Graphics g) {           //画出树
		g.drawImage(treeImags[0],x, y, null);
	}
	
}

Comate生成注释后的代码片段

代码语言:java
AI代码解释
复制
// 导入必要的库
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;

// 定义Tree类
public class Tree {
    // 定义树的宽度和长度
    public static final int width = 30;
    public static final int length = 30;
    // 定义树的坐标
    int x, y;
    // 定义一个TankClient对象,用于处理游戏中的坦克客户端逻辑
    TankClient tc;
    // 定义一个静态的Toolkit对象,用于获取系统资源
    private static Toolkit tk = Toolkit.getDefaultToolkit();
    // 定义一个静态的Image数组,用于存储树的不同状态的图片
    private static Image[] treeImags = null;
    // 静态代码块,用于初始化treeImags数组
    static {
        treeImags = new Image[]{
                tk.getImage(CommonWall.class.getResource("Images/tree.gif")),
        };
    }
    
    // 定义Tree类的构造函数,用于创建树的实例
    public Tree(int x, int y, TankClient tc) {  //Tree类的构造函数,接收x,y坐标和TankClient对象作为参数
        this.x = x;
        this.y = y;
        this.tc = tc;
    }
    
    // 定义draw方法,用于绘制树
    public void draw(Graphics g) {           //绘制树的方法,接收一个Graphics对象作为参数
        g.drawImage(treeImags[0],x, y, null);
    }
}

良好的代码规范和注释标注对于一个大型代码项目来说十分的关键和必要,但是很多程序员并不喜欢写代码注释。通过腾讯云 AI 代码助手来生成代码注释可以极大的减轻程序员的工作压力,同时也能提高代码的易读性。

写代码注释的好处如下:

  1. 提高可读性:注释可以帮助其他开发者(或未来的你)更快地理解代码的功能和工作原理。良好的注释可以概述代码块、函数或类的目的,使得阅读代码就像阅读说明书一样直接明了。
  2. 促进团队协作:在团队开发环境中,注释是沟通的重要工具。它们帮助团队成员理解彼此的思路和实现方式,减少沟通成本,加快开发进度。
  3. 便于维护和调试:随着时间推移,项目会不断迭代和扩展,新加入的开发者或原作者在回顾旧代码时可能会感到困惑。注释能提供上下文信息,说明特定代码段为何如此编写,有助于快速定位问题和进行修改。
3.3.2 代码结构调优

除了生成注释外,还可以对我们编写的代码进行格式优化,来提高执行效率

在项目代码编辑栏中,对于我们创建的java类,腾讯云 AI 代码助手提供函数注释,行间注释,生成单测,代码解释,调优建议等功能

image-20240826010041975
image-20240826010041975

查看变更过程

image-20240826010246269
image-20240826010246269

运行一下生成的代码,看一下项目能否跑起来

image-20240826010901729
image-20240826010901729
3.3.3 自动生成测试案例

单元测试(Unit Testing)是软件开发过程中的重要一环,用于验证代码中的最小可测试单元是否按预期工作。

通过腾讯云 AI 代码助手可以自动生成测试样例

每个测试方法都遵循类似的结构:

  1. 准备测试数据:定义输入值和预期输出值。
  2. 调用被测试方法:使用输入值调用目标方法。
  3. 验证结果:使用JUnit的assertEquals方法比较实际结果与预期结果,确保它们相等。如果结果不符,则测试失败,并打印出错误信息。

使用腾讯云 AI 代码助手生成Tank类单测

image-20240826011041588
image-20240826011041588
代码语言:java
AI代码解释
复制
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;

public class TankClientTest {
    private TankClient tankClient;
    private Tank tank;

    @Before
    public void setUp() {
        tankClient = new TankClient();
        tank = new Tank(100, 100, true, Direction.STOP, tankClient);
    }

    @Test
    public void testTankMovement() {
        tank.move();
        assertEquals(100, tank.getX()); // 假设Tank类有一个getX方法来获取坦克的X坐标
    }

    @Test
    public void testTankTurn() {
        tank.turn(Direction.LEFT);
        assertEquals(Direction.WEST, tank.getDirection()); // 假设Tank类有一个getDirection方法来获取坦克的方向
    }
}
3.3.4 代码优化建议

对于编写的代码,comate还可以提供优化建议,对于大部分初级程序员来说,编写代码最主要考虑的是能够实现需求和功能,对于代码的编码规范,分离点,异常处理考虑还不够周到

comate可以自动生成优化建议,来提高代码的规范性,并自动生成建议代码

  • 遵守编码规范:遵循Java编码规范,如使用驼峰命名法,保持代码风格一致。
  • 分离关注点:随着项目复杂度增加,考虑将不同类型的计算(如加法、减法)拆分成不同的类或方法,遵循单一职责原则。
  • 考虑异常处理:虽然当前示例简单,但在实际项目中应考虑输入验证及异常处理逻辑,比如对除法操作进行分母为零的检查。

选中要生成优化的代码,优化的代码会在左侧生成后,根据是否符合我们需求选择并入到代码中

image-20240826010730742
image-20240826010730742

针对这段代码,Comate做了如下优化

优化前

代码语言:java
AI代码解释
复制
public void draw(Graphics g) {
		if (!live) {
			if (!good) {
				tc.tanks.remove(this); // 删除无效的
			}
			return;
		}

		if (good)
			new DrawBloodbBar().draw(g); // 创造一个血包

		switch (Kdirection) {
							//根据方向选择坦克的图片
		case D:
			g.drawImage(tankImags[0], x, y, null);
			break;

		case U:
			g.drawImage(tankImags[1], x, y, null);
			break;
		case L:
			g.drawImage(tankImags[2], x, y, null);
			break;

		case R:
			g.drawImage(tankImags[3], x, y, null);
			break;

		}

		move();   //调用move函数
	}

优化后

代码语言:java
AI代码解释
复制
public void keyPressed(KeyEvent e) {  //接受键盘事件
    int key = e.getKeyCode();
    switch (key) {
        case KeyEvent.VK_R:  //当按下R时,重新开始游戏 
            resetGame();
            break;
        case KeyEvent.VK_RIGHT: //监听向右键
            setDirection(Direction.RIGHT);
            break;
        case KeyEvent.VK_LEFT://监听向左键
            setDirection(Direction.LEFT);
            break;
        case KeyEvent.VK_UP:  //监听向上键
            setDirection(Direction.UP);
            break;
        case KeyEvent.VK_DOWN://监听向下键
            setDirection(Direction.DOWN);
            break;
    }
    decideDirection();//调用函数确定移动方向
}

// 新增方法:重置游戏
private void resetGame() {
    tc.tanks.clear();  //清理
    tc.bullets.clear();
    tc.trees.clear();
    tc.otherWall.clear();
    tc.homeWall.clear();
    tc.metalWall.clear();
    tc.homeTank.setLive(false);
    if (tc.tanks.size() == 0) {   //当在区域中没有坦克时,就出来坦克      
        for (int i = 0; i < 20; i++) {
            if (i < 9)                              //设置坦克出现的位置
                tc.tanks.add(new Tank(150 + 70 * i, 40, false,
                        Direction.RIGHT, tc));
            else if (i < 15)
                tc.tanks.add(new Tank(700, 140 + 50 * (i -6), false,
                        Direction.DOWN, tc));
            else
                tc.tanks.add(new Tank(10,  50 * (i - 12), false,
                        Direction.LEFT, tc));
        }
    }

    tc.homeTank = new Tank(300, 560, true, Direction.STOP, tc);//设置自己出现的位置

    if (!tc.home.isLive())  //将home重置生命
        tc.home.setLive(true);
    new TankClient(); //重新创建面板
}

// 新增方法:设置移动方向
private void setDirection(Direction dir) {
    switch (dir) {
        case RIGHT:
            bR = true;
            bL = false;
            bU = false;
            bD = false;
            break;
        case LEFT:
            bR = false;
            bL = true;
            bU = false;
            bD = false;
            break;
        case UP:
            bR = false;
            bL = false;
            bU = true;
            bD = false;
            break;
        case DOWN:
            bR = false;
            bL = false;
            bU = false;
            bD = true;
            break;
    }
}
3.3.5 帮你弄懂代码

在接手一个新java项目时,如果注释相对较少,我们可能不太容易明白一段代码的含义

通过腾讯云 AI 代码助手可以快速理解代码结构和功能,而且解释的十分通俗易懂,对于小白也很容易上手

我通过腾讯云 AI 代码助手来帮我梳理一下这个项目代码的功能

image-20240826011510210
image-20240826011510210
代码语言:java
AI代码解释
复制
图像资源:项目中的bin/Images/目录包含了一系列的图像文件,这些文件可能代表游戏中的不同元素,如坦克、树木、河流等。
主类:Home.class可能是游戏的主界面或主控制类,而TankClient.class似乎是负责游戏逻辑和玩家交互的主要类。
键盘事件处理:
Tank.java文件中的keyPressed(KeyEvent e)方法处理键盘按下事件,根据不同的按键(上、下、左、右箭头键)来设置移动方向标志位(bL、bU、bR、bD)。
keyReleased(KeyEvent e)方法处理键盘释放事件,其中KeyEvent.VK_F键触发fire()方法,可能用于发射子弹。
移动方向决定:decideDirection()方法根据当前的移动方向标志位来确定坦克的实际移动方向。如果所有方向标志位都为假(即没有按键被按下),则坦克保持静止。
绘制和更新:虽然代码片段中没有直接提到绘制方法,但通常在JavaSwingJavaFX等图形界面框架中,会有一个循环或定时器来定期调用repaint()方法,以更新屏幕上的图像。
游戏逻辑:项目中的其他类(如TankClient$1.classBullets.classBombTank.class等)可能包含游戏的具体逻辑,如子弹的移动、碰撞检测、生命值的获取等。
文件结构:项目的目录结构表明它使用了IDE(如IntelliJ IDEA),并且有.iml文件,这是IDEA模块文件,用于存储模块的配置信息。
其他资源:src/Images/目录可能包含源代码级别的图像资源,而out/production/目录可能包含编译后的类文件和其他资源。
总结来说,这个项目是一个Java坦克战斗游戏,玩家通过键盘控制坦克移动和射击,游戏逻辑和界面更新在后台处理。
3.3.6 帮你写代码

前几个功能都是在辅助我们优化或者更改已经编辑的代码,那么腾讯云 AI 代码助手在生成代码方面的能力如何?

观察我们的项目架构

image-20240826011557336
image-20240826011557336

基本上就是安装不同的功能分为不同的java类和函数,进行调用。现在我想要增加新的功能。例如游戏时间计算时间功能。当我结束一段游戏可以显示游戏时长。看一下生成的代码能否满足要求

发现腾讯云 AI 代码助手并不能在IDEA中直接为我们编写新文件,只能提供样例,最后的编写还需要我们手动完成

image-20240826011818020
image-20240826011818020
代码语言:java
AI代码解释
复制
public class Weather {
    public enum WeatherType {
        SUNNY, RAINY, SNOWY
    }

    private WeatherType currentWeather;

    public Weather() {
        this.currentWeather = WeatherType.SUNNY; // 默认天气为晴天
    }

    public void changeWeather(WeatherType weather) {
        this.currentWeather = weather;
    }

    public void updateEnvironment(Graphics g) {
        switch (currentWeather) {
            case SUNNY:
                // 更新晴天时的环境
                break;
            case RAINY:
                // 更新雨天时的环境
                break;
            case SNOWY:
                // 更新雪天时的环境
                break;
        }
    }
}

最后测试,使用腾讯云 AI 代码助手优化完项目代码后,看一下能否正常执行

image-20240826012229374
image-20240826012229374

4. 使用感受

4.1 整体感受

整体上在体验腾讯云 AI 代码助手后,上手很简单,功能各方面都很完善。对于在开发过程中编写代码或者生成测试案例都有很大的帮助。腾讯云 AI 代码助手把代码理解、生成、优化等能力无缝集成到研发流程的各个环节,就像助理一样,帮助提升代码开发质量和效率。对开发者的代码编写效率有十分明显的提升。

尤其是可以针对我们的特定文件,特定网页等信息来准确的生成更贴切实际的答案。

4.2 改进建议

  1. 提高代码生成效率

在使用腾讯云 AI 代码助手优化长代码时,尝试三次才执行成功,失败概率较大。且有时生成的代码和源代码没有发现区别

  1. 针对不同代码场景进行定制化优化

在使用腾讯云 AI 代码助手生成单测时,的确成功生成了,但单测并不能直接替换源代码,造成报错。并不是所有生成的代码都可以采纳就会替换源代码

  1. 代码风格统一性

在演示过程中我使用的代码都为java,但是腾讯云 AI 代码助手却生成了python代码,与要求不符

4.3 使用腾讯云 AI 代码助手会造成程序员失业吗

使用代码生成工具并不直接导致程序员失业,反而在多数情况下是提高了程序员的工作效率和项目的开发速度。这类工具可以帮助程序员自动生成标准化的代码片段、处理重复性高的任务、构建基础架构代码等,使得开发者能够更加专注于解决业务逻辑中的复杂问题、创新和优化系统设计。

所以我个人认为合理的使用腾讯云 AI 代码助手智能代码助手并不会造成失业,反而会提高我们的开发效率,不用重复造轮子浪费时间,把更多的精力用于提升代码结构和完整性。提高开发效率。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C语言坦克大战
//里规格:长39*2=78 (真坐标)(假坐标宽为39) 高39
紫禁玄科
2022/03/24
1K0
C语言坦克大战
Java实现坦克大战3.0
文章和代码已经归档至【Github仓库:https://github.com/timerring/java-tutorial 】。 IO 流-应用到坦克大战 坦克大战0.5版 增加功能 防止敌人坦克重叠运动 记录玩家的总成绩(累积击毁敌方坦克数),存盘退出【io流】 记泉退出游戏时敌人坦克坐标/方向,存盘退出【io流】 玩游戏时,可以选择是开新游戏还是继续上局游戏 package com.hspedu.tankgame5; /** * 炸弹 */ public class Bomb {
timerring
2023/05/09
1.7K0
Java实现坦克大战3.0
java飞机大战_java飞机大战代码步骤解析
这是一个功能相对全的Java版坦克大战,界面绘制是通过Java的图形化用户界面swing完成的,包括了菜单界面和游戏界面。其中菜单界面可以供玩家选择重新开始游戏、暂停、继续、是否播放背景音乐、设置游戏难度等操作;游戏界面绘制了坦克、河流、草地、墙壁、鹰碉堡等经典坦克场景,玩家在游戏界面操作自己的坦克开始对战。
全栈程序员站长
2022/09/22
1.2K0
java飞机大战_java飞机大战代码步骤解析
腾讯云AI代码助手:AI辅助编写测试用例,测试从此不求人
在软件开发过程中,编写测试用例是确保代码质量的重要环节。然而,对于新手编程学习者来说,撰写高质量的测试用例可能是一个巨大的挑战。AI 代码助手作为一个智能编程辅助工具,正是为了解决这一难题而设计的。
Yan-英杰
2024/08/08
9940
腾讯云AI代码助手:AI辅助编写测试用例,测试从此不求人
【Java实战】Java实现坦克大战(韩顺平版)
小皮侠
2024/04/08
6280
【Java实战】Java实现坦克大战(韩顺平版)
经典 90 坦克大战 Python 版实现(支持单双人模式)
坦克大战是一个比较经典的小游戏,而 90 坦克大战是一个比较经典的版本,我们来看一下如何利用 Python 实现坦克大战,先睹为快。
Python小二
2020/08/18
1.7K0
经典 90 坦克大战 Python 版实现(支持单双人模式)
用 Python 写个坦克大战
坦克大战是一款策略类的平面射击游戏,于 1985 年由 Namco 游戏公司发布,尽管时至今日已经有了很多衍生类的游戏,但这款游戏仍然受到了相当一部分人的欢迎,本文我们看一下如何使用 Python 来实现这款游戏,游戏实现主要用到的 Python 库为 pygame。
纯洁的微笑
2020/07/03
2.2K0
用 Python 写个坦克大战
JAVA贪吃蛇小游戏_js贪吃蛇难吗
在完成坦克大战之后,就想到了贪吃蛇这个小游戏,因为这两个游戏太像了,因此,就决定把这个游戏来尝试的写下。接下来的几篇博文就是来记录这个小游戏实现的全过程。
全栈程序员站长
2022/08/03
1.2K0
腾讯云 AI 代码助手攻略
在人工智能技术的飞速发展下,大型模型和生成式AI应用如雨后春笋般涌现,AI编程助手亦在此浪潮中迅速成长和成熟。继腾讯、字节跳动相继宣布其AI智能开发工具正式上线之后,百度和阿里巴巴也于去年10月相继推出了AI编程助手的正式版本。至此,我国互联网行业的四大巨头——百度、阿里巴巴、腾讯、字节跳动——均已推出了各自的AI编程助手。本文将向您详细介绍并指导如何使用腾讯云AI代码助手,助您编写更加优雅的代码,轻松摆脱代码审查的困扰,显著降低bug发生率。
全栈若城
2024/08/04
7490
腾讯云 AI 代码助手攻略
用Python实现坦克大战游戏 | 干货贴
《坦克大战》是1985年日本南梦宫Namco游戏公司在任天堂FC平台上,推出的一款多方位平面射击游戏。游戏以坦克战斗及保卫基地为主题,属于策略型联机类。同时也是FC平台上少有的内建关卡编辑器的几个游戏之一,玩家可自己创建独特的关卡,并通过获取一些道具使坦克和基地得到强化。而今天我们就将利用python还原以下坦克大战的制作。
小白学视觉
2020/10/26
1.2K0
用Python实现坦克大战游戏 | 干货贴
Java实现坦克大战1.0
下图说明了Java坐标系。坐标原点位于左上角,以像素为单位。在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。
timerring
2023/05/07
7880
Java实现坦克大战1.0
java版坦克大战游戏源码
package tankwar; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.io.File; import java.io.FileInputStream; import java.util.ArrayList; import java.util.Ran
用户8671053
2021/09/23
9460
Java实现坦克大战2.0
文章和代码已经归档至【Github仓库:https://github.com/timerring/java-tutorial 】。 线程-应用到坦克大战 坦克大战0.3 分析如何实现当用户按下J键,我们的坦克就发射一颗子弹,思路: 当发射一颗子弹后,就相当于启动一个线程 Hero有子弹的对象,当按下J时,我们就启动一个发射行为(线程),让子弹不停的移动,形成一个射击的效果。 我们MyPanel需要不停的重绘子弹,才能出现该效果. 当子弹移动到面板的边界时,就应该销毁(把启动的子弹的线程销毁) 坦克大战0.
timerring
2023/05/09
1.1K0
自己动手写游戏:坦克撕逼大战
START:最近在公交车上无聊,于是用平板看了看下载的坦克大战的开发教程,于是在晚上回家后花了两天模仿了一个,现在来总结一下。
Edison Zhou
2018/08/20
1.5K0
自己动手写游戏:坦克撕逼大战
用腾讯云AI代码助手开发一款数据库敏感信息检查工具
作为一个优秀的 IT 技术民工,需要始终学习先进的技术并将技术转换为生产力,目前 AI 领域编码辅助工具层出不穷,开发者有必要或者说必须要掌握相关工具的使用,以提高编码效率,降低编码错误。这次我通过一个简单的项目和大家分享一下腾讯云 AI 代码助手的使用。
腾讯云代码助手
2024/12/15
1620
腾讯云AI代码助手实战:HTML5版本贪吃蛇小游戏
你好,我是喵喵侠。市面上有很多AI编程助手,可以帮你提升开发效率。最近我发现了一款很好用的国产AI编程助手,那就是——腾讯云AI代码助手。我想用它来开发一款小游戏,正好贪吃蛇这款游戏简单易懂,也富有挑战性,就选它了。我会在这篇文章中,讲述我是如何用它来指导我开发HTML5版本贪吃蛇小游戏的。我将从项目需求分析开始,到具体实现步骤,再到总结,带你一步步实现这个经典游戏。
喵喵侠
2024/08/25
3010
腾讯云AI代码助手实战:HTML5版本贪吃蛇小游戏
FlyBird(飞翔的小鸟)Java小游戏
《flappy bird》是一款由来自越南的独立游戏开发者Dong Nguyen所开发的作品,游戏于2013年5月24日上线,并在2014年2月突然暴红。2014年2月,《Flappy Bird》被开发者本人从苹果及谷歌应用商店(Google Play)撤下。2014年8月份正式回归App Store,正式加入Flappy迷们期待已久的多人对战模式。游戏中玩家必须控制一只小鸟,跨越由各种不同长度水管所组成的障碍。
GeekLiHua
2025/01/21
1400
FlyBird(飞翔的小鸟)Java小游戏
腾讯云 AI 代码助手:用智能技术提升开发体验
腾讯云 AI 代码助手是一款基于混元代码大模型的智能编码辅助工具,能够显著提升开发效率。
小草飞上天
2025/02/26
2804
腾讯云 AI代码助手 | 尽享 AI时代下的程序员福利
AI时代下,可以说AI的飞速发展,影响着各行各业,同时也为各行各业带来了新的发展机遇。那么同样的,AI也为程序员带来了一大福利---腾讯云 AI 代码助手(以下统称为 AI代码助手 或 腾讯云 AI代码助手)。
六月的雨在Tencent
2024/08/10
9001
Java实现俄罗斯方块小游戏。(附完整源代码)
俄罗斯方块是俄罗斯人发明的。这人叫阿列克谢·帕基特诺夫(Алексей Пажитнов 英文:Alexey Pazhitnov)。俄罗斯方块原名是俄语Тетрис(英语是Tetris),这个名字来源于希腊语tetra,意思是“四”,而游戏的作者最喜欢网球(tennis)。于是,他把两个词tetra和tennis合而为一,命名为Tetris,这也就是俄罗斯方块名字的由来。
百思不得小赵
2022/12/01
6K1
Java实现俄罗斯方块小游戏。(附完整源代码)
相关推荐
C语言坦克大战
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档