일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 개발
- 개발일지
- 포트폴리오
- 멀티플레이
- meta
- 유니티 GUI
- meta xr
- Oculus
- 오브젝트 풀링
- 가상현실
- 드래곤 플라이트 모작
- 유니티 UI
- CGV
- 유니티 Json 데이터 연동
- 드래곤 플라이트
- Photon Fusion
- 연습
- input system
- 유니티
- 팀프로젝트
- VR
- ChatGPT
- XR
- HAPTIC
- 모작
- OVR
- 오큘러스
- 앱 배포
- 길건너 친구들
- 팀 프로젝트
Archives
- Today
- Total
EasyCastleUNITY
대리자 연습 문제 (1,2,3,4) 본문
1.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
public class Hero
{
int maxHp;
int hp;
//생성자
public Hero()
{
Console.WriteLine("영웅이 생성되었습니다");
}
public void Move(Action callback)
{
Console.WriteLine("이동중.....");
Console.WriteLine("이동중.....");
Console.WriteLine("이동중.....");
Console.WriteLine("이동중.....");
Console.WriteLine("이동중.....");
Console.WriteLine("이동중.....");
Console.WriteLine("이동중.....");
Console.WriteLine("이동완료");
callback();
}
public void HitDamage(int damage, Action<int, int> callback)
{
maxHp = 8;
hp = maxHp - damage;
callback(maxHp - damage, maxHp);
}
}
}
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
//using 지시문을 사용하면 네임스페이스에 정의된 형식을 해당 형식의 정규화된 네임스페이스를 지정하지 않고도 사용할 수 있습니다.
namespace LearnDotnet
{
//형식 정의
public class App
{
public App()
{
Hero hero = new Hero();
hero.HitDamage(3, (hp, maxHp) =>
{
Console.WriteLine("{0}/{1}" , hp, maxHp);
});
}
}
}
2.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
public class Hero
{
//멤버 변수
int maxHp;
int hp;
public Action isDie;
//생성자
public Hero()
{
this.maxHp = 3;
Console.WriteLine("영웅이 생성되었습니다");
}
public Hero(int maxHp)
{
this.maxHp = maxHp;
Console.WriteLine("영웅이 생성되었습니다");
}
public void Move(Action callback)
{
Console.WriteLine("이동중.....");
Console.WriteLine("이동중.....");
Console.WriteLine("이동중.....");
Console.WriteLine("이동중.....");
Console.WriteLine("이동중.....");
Console.WriteLine("이동중.....");
Console.WriteLine("이동중.....");
Console.WriteLine("이동완료");
callback();
}
public void HitDamage(int damage, Action<bool> callback)
{
// maxHp = 8;
hp = maxHp - damage;
callback(this.hp<=0);
}
}
}
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
//using 지시문을 사용하면 네임스페이스에 정의된 형식을 해당 형식의 정규화된 네임스페이스를 지정하지 않고도 사용할 수 있습니다.
namespace LearnDotnet
{
//형식 정의
public class App
{
public App()
{
Hero hero = new Hero();
Hero hero1 = new Hero(8);
hero.HitDamage(3, (IsDie) =>
{
Console.WriteLine("Hero IsDie: {0}" , IsDie);
});
hero1.HitDamage(3, (IsDie) =>
{
Console.WriteLine("Hero1 IsDie: {0}", IsDie);
});
}
}
}
3.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
public class Item
{
public string name;
public Item()
{
this.name = "장검";
}
public Item(string name)
{
this.name = name;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
public class ItemFactory
{
public ItemFactory()
{
}
public void CreateItem(Action <Item> callback)
{
Console.WriteLine("아이템을 만들었습니다");
callback(new Item());
}
}
}
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
//using 지시문을 사용하면 네임스페이스에 정의된 형식을 해당 형식의 정규화된 네임스페이스를 지정하지 않고도 사용할 수 있습니다.
namespace LearnDotnet
{
//형식 정의
public class App
{
public App()
{
ItemFactory factory = new ItemFactory();
factory.CreateItem((item) => {
Console.WriteLine("{0}이 생성되었습니다.", item.name);
});
}
}
}
4.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
public class SkillData
{
//멤버 변수
public int skillId;
public string skillName;
//생성자
public SkillData()
{
this.skillId = 0;
}
public SkillData(int skillId,string skillName)
{
this.skillId=skillId;
this.skillName=skillName;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
public class Skill
{
//멤버 변수
public SkillData data;
//생성자
public Skill()
{
}
public Skill(SkillData data)
{
this.data = data;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
public class DataManager
{
//멤버 변수
//public Action loadComplete;
public static readonly DataManager instance = new DataManager();
Dictionary<int, SkillData> skillDic = new Dictionary<int, SkillData>();
//생성자
private DataManager()
{
}
public SkillData LoadDatas(int id)
{
skillDic.Add(100, new SkillData(100, "파이어볼"));
return skillDic[id];
//this.loadComplete();
// callback();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
public class Hero
{
//멤버 변수
int maxHp;
int hp;
public Action isDie;
//생성자
public Hero()
{
this.maxHp = 3;
Console.WriteLine("영웅이 생성되었습니다");
}
public Hero(int maxHp)
{
this.maxHp = maxHp;
Console.WriteLine("영웅이 생성되었습니다");
}
public void Move(Action callback)
{
Console.WriteLine("이동중.....");
Console.WriteLine("이동중.....");
Console.WriteLine("이동중.....");
Console.WriteLine("이동중.....");
Console.WriteLine("이동중.....");
Console.WriteLine("이동중.....");
Console.WriteLine("이동중.....");
Console.WriteLine("이동완료");
callback();
}
public void HitDamage(int damage, Action<bool> callback)
{
// maxHp = 8;
hp = maxHp - damage;
callback(this.hp<=0);
}
public Action GetSkillAction(int skillId)
{
Skill skill = new Skill(DataManager.instance.LoadDatas(skillId));
Action actionSkill = () =>
{
Console.WriteLine("{0}번에 해당하는 스킬을 시전합니다", skill.data.skillId);
};
return actionSkill;
}
}
}
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
//using 지시문을 사용하면 네임스페이스에 정의된 형식을 해당 형식의 정규화된 네임스페이스를 지정하지 않고도 사용할 수 있습니다.
namespace LearnDotnet
{
//형식 정의
public class App
{
public App()
{
Hero hero = new Hero();
Action action = hero.GetSkillAction(100); //skillId:100
action();
}
}
}
'C#프로그래밍' 카테고리의 다른 글
JSON 파일을 활용한 아이템 정보 저장 프로젝트의 전체적인 흐름 및 복습 (0) | 2023.07.27 |
---|---|
JSON 파일을 활용하여 아이템 정보 저장하기 (0) | 2023.07.27 |
2023/07/26 복습 (0) | 2023.07.26 |
디자인 패턴 (0) | 2023.07.26 |
DataManager (0) | 2023.07.26 |