๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๊ฒŒ์ž„๊ฐœ๋ฐœ

[1] ํฌ๋กฌ ๋‹ค์ด๋…ธ ๊ฒŒ์ž„ - ๋ฐฐ๊ฒฝ, ์บ๋ฆญํ„ฐ ๋งŒ๋“ค๊ธฐ

์ผ๋‹จ ๊ฐ€์žฅ ๋จผ์ € ์ƒ๊ฐ๋‚˜๋Š”๊ฒŒ ๋ฐฐ๊ฒฝ, ์บ๋ฆญํ„ฐ๋ผ์„œ ์–˜๋„ค๋“ค์„ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ ์œ„ํ•ด์„œ ๋จผ์ €, ์Šคํ”„๋ผ์ดํŠธ๋ฅผ ์ฐ์–ด์คฌ์Šต๋‹ˆ๋‹ค. ํฌ๋กฌ T-Rex ๊ฒŒ์ž„์—์„œ F12๋ฅผ ๋ˆ„๋ฅด๊ณ  ๋„คํŠธ์›Œํฌ ๋‹จ์„ ์‚ดํŽด๋ณด๋ฉด ์Šคํ”„๋ผ์ดํŠธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ, ์ €๋Š” ๋ชป์ฐพ์•„์„œ pixilart ์‚ฌ์ดํŠธ์—์„œ ์ง์ ‘ ์ฐ์—ˆ์Šต๋‹ˆ๋‹ค ใ… 

 

๊ณต๋ฃก์€ ๋‹ฌ๋ฆฌ๊ธฐ, ์•‰๊ธฐ, ์ฃฝ์Œ 3๊ฐ€์ง€ ์ƒํƒœ๊ฐ€ ์žˆ์–ด์„œ ์ด๋ฅผ ๊ฐ๊ฐ ์ฐ์–ด์ฃผ๊ณ  ๋ฐฐ๊ฒฝ์€ ๊ตฌ๋ฆ„์ด ์žˆ์ง€๋งŒ ์ง€๊ธˆ ๋‹น์žฅ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋ผ์„œ ์ผ๋‹จ ๋Œ€์ถฉ ํ•˜๋Š˜์ƒ‰ ์‚ฌ์ง„ ๊ฐ€์ ธ๋‹ค ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ•˜๊ณ  ๋ฐ”๋‹ฅ๋งŒ ์ง์ ‘ ์ฐ์–ด์คฌ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ฐ๋Š”๊น€์— ์„ ์ธ์žฅ๋„ ๊ฐ™์ด ์ฐ์–ด์คฌ์Šต๋‹ˆ๋‹ค. ์›๋ž˜ ์ต๋ฃก๋„ ์ฐ์–ด์•ผ ํ•˜๋Š”๋ฐ, ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ๋งŒ ๋งŒ๋“œ๋Š” ๊ฒŒ ๋ชฉํ‘œ๋ผ์„œ ์ต๋ฃก์€ ๋‚˜์ค‘์— ์ฐ์–ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์•„, ๊ทธ๋ฆฌ๊ณ  ์ด๊ฑฐ ์ฐ์œผ๋ฉด์„œ ํฌ๋กฌ T-Rex ๊ฒŒ์ž„์— ์•‰๊ธฐ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ๊ฑฐ ์ฒ˜์Œ ์•Œ์•˜์Šต๋‹ˆ๋‹ค..

 

run dino.png
down dino.png

 

die run.png    die down.png

 

cactaceae.png

 

ground.png
Dino sprite.zip
0.01MB

 

์ด ์Šคํ”„๋ผ์ดํŠธ๋“ค์„ ์ด์šฉํ•ด์„œ ํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์ถฉ๋Œ ๊ตฌ์—ญ์„ ์„ค์ •ํ•˜๊ณ  ๊ฐ ์ƒํƒœ์— ๋”ฐ๋ฅธ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋งŒ๋“ค์–ด ์คฌ์Šต๋‹ˆ๋‹ค.

 

 

IDEL ์• ๋‹ˆ๋ฉ”์ด์…˜ | JUMP ์• ๋‹ˆ๋ฉ”์ด์…˜

 

RUN ์• ๋‹ˆ๋ฉ”์ด์…˜

 

Crouch Run ์• ๋‹ˆ๋ฉ”์ด์…˜

 

์„œ์„œ ๋‹ฌ๋ฆฌ๋‹ค ์ฃฝ์€ ์ƒํƒœ์™€ ์•‰์•„์„œ ๋‹ฌ๋ฆฌ๋‹ค ์ฃฝ์€ ์ƒํƒœ ์• ๋‹ˆ๋ฉ”์ด์…˜

 

์ฒ˜์Œ์— ์•‰๊ธฐ ์Šคํ”„๋ผ์ดํŠธ์˜ ๋†’์ด์™€ ์„œ์žˆ๋Š” ์ƒํƒœ์˜ ์Šคํ”„๋ผ์ดํŠธ ๋†’์ด๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์ž˜๋ผ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋งŒ๋“ค์—ˆ๋”๋‹ˆ ์ž๊พธ ๋ฐœ์ด ์žˆ๋Š” ์œ„์น˜๊ฐ€ ์„œ๋กœ ๋‹ฌ๋ผ์„œ ์ž์—ฐ์Šค๋Ÿฌ์šด ์›€์ง์ž„์ด ๋‚˜์˜ค์ง€ ์•Š๊ธธ๋ž˜ ์•‰๊ธฐ ์• ๋‹ˆ๋ฉ”์ด์…˜์— transform Property๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค๋งŒ ์ด๊ฒŒ ์• ๋‹ˆ๋ฉ”์ด์…˜์— ์ ์šฉํ•œ transform Property๋Š” ๊ณตํ†ต์œผ๋กœ ์ ์šฉ๋˜๋”๋ผ๊ณ ์š”? ๊ทธ๋ž˜์„œ ๋†’์ด๋ฅผ ๋˜‘๊ฐ™์ด ์ž๋ฅธ ์Šคํ”„๋ผ์ดํŠธ๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์„œ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ์ ํ”„, ์•‰๊ธฐ ๊ธฐ๋Šฅ๋„ ๊ตฌํ˜„ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

 

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

public class Player : MonoBehaviour
{
    private Rigidbody2D rigid;
    private Animator animator;

    [SerializeField]
    private float jumpSpeed;
    private bool isGround = true;

    void Start() 
    {
        rigid = GetComponent<Rigidbody2D>();
        animator = GetComponent<Animator>();
    }
    
    void Update()
    {
        Jump();
        Sit();
    }

    void Jump()
    {
        if (Input.GetKeyDown(KeyCode.UpArrow) && isGround)
        {
            rigid.AddForce(Vector3.up * jumpSpeed, ForceMode2D.Impulse);
            isGround = false;
            animator.SetBool("isJump", true);
        }
    }

    void Sit()
    {
        if (Input.GetKeyDown(KeyCode.DownArrow) && isGround)
        {
            animator.SetBool("isDown", true);
        } else if (Input.GetKeyUp(KeyCode.DownArrow) && isGround)
        {
            animator.SetBool("isDown", false);
        }
    }
    
    private void OnCollisionEnter2D(Collision2D other) 
    {
        if (other.gameObject.tag == "Foreground") {
            isGround = true;
            animator.SetBool("isJump", false);
        }
    }
}

 

๋ฐ”๋‹ฅ์€ ํ•˜๋‚˜ํ•˜๋‚˜ ๊ฒŒ์ž„์˜ค๋ธŒ์ ํŠธํ™”ํ•˜์—ฌ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•๋งŒ ์žˆ๋‚˜ ์‹ถ์—ˆ๋Š”๋ฐ ์ฐพ์•„๋ณด๋‹ˆ ํƒ€์ผ๋งต ๊ธฐ๋Šฅ์ด๋ž€๊ฒŒ ์žˆ๋”๋ผ๊ณ ์š”? ๊ทธ๋ž˜์„œ ์ด ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•ด์„œ ์‰ฝ๊ฒŒ ๋ฐ”๋‹ฅ์„ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ๋ฌดํ•œ ์Šคํฌ๋กค๋งํ•˜์—ฌ ๋ฌดํ•œ๋Œ€๋กœ ๋‹ฌ๋ฆฌ๋Š” ๋“ฏํ•œ ๋А๋‚Œ์„ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ T-Rex ๊ฒŒ์ž„๋„ ๋ฐ”๋‹ฅ์€ ์บ๋ฆญํ„ฐ๋ณด๋‹ค ํ”ฝ์…€ ํฌ๊ธฐ๊ฐ€ ์ž‘๊ธฐ ๋•Œ๋ฌธ์— Scale๋กœ ํฌ๊ธฐ๋ฅผ ์ข€ ์ž‘๊ฒŒ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜, ์ถฉ๋Œ ๊ตฌ์—ญ์„ ์•„๋ž˜์ชฝ์— ์ฃผ์–ด ๊ฒŒ์ž„์ฒ˜๋Ÿผ ๋•… ์œ„๋ฅผ ๊ฑท๋Š”๋“ฏํ•œ ๋А๋‚Œ์„ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

 

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

public class Foreground : MonoBehaviour
{
    [SerializeField]
    private float moveSpeed = 7f;

    void Update()
    {
        transform.position += Vector3.left * moveSpeed * Time.deltaTime;

        if (transform.position.x <= -23.5f)
        {
            transform.position = new Vector3(13.25f, transform.position.y, 0);
        }
    }
}

์ถฉ๋Œ ๊ตฌ์—ญ์„ ์•„๋ž˜์— ์คฌ์Šต๋‹ˆ๋‹ค.

 

์ตœ์ข… ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿด์‹ธํ•˜์ง€์š”