688
社区成员
发帖
与我相关
我的任务
分享| 这个作业属于哪个课程 | 2023年福大-软件工程实践W班 |
|---|---|
| 这个作业要求在哪里 | 团队作业——站立式会议+alpha冲刺 |
| 团队名称 | 网络民工 |
| 这个作业的目标 | Alpha冲刺Day5的站立式会议照片、项目燃尽图、项目进展图片、工作情况表格、Git截图 |
| 其他参考文献 | 《构建之法》 |
目录


增添人物素材

增添背景音乐

实现人物控制器
using System.Collections;
using System.Collections.Generic;
using System.Xml.Serialization;
using Unity.VisualScripting.Dependencies.NCalc;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
private Rigidbody2D rb;
private BoxCollider2D coll;
[Header("移动参数")]
public float speed = 8f;
//下蹲时速度除以的基数
public float crouchSpeedDivisor = 3f;
public float jumpForce = 4f;
float jumpTime;
[Header("状态")]
public bool isCrounch;
public bool isOnGround;
public bool isJump;
[Header("环境检测")]
public LayerMask groundLayer;
//x轴力的方向
private float xVelocity;
//按键设置
bool jumpPressed;
bool jumpHeld;
bool crouchHeld;
//碰撞体尺寸
Vector2 colliderStandSize;
Vector2 colliderStandOffset;
Vector2 colliderCrouchSize;
Vector2 colliderCrouchOffset;
void Start()
{
rb = GetComponent<Rigidbody2D>();
coll = GetComponent<BoxCollider2D>();
colliderStandSize = coll.size;
colliderStandOffset = coll.offset;
colliderCrouchSize = new Vector2(coll.size.x, coll.size.y * 0.5f);
colliderCrouchOffset = new Vector2(coll.offset.x, coll.offset.y-0.25f*coll.size.y);
}
void Update()
{
jumpPressed = Input.GetButtonDown("Jump");
// jumpHeld = Input.GetButton("Jump");
crouchHeld = Input.GetButton("Crouch");
}
private void FixedUpdate()
{
PhysicsCheck();
GroundMovement();
AirMovement();
}
void PhysicsCheck()
{
if (coll.IsTouchingLayers(groundLayer))
{
isOnGround = true;
isJump = false;
}
else
{
isOnGround = false;
}
}
private void GroundMovement()
{
if (crouchHeld && !isCrounch && isOnGround)
Crouch();
else if (!crouchHeld && isCrounch)
StandUp();
else if (!isOnGround && isCrounch)
StandUp();
xVelocity = Input.GetAxis("Horizontal");
if (isCrounch)
xVelocity /= crouchSpeedDivisor;
rb.velocity = new Vector2(xVelocity * speed, rb.velocity.y);
FlipDirection();
}
private void AirMovement()
{
if (jumpPressed && isOnGround && !isJump)
{
isOnGround = false;
isJump = true;
rb.AddForce(new Vector2(0f, jumpForce), ForceMode2D.Impulse);
//Debug.Log("jump");
}
}
//左右翻转角色
private void FlipDirection()
{
if (xVelocity < 0)
transform.localScale = new Vector2(-1.77f, 1.35f);
if (xVelocity > 0)
transform.localScale = new Vector2(1.77f, 1.35f);
}
private void Crouch()
{
isCrounch = true;
coll.size = colliderCrouchSize;
coll.offset = colliderCrouchOffset;
}
private void StandUp()
{
isCrounch = false;
coll.size = colliderStandSize;
coll.offset = colliderStandOffset;
}
}
| 学号 | 项目进展 | 遇到的困难 | 明天安排 | 心得体会 | 成果展示 |
|---|---|---|---|---|---|
| 222000314 | 定义部分实体类,收集背景音乐及相关素材 | 由于第一次接触unity所以导致代码经常出现bug,素材还是难以收集 | 重新开始制作素材 | 查找和收集资料的能力也是至关重要的 |
|
| 222000311 | 创建敌人实体,敌人动画,编写敌人AI代码 | 敌人和玩家碰撞以及敌人之间的碰撞出现bug(飞了,上网查阅后得知需要加一层敌人layer,二者之间的碰撞器不能用盒型而要用圆型 | 继续完善此部分 | 慢慢摸索 |
|
| 222000312 | 完善接口 | 无 | 寻找敌人动作和攻击效果可用的教程和代码,配合同伴工作 | 写代码要常写常反思 | |
| 222000305 | 配置角色动画 | 角色动画未正确播放 | 完善角色控制,完成地图生成 | 应该充分学习之后再进行动手实践 |
|
| 222000315 | 制作了部分怪物敌人的动画 | 由于素材还需要通过photoshop进行处理,加上对unity的不熟练,花费的时间超出了自己的预期。 | 将团队已经完成的各部分进行整合 | 坚持学习! |
|
| 222000306 | 找游戏素材 | 游戏制作需要编写大量的代码,包括游戏逻辑、图形渲染、物理模拟等方面。编程问题包括代码优化、调试、性能问题等,而自己的c#代码编程不太熟,这是一个问题。 | 找道具游戏素材。 | 游戏制作过程中,团队合作和沟通至关重要。游戏制作需要多个角色的协作,如程序员、美术设计师、音效设计师等。团队成员之间要有良好的沟通和协作,及时解决问题。 |
|
| 222000422 | 添加移动组件 | 产生移动到地图外的问题 | 编写战斗脚本 | unity的学习过程很有趣 |
|
| 222000420 | 找怪物动画 | 动画制作和导入 | 学习新内容,布置场景 | 充分利用网络资源很重要 |
|
| 222000135 | 设置几个特殊插件,导入游戏包 | unity需要更新版本才能实现插件功能 | 开始编写游戏脚本 | 很对东西有点忘了,要边实践边学习 |
