重温儿时经典《坦克大战》

本文介绍了如何使用Unity2021和VS2019来重现经典游戏《坦克大战》。游戏以坦克战斗与基地防御为核心,允许玩家自创关卡。文章重点在于脚本设计,包括出生效果、子弹移动、爆炸特效、生命值管理、音效、敌方坦克控制、玩家控制与状态管理等关键脚本的实现。
摘要由CSDN通过智能技术生成

1.前言:《坦克大战》是由日本南梦宫Namco游戏公司开发的一款平面射击游戏,于1985年发售。游戏以坦克战斗及保卫基地为主题,属于策略型联机类。同时也是FC平台上少有的内建关卡编辑器的几个游戏之一,玩家可自己创建独特的关卡,并通过获取一些道具使坦克和基地得到强化。而且本文章主要是脚本描述

使用的版本是unity2021版以及vs2019

资源包链接:https://pan.baidu.com/s/1x5Hd6nCb2iXz0aBagbnz2g 
提取码:2536 

 

 

2.效果图

 

3.脚本设计

出生效果:

public class Born : MonoBehaviour
{
    [Header("坦克生成特效脚本:补充代码,实现要求")]

    public GameObject playerPrefab;
    public GameObject enemyPrefab;
    public bool createPlayer;

    void Start()
    {
        Invoke("BornTank", 1f);
        Destroy(gameObject, 1);
    }

    private void BornTank()
    {
        if (createPlayer)
        {
            Instantiate(playerPrefab, transform.position, Quaternion.identity);
        }
        else
        {
            Instantiate(enemyPrefab, transform.position, Quaternion.identity);
        }

    }
}

子弹移动:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Bullect : MonoBehaviour
{
    public float moveSpeed = 10f;
    public bool IsPlayerBullect = true;

    void Update()
    {
        transform.Translate(transform.up * moveSpeed * Time.deltaTime, Space.World);
    }

    private void OnTriggerEnter2D(Collider2D collision)
    {
        switch (collision.tag)
        {
            case "Tank":
                if (!IsPlayerBullect)
                {
                    collision.SendMessage("Die");
                    Destroy(gameObject);
                }
                break;
            case "Heart":
                collision.SendMessage("Die");
                Destroy(gameObject);
                break;
            case "Enemy":
                if (IsPlayerBullect)
                {
                    collision.SendMessage("Die");
                    Destroy(gameObject);
                }
                break;
            case "Wall":
                Destroy(collision.gameObject);
                Destroy(gameObject);
                break;
            case "Barriar":
                Destroy(gameObject);
                break;
            case "Border":
                Destroy(gameObject);
                break;
            default:
                break;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值