首页 科技周边 IT业界 建立UI和游戏玩法的乒乓球克隆

建立UI和游戏玩法的乒乓球克隆

Feb 19, 2025 am 11:30 AM

>本教程增强了建立在团结的基本基本克隆,添加了经典的两个美学,改进的游戏机制和复古风格的UI。 让我们升级我们的乒乓球!

>

第2部分:Retro Revamp&Enhanced Gameplay

>

>本教程建立在先前的乒乓球上。 从Github下载项目或在继续之前完成第1部分。 还可以使用工作的演示和最终改进的游戏。

>

密钥改进:

  • 经典样式:进口黑色和白色精灵,对真实复古视觉效果调整单位像素(至64)。将主摄像头背景更改为黑色,并相应地更新桨和球精灵。使用多个缩放的白色精灵创建一个中央分隔线。
  • 增强的碰撞:完善球碰撞处理以计算桨的冲击角度,从而使弹跳更加现实。 这涉及更新BallController脚本的OnCollisionEnter2D方法以使用launchAngle>函数。请记住适当地标记玩家和敌人桨。
  • 改善了敌人的AI:使用基于时间的计算,增强响应能力和挑战。修改脚本以使用EnemyController,调整速度和时机以获得最佳平滑度。 添加边界以防止AI桨在屏幕上脱离。 InvokeRepeating("Move", .02F, .02F)脚本应在销毁球后重置敌方桨的位置。 BoundsController
  • 复古暂停菜单:
  • 使用自定义像素字体(如丝线屏幕)创建暂停菜单。包括具有适当功能的“重置”和“主菜单”按钮。 >脚本管理暂停和恢复,并显示/隐藏暂停菜单元素。 确保用“ Showonpause”标记暂停菜单元素。> UIManager>
  • >动态主菜单:
  • 在后台设计带有模拟AI游戏的主菜单。 复制主游戏场景,删除不必要的元素,并添加标题和“播放”按钮。使用>和脚本(类似于敌人AI,但对速度和时机进行调整)来控制主菜单中的AI桨。 AutoPlayer> AutoEnemy评分系统:
  • 实现一个跟踪播放器和AI得分的评分系统,在UI上显示它们(使用脚本),并在得分限制时结束游戏(例如,7分达到),在屏幕上显示游戏。
  • >脚本显示获胜者。 切记用“ showonfinish”元素标记游戏。 PointCounterGameOver

代码片段:Building a Pong Clone in Unity: UI and Gameplay

(ballcontroller.cs- oncollisionEnter2d&启动angle)

void OnCollisionEnter2D(Collision2D col) {
    if (col.gameObject.tag == "Enemy") {
        float y = launchAngle(transform.position, col.transform.position, col.collider.bounds.size.y);
        Vector2 d = new Vector2(1, y).normalized;
        rig2D.velocity = d * speed * 1.5F;
    }
    if (col.gameObject.tag == "Player") {
        float y = launchAngle(transform.position, col.transform.position, col.collider.bounds.size.y);
        Vector2 d = new Vector2(-1, y).normalized;
        rig2D.velocity = d * speed * 1.5F;
    }
}

float launchAngle(Vector2 ball, Vector2 paddle, float paddleHeight) {
    return (ball.y - paddle.y) / paddleHeight;
}
登录后复制

(eneycontroller.cs-移动)

void Move() {
    if (ball == null) {
        ball = GameObject.FindGameObjectWithTag("Ball").transform;
    }
    ballRig2D = ball.GetComponent<Rigidbody2D>();
    if (ballRig2D.velocity.x > 0) {
        if (ball.position.y > this.transform.position.y + .5F) {
            transform.Translate(Vector3.up * speed * Time.deltaTime);
        } else if (ball.position.y < this.transform.position.y - .5F) {
            transform.Translate(Vector3.down * speed * Time.deltaTime);
        }
    }
    // ... bounds checking ...
}
登录后复制

(uimanager.cs- partial)

// ... other methods ...

public void showFinished() {
    foreach (GameObject g in finishObjects) {
        g.SetActive(true);
    }
}

// ... other methods ...
登录后复制

void Update () {
    text.text = rightBound.GetComponent<BoundController>().enemyScore + "\t\t" +
                leftBound.GetComponent<BoundController>().playerScore;
}
登录后复制

(gameover.cs)

>
void Update () {
    if(uiManager.playerWon){
        text.text = "GAME OVER!\nPLAYER WON!";
    } else if(uiManager.enemyWon){
        text.text = "GAME OVER!\nENEMY WON!";
    }
}
登录后复制

记住在AI脚本中调整速度和计时等值以微调游戏难度。 这种增强的乒乓球可提供更完整,更具吸引力的复古游戏体验。 GitHub链接(输入中未提供)将包含完整的项目文件。

以上是建立UI和游戏玩法的乒乓球克隆的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

CNCF ARM64飞行员:影响和见解 CNCF ARM64飞行员:影响和见解 Apr 15, 2025 am 08:27 AM

该试点程序是CNCF(云本机计算基础),安培计算,Equinix金属和驱动的合作,简化了CNCF GitHub项目的ARM64 CI/CD。 该计划解决了安全问题和绩效

使用AWS ECS和LAMBDA的无服务器图像处理管道 使用AWS ECS和LAMBDA的无服务器图像处理管道 Apr 18, 2025 am 08:28 AM

该教程通过使用AWS服务来指导您通过构建无服务器图像处理管道。 我们将创建一个部署在ECS Fargate群集上的next.js前端,与API网关,Lambda函数,S3桶和DynamoDB进行交互。 Th

21个开发人员新闻通讯将在2025年订阅 21个开发人员新闻通讯将在2025年订阅 Apr 24, 2025 am 08:28 AM

与这些顶级开发人员新闻通讯有关最新技术趋势的了解! 这个精选的清单为每个人提供了一些东西,从AI爱好者到经验丰富的后端和前端开发人员。 选择您的收藏夹并节省时间搜索REL

See all articles