首页 > 其他分享 >简单塔防小游戏

简单塔防小游戏

时间:2024-06-23 18:21:03浏览次数:23  
标签:selectedTurretData 游戏 mapCube 塔防 else 小游戏 怪物 简单

  塔防,即炮塔防御(Tower Defence),也统称TD ,指一类通过在地图上建造炮塔或类似建筑物,以阻止游戏中敌人进攻的策略型游戏,要有阵图。塔防受众很广,游戏模式简单而且可玩性极强,时至今日,塔防在游戏应用中依然是最热门的下载类型之一,比较经典的像《植物大战僵尸》。

  本设计使用当前流行的跨平台游戏引擎Unity3d,编程语言为C#。在游戏中,玩家可以在任何空白的地块上建造各种防御塔用于攻击不同类型的怪物,怪物会按照预定的路线前进,当进入目的地的怪物到达一定数量后游戏会失败;当进入目的地的怪物没有到达指定数量且所有怪物都被击杀后游戏通关。使用Unity3d引擎来设计让UI、游戏地图的布置大幅简化。并通过使用拓展性强的类,使得开发者能快速添加新的怪物、防御塔等,提高开发效率的同时,还降低了游戏的开发成本。

  本文主要从选题背景与意义、可行性与需求分析、游戏设计与功能实现、测试等四个方面,按照制作的流程对本次设计进行论述,对开发的思路、实现以及实现过程中的主要问题都予以描述记录。

游戏画面

项目结构目录

  核心代码:

if ( Input.GetMouseButtonDown(0))
        {
            if (EventSystem.current.IsPointerOverGameObject()==false)
            {
                //开发炮台的建造
                Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                RaycastHit hit;
                bool isCollider = Physics.Raycast(ray,out hit, 1000, LayerMask.GetMask("MapCube"));
                if (isCollider)
                {
                    MapCube mapCube = hit.collider.GetComponent<MapCube>();
                    if (selectedTurretData != null && mapCube.turretGo == null)
                    {
                        //可以创建 
                        if (money > selectedTurretData.cost)
                        {
                            ChangeMoney(-selectedTurretData.cost);
                            mapCube.BuildTurret(selectedTurretData);
                        }
                        else
                        {
                            //提示钱不够
                            moneyAnimator.SetTrigger("Flicker");
                        }
                    }
                    else if (mapCube.turretGo != null)
                    {
                        
                        // 升级处理
                        
                        //if (mapCube.isUpgraded)
                        //{
                        //    ShowUpgradeUI(mapCube.transform.position, true);
                        //}
                        //else
                        //{
                        //    ShowUpgradeUI(mapCube.transform.position, false);
                        //}
                        if (mapCube == selectedMapCube && upgradeCanvas.activeInHierarchy)
                        {
                            StartCoroutine(HideUpgradeUI());
                        }
                        else
                        {
                            ShowUpgradeUI(mapCube.transform.position, mapCube.isUpgraded);
                        }
                        selectedMapCube = mapCube;
                    }

                }
            }
        }
    }

下载链接:TowerDefenseProject: 简单塔防小游戏

标签:selectedTurretData,游戏,mapCube,塔防,else,小游戏,怪物,简单
From: https://www.cnblogs.com/rexiefengye/p/18263763

相关文章

  • [算法篇] 简单讲讲一维前缀和与差分
    前缀和:先给定义:指某序列的前n项和是不是与我们高中所学的数列求和类似?给出用途: 如我们于一组长度为n的整数序列中询问m次,每次询问中输出区间[l,r]中数之和倘若我们先不使用前缀和,预测一下思路将会是:m次询问中,每一次都求和数组[l,r]时间复杂度为O(n),思路很简单但若m非常大则将......
  • 基于Spring Boot的MyBatis整合示例:构建简单的用户管理系统
    目录1.创建一个新的SpringBoot项目2.添加必要的依赖3.配置数据库连接4.创建实体类5.创建Mapper接口6.创建MapperXML文件7.创建Service类8.创建Controller类9.启动应用程序10.测试在当今的软件开发中,SpringBoot和MyBatis作为两个流行的Java框架,常常被......
  • Unity 小游戏转换(一)—— WebGL+XLua导出
    转载或者引用本文内容请注明来源及原作者一、前言小游戏的红海赛道,给游戏市场带来了新的活力。小游戏依托微信、抖音等第三方平台,因为买量成本较低、开箱既玩的特性,使得许多开发厂商开始布局小游戏平台。同时Unity引擎也花费了大量的精力(团结引擎),慢慢更改开发者对于Unity庞大......
  • 简单讲一下Mobile Aloha模拟环境代码
    MobileAloha模拟环境有两部分代码:1. https://github.com/tonyzhaozh/act  ---里面有ACT论文的链接2. https://github.com/MarkFzp/act-plus-plus  ---这个是我们要介绍的代码ACT算法全称是 ActionChunkingwithTransformers,大体意思是:用机械臂的n个帧的视频......
  • 构建本地智能知识问答系统:基于Langchain和ChatGLM的简单实践
    在数字化时代,智能知识问答系统成为了提升企业效率和数据安全性的关键工具。本文将介绍如何基于Langchain和ChatGLM构建一个本地化、支持中文的智能知识问答系统。该系统不仅能够实现完全本地化推理,而且对开源模型友好,可满足企业对数据隐私和私域化部署的需求。项目概览本项目利......
  • 数据导出简单处理:Java中导出excel数据!!!
    达成的功能:查询出数据集合List,把集合内容导出成excel文件数据。直接上代码:1、pom.xml<!--阿里excel--><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId>......
  • 搭建一个纪念相册!ui超级好看也特别简单
    本篇文章是基于雨云服务器进行搭建的为什么选择雨云服务器而不是家用电脑呢?因为相较于家用电脑,使用服务器的成本更低并且更稳定如果你还没有注册雨云账号,可以通过以下链接进行注册,或者注册时填写优惠码mianfei,注册后有五折优惠,还有免费服务器使用注册链接:雨云-新一代云服......
  • js/ts prototype最简单且深刻的理角
    最关健的二点:1.js任何对象(函数也是对象)都有__proto__私有属性,有的可能会显示[[Prototype]](chorme浏览器),代码直接访问属性会报错,但可以正常运行的。__proto__只是另一个对象的引用(一般是类型对象,也可以修改)。2.只有函数对象Function才有.prototype属性,它本身就是一个对象,给......
  • Android Studio 实现简单倒计时
    MainActivity代码:packagecom.example.time;importandroidx.appcompat.app.AppCompatActivity;importandroid.os.Bundle;importandroid.os.CountDownTimer;importandroid.widget.TextView;publicclassMainActivityextendsAppCompatActivity{privateTex......
  • 制作一个简单HTML电影网页设计(HTML+CSS)
    HTML实例网页代码,本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。文章目录一、网页介绍一、网页效果二、代码展示1.HTML......