Alpha冲刺随笔-DAY2-橘色肥猫

这个作业属于哪个课程软件工程A
这个作业要求在哪里团队作业–站立式会议+alpha冲刺
作业目标记录alpha冲刺Day2
团队名称橘色肥猫
团队置顶集合随笔链接Alpha冲刺笔记-置顶-橘色肥猫-CSDN博客

站立式会议图片

请添加图片描述

项目燃尽图

请添加图片描述

成员描述

102101143 傅晗
Unity2d 背包逻辑是指在Unity游戏开发中,如何实现一个可以存储和管理物品的背包系统。背包的交互逻辑:如何让玩家可以对背包中的物品进行操作,例如拾取、使用、丢弃、交换、合成等。一种常用的方法是使用Unity的事件系统,给每个格子添加一个事件触发器组件,用来监听玩家的点击或拖拽事件,然后根据不同的事件类型,执行相应的逻辑,例如更新背包的数据和界面,调用物品的功能,播放音效或动画等。Unity2d 背包逻辑需要考虑到很多细节和情况,例如背包的容量限制,物品的堆叠规则,物品的分类和排序,物品的拾取和使用条件,物品的交互反馈等,这些都需要仔细的设计和测试,避免出现逻辑错误或BUG。

102101209 颜一虹
昨天站立式会议到现在的项目进展:设计第二部分场景切换顺序
存在的问题/遇到的困难:开发人员表示有部分切换场景无法理解
今天到明天会议安排:继续设计剧情场景切换逻辑顺序
心得体会:今天继续熟悉了游戏剧情的发展顺序,又因为缺少和开发人员的沟通,描述方式与开发人员的理解方式不同,所以花费了一定的时间进行交流整改,下次就不会啦。

102101237 翁国平
今天把剧情更加理顺,并且找到了几张符合剧情的素材

112100237 辜智荣
今天找到了一些和情节适配度较高的图片,也对情节切换方面提出了一些意见。困难主要是在图片中提示部分的安排,需要使不同场景之间的线索安排具有连贯性。

102101217苏锦森
发现图生图生成图片需要非常细致的观察力和创新思维。每一个细节都需要精心设计,每一个元素都需要和整体的游戏风格协调一致。这需要我在理解游戏背景、角色设定和故事情节的基础上,创造出符合游戏氛围的图片。
在实际操作中,我遇到了一些技术上的困难。比如,如何把握好图片的分辨率和大小,使其既能保证画质清晰,又不会过大影响游戏的运行速度。又比如,如何利用图像处理软件的各种功能,实现我想要的效果。这些都需要我不断学习和实践。

102101208 涂欣雨
昨天站立式会议到现在的进展:梳理出第二部分游戏场景的切换顺序
存在的问题/遇到的困难:剧本中存在一些逻辑模糊的地方
今天到明天会议的安排:继续梳理游戏场景的切换顺序,细化游戏线索
心得体会:今天根据剧本梳理了一下第二部分游戏场景的切换顺序,针对剧本逻辑模糊的地方与开发人员进行了沟通。

102101613 石贤炜
昨天站立式会议结束后,小组成员们回去后积极的执行分配到的任务。在今天的小组会议上,大家各自阐述了自己任务的完成情况,负责代码的同学向大家述说了自己编程中遇到的困难,然后与我们讨论代码编写出来的程序与剧情的适配度,负责素材与剧情策划的同学提了不少的意见,大家反复磋商,整场会议下来,感觉游戏又优化了不少,界面更加友好,用户交互的体验感应该会增强。我分配到的任务依旧是找素材,继续努力,继续加油,打造精品游戏!!!

102101225 张鸿诚
Unity 2d 人物移动是一个非常基础和重要的功能,让玩家可以通过键盘、鼠标、触摸屏等输入设备来控制人物的移动方向和速度,以及人物的跳跃和攻击等动作,可以让游戏有更多的互动性和动态性,让玩家有更好的游戏体验和沉浸感。
Unity 2d 人物移动需要考虑到很多细节和情况,例如人物的动画和物理的匹配和平滑,人物的控制的灵敏和准确,人物的移动的限制和边界,人物的移动的反馈和提示,以及重力加速度等。

代码签入签出记录

在这里插入图片描述

实现背包逻辑

Item.cs

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

public class Item : MonoBehaviour
{
    // Start is called before the first frame update
    public ItemName itemName;

    public void ItemClicked()
    {
        InventoryManager.Instance.AddItem(itemName);
        this.gameObject.SetActive(false);
    }
    
}

Inventory Manager

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

public class InventoryManager : Singleton <InventoryManager>
{
    public ItemDataList_SO itemData;
    [SerializeField] private List<ItemName> itemList = new List<ItemName>();
    private void OnEnable()
    {
        EventHandler.ItemUsedEvent += OnItemUsedEvent;
        EventHandler.ChangeItemEvent += OnChangeItemEvent;
        EventHandler.AfterSceneloadEvent += OnAfterSceneUnloadEvent;
    }
    private void DisEnable()
    {
        EventHandler.ItemUsedEvent -= OnItemUsedEvent;
        EventHandler.ChangeItemEvent -= OnChangeItemEvent;
        EventHandler.AfterSceneloadEvent -= OnAfterSceneUnloadEvent;
    }
    private void OnAfterSceneUnloadEvent()
    {
        if (itemList.Count == 0)
            EventHandler.CallUpdateUIEvent(null, -1);
        else
        {
            for(int i = 0; i < itemList.Count; i++)
            {
                EventHandler.CallUpdateUIEvent(itemData.GetItemDetails(itemList[i]), i);
            }
        }
    }
    private void OnChangeItemEvent(int index)
    {
        if(index >=0&&index <itemList.Count) { 
            ItemDetails item = itemData.GetItemDetails(itemList[index]);
            EventHandler.CallUpdateUIEvent(item, index);
        }
    }
    private void OnItemUsedEvent(ItemName itemName)
    {
        var index = GetItemIndex(itemName);
        itemList.RemoveAt(index);
        if (itemList.Count == 0)
            EventHandler.CallUpdateUIEvent(null, -1);
    }
    public void AddItem(ItemName itemName)
    {
        if (!itemList.Contains(itemName)){
            itemList.Add(itemName);
            EventHandler.CallUpdateUIEvent(itemData.GetItemDetails(itemName), itemList.Count - 1);

        }
    }
    private int GetItemIndex(ItemName itemName)
    {
        for (int i = 0; i < itemList.Count; i++)
        {
            if (itemList[i] == itemName)
                return i;
        }
        return -1;
    }
}

ItemDataList_SO.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(fileName = "ItemDataList_SO", menuName = "Inventory/ItemDataList_SO")]
public class ItemDataList_SO : ScriptableObject
{
    public List<ItemDetails> itemDetailsList;
    public ItemDetails GetItemDetails(ItemName itemName)
    {
        return itemDetailsList.Find(i=>i.itemName == itemName);
    }
}

[System.Serializable]
public class ItemDetails
{
    public ItemName itemName;
    public Sprite itemSprite;
}

Player control

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

public class PlayerControl : MonoBehaviour
{
    private Animator ani;
    private Rigidbody2D rBody;
    void Start()
    {
        ani = GetComponent<Animator>();
        rBody = GetComponent<Rigidbody2D>();

    }

    // Update is called once per frame
    void Update()
    {
        float horizontal = Input.GetAxisRaw("Horizontal");
        float vertical = Input.GetAxisRaw("Vertical");
        if (horizontal != 0)
        {
            ani.SetFloat("Horizontal", horizontal);
            ani.SetFloat("Vertical", 0);
        }
        if(vertical != 0)
        {
            ani.SetFloat("Horizontal", 0);
            ani.SetFloat("Vertical", vertical);
        }
        Vector2 dir = new Vector2(horizontal, vertical);
        ani.SetFloat("Speed", dir.magnitude);
        rBody.velocity = dir * 0.5f;

    }
}

请添加图片描述
CameraControl

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

public class CameraControl : MonoBehaviour
{
    public Transform target;
    public float MinY;
    public float MaxY;
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        Vector3 v3 = transform.position;
        v3.y = target.position.y;
        if(v3.y>MaxY)   v3.y = MaxY;
        if(v3.y<MinY)   v3.y = MinY;
        transform.position = v3;
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值