Add speed scaling and slide groundwork
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"version": "1.0",
|
||||
"components": [
|
||||
"Microsoft.VisualStudio.Workload.ManagedGame"
|
||||
]
|
||||
}
|
||||
@@ -13,6 +13,11 @@ public class GameManager : MonoBehaviour {
|
||||
|
||||
private int score = 0; // 게임 점수
|
||||
|
||||
// 게임의 스피드를 올리는 변수
|
||||
public float gameSpeed = 1f;
|
||||
public float speedIncreaseRate = 0.05f;
|
||||
public float maxGameSpeed = 2f;
|
||||
|
||||
// 게임 시작과 동시에 싱글톤을 구성
|
||||
void Awake() {
|
||||
// 싱글톤 변수 instance가 비어있는가?
|
||||
@@ -38,6 +43,14 @@ public class GameManager : MonoBehaviour {
|
||||
{
|
||||
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
|
||||
}
|
||||
|
||||
if (!isGameover)
|
||||
{
|
||||
// 게임 진행시 게임 속도는 시간에 따라 증가
|
||||
gameSpeed += speedIncreaseRate * Time.deltaTime;
|
||||
// 게임 최대 속도는 max를 넘어서지 못하게
|
||||
gameSpeed = Mathf.Min(gameSpeed, maxGameSpeed);
|
||||
}
|
||||
}
|
||||
|
||||
// 점수를 증가시키는 메서드
|
||||
|
||||
@@ -9,15 +9,28 @@ public class PlayerController : MonoBehaviour {
|
||||
private bool isGrounded = false; // 바닥에 닿았는지 나타냄
|
||||
private bool isDead = false; // 사망 상태
|
||||
|
||||
private bool isSliding = false; // 슬라이딩 상태
|
||||
|
||||
private Rigidbody2D playerRigidbody; // 사용할 리지드바디 컴포넌트
|
||||
private Animator animator; // 사용할 애니메이터 컴포넌트
|
||||
private AudioSource playerAudio; // 사용할 오디오 소스 컴포넌트
|
||||
|
||||
private CapsuleCollider2D playerCollider; // 플레이어의 콜라이더 충돌 범위
|
||||
private Vector2 originalColliderSize; // 기본 자세일 때 콜라이더 크기
|
||||
private Vector2 originalColliderOffset; // 기본 자세일 때 콜라이더 중심 위치
|
||||
public Vector2 slidingColliderSize; // 슬라이딩 자세일 때 콜라이더 크기
|
||||
public Vector2 slidingColliderOffset; // 슬라이딩 자세일 때 콜라이더 중심 위치
|
||||
|
||||
private void Start() {
|
||||
// 게임 오브젝트로부터 사용할 컴포넌트들을 가져와 변수에 할당
|
||||
playerRigidbody = GetComponent<Rigidbody2D>();
|
||||
animator = GetComponent<Animator>();
|
||||
playerAudio = GetComponent<AudioSource>();
|
||||
|
||||
// 게임 콜라이더를 가져와서 현 상태를 저장
|
||||
playerCollider = GetComponent<CapsuleCollider2D>();
|
||||
originalColliderSize = playerCollider.size;
|
||||
originalColliderOffset = playerCollider.offset;
|
||||
}
|
||||
|
||||
private void Update() {
|
||||
@@ -46,6 +59,16 @@ public class PlayerController : MonoBehaviour {
|
||||
}
|
||||
|
||||
animator.SetBool("Grounded", isGrounded);
|
||||
|
||||
// 마우스 오른쪽 버튼을 누르고 땅에 있는 상태이며 슬라이딩이 아닌 상태면 슬라이딩 작동
|
||||
if (Input.GetMouseButtonDown(1) && isGrounded && !isSliding)
|
||||
{
|
||||
StartSlide();
|
||||
}
|
||||
else if (Input.GetMouseButtonUp(1) && isSliding)
|
||||
{
|
||||
EndSlide();
|
||||
}
|
||||
}
|
||||
|
||||
private void Die() {
|
||||
@@ -83,4 +106,22 @@ public class PlayerController : MonoBehaviour {
|
||||
// 바닥에서 벗어났음을 감지하는 처리
|
||||
isGrounded = false;
|
||||
}
|
||||
|
||||
private void StartSlide()
|
||||
{
|
||||
isSliding = true;
|
||||
animator.SetBool("Sliding", true);
|
||||
|
||||
playerCollider.size = slidingColliderSize;
|
||||
playerCollider.offset = slidingColliderOffset;
|
||||
}
|
||||
|
||||
private void EndSlide()
|
||||
{
|
||||
isSliding = false;
|
||||
animator.SetBool("Sliding", false);
|
||||
|
||||
playerCollider.size = originalColliderSize;
|
||||
playerCollider.offset = originalColliderOffset;
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,7 @@ public class ScrollingObject : MonoBehaviour {
|
||||
// 게임 오브젝트를 왼쪽으로 일정 속도로 평행 이동하는 처리
|
||||
if(!GameManager.instance.isGameover)
|
||||
{
|
||||
transform.Translate(Vector3.left * speed * Time.deltaTime);
|
||||
transform.Translate(Vector3.left * speed * GameManager.instance.gameSpeed * Time.deltaTime);
|
||||
}
|
||||
}
|
||||
}
|
||||
+43
-37
@@ -725,9 +725,9 @@ GameObject:
|
||||
- component: {fileID: 678767704}
|
||||
- component: {fileID: 678767703}
|
||||
- component: {fileID: 678767706}
|
||||
- component: {fileID: 678767702}
|
||||
- component: {fileID: 678767701}
|
||||
- component: {fileID: 678767700}
|
||||
- component: {fileID: 678767707}
|
||||
m_Layer: 0
|
||||
m_Name: Player
|
||||
m_TagString: Player
|
||||
@@ -854,42 +854,6 @@ AudioSource:
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
--- !u!58 &678767702
|
||||
CircleCollider2D:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 678767699}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Density: 1
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_ForceSendLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_ForceReceiveLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_ContactCaptureLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_CallbackLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_IsTrigger: 0
|
||||
m_UsedByEffector: 0
|
||||
m_CompositeOperation: 0
|
||||
m_CompositeOrder: 0
|
||||
m_Offset: {x: 0, y: -0.57}
|
||||
m_Radius: 0.2
|
||||
--- !u!50 &678767703
|
||||
Rigidbody2D:
|
||||
serializedVersion: 5
|
||||
@@ -1006,6 +970,45 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::PlayerController
|
||||
deathClip: {fileID: 8300000, guid: 668a107660fa54fe98e03b698a09aa49, type: 3}
|
||||
jumpForce: 700
|
||||
slidingColliderSize: {x: 1.2, y: 0.6}
|
||||
slidingColliderOffset: {x: 0, y: -0.7}
|
||||
--- !u!70 &678767707
|
||||
CapsuleCollider2D:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 678767699}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Density: 1
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_ForceSendLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_ForceReceiveLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_ContactCaptureLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_CallbackLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_IsTrigger: 1
|
||||
m_UsedByEffector: 0
|
||||
m_CompositeOperation: 0
|
||||
m_CompositeOrder: 0
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Size: {x: 0.8, y: 2}
|
||||
m_Direction: 0
|
||||
--- !u!1 &1190534666
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1628,6 +1631,9 @@ MonoBehaviour:
|
||||
isGameover: 0
|
||||
scoreText: {fileID: 1607182866}
|
||||
gameoverUI: {fileID: 265399405}
|
||||
gameSpeed: 1
|
||||
speedIncreaseRate: 0.05
|
||||
maxGameSpeed: 2
|
||||
--- !u!4 &2028254430
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
@@ -0,0 +1,299 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ba4ab248b8114dcabba3c8afae55abff
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: 5059711287869928597
|
||||
second: JJ_Slide_0
|
||||
- first:
|
||||
213: 9217812641606536001
|
||||
second: JJ_Slide_1
|
||||
- first:
|
||||
213: -1698837454444704123
|
||||
second: JJ_Slide_2
|
||||
- first:
|
||||
213: -4094449989520593375
|
||||
second: JJ_Slide_3
|
||||
- first:
|
||||
213: -4828945674683565807
|
||||
second: JJ_Slide_4
|
||||
- first:
|
||||
213: 8314547675191383737
|
||||
second: JJ_Slide_5
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 30
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 1024
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: JJ_Slide_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 64
|
||||
height: 64
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: 7a3e3bd21d4f46cd0800000000000000
|
||||
internalID: 5059711287869928597
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: JJ_Slide_1
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 64
|
||||
y: 0
|
||||
width: 64
|
||||
height: 64
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: 476ad4dd85eb4b830800000000000000
|
||||
internalID: 9217812641606536001
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: JJ_Slide_2
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 128
|
||||
y: 0
|
||||
width: 64
|
||||
height: 64
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: 3aa4ab81e13d4a5f0800000000000000
|
||||
internalID: -1698837454444704123
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: JJ_Slide_3
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 192
|
||||
y: 0
|
||||
width: 64
|
||||
height: 64
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: 1a52c8a328d342620800000000000000
|
||||
internalID: -4094449989520593375
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: JJ_Slide_4
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 256
|
||||
y: 0
|
||||
width: 64
|
||||
height: 64
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: 2826b418bf1640ef0800000000000000
|
||||
internalID: -4828945674683565807
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: JJ_Slide_5
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 320
|
||||
y: 0
|
||||
width: 64
|
||||
height: 64
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: 115cf86da211444d0800000000000000
|
||||
internalID: 8314547675191383737
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable:
|
||||
JJ_Slide_0: 5059711287869928597
|
||||
JJ_Slide_1: 9217812641606536001
|
||||
JJ_Slide_2: -1698837454444704123
|
||||
JJ_Slide_3: -4094449989520593375
|
||||
JJ_Slide_4: -4828945674683565807
|
||||
JJ_Slide_5: 8314547675191383737
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user