mirror of
https://github.com/boudji-ludwig-pett/cnam-geometry-dash.git
synced 2025-06-10 22:20:40 +02:00
Compare commits
11 Commits
v1.0.0-sta
...
develop
Author | SHA1 | Date | |
---|---|---|---|
9ae6535915
|
|||
87bed290dc
|
|||
a8cf1669f5
|
|||
470cff34e1 | |||
068c38a411 | |||
f717507eb2
|
|||
a96463f186
|
|||
885dd802bb
|
|||
c38eecfbda
|
|||
8caca60647
|
|||
becd9c455e
|
3
.github/workflows/ci.yml
vendored
3
.github/workflows/ci.yml
vendored
@ -49,6 +49,7 @@ jobs:
|
||||
with:
|
||||
name: build-windows
|
||||
path: build/
|
||||
owerwrite: true
|
||||
|
||||
build-macos:
|
||||
runs-on: "ubuntu-latest"
|
||||
@ -81,6 +82,7 @@ jobs:
|
||||
with:
|
||||
name: build-macos
|
||||
path: build/
|
||||
owerwrite: true
|
||||
|
||||
build-linux:
|
||||
runs-on: "ubuntu-latest"
|
||||
@ -113,6 +115,7 @@ jobs:
|
||||
with:
|
||||
name: build-linux
|
||||
path: build/
|
||||
owerwrite: true
|
||||
|
||||
create-release:
|
||||
needs: [build-windows, build-macos, build-linux]
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -7,9 +7,9 @@ public class ShipGameMode : IGameMode
|
||||
private const float HorizontalSpeed = 8.6f;
|
||||
private const float JumpForce = 26.6581f;
|
||||
private const KeyCode JumpKey = KeyCode.Space;
|
||||
private const float UpperAngle = 45f;
|
||||
private const float LowerAngle = -45f;
|
||||
private const float RotationTransitionDuration = 0.5f;
|
||||
private const float MaxAscentAngle = 45f;
|
||||
private const float MaxDescentAngle = -45f;
|
||||
private const float RotationSpeed = 360f;
|
||||
|
||||
public void Update(Player player)
|
||||
{
|
||||
@ -20,26 +20,28 @@ public class ShipGameMode : IGameMode
|
||||
if (jumpPressed)
|
||||
{
|
||||
Jump(player);
|
||||
}
|
||||
|
||||
if (Input.GetKeyDown(JumpKey))
|
||||
{
|
||||
player.Transform.rotation = Quaternion.Euler(0, 0, UpperAngle);
|
||||
}
|
||||
else
|
||||
{
|
||||
player.Transform.rotation = Quaternion.Euler(0, 0, UpperAngle);
|
||||
}
|
||||
float targetAngle;
|
||||
if (player.RigidBody.linearVelocity.y > 0.1f)
|
||||
{
|
||||
float velocityLerp = Mathf.Clamp01(player.RigidBody.linearVelocity.y / JumpForce);
|
||||
targetAngle = Mathf.Lerp(0f, MaxAscentAngle, velocityLerp);
|
||||
}
|
||||
else if (player.RigidBody.linearVelocity.y < -0.1f)
|
||||
{
|
||||
float velocityLerp = Mathf.Clamp01(Mathf.Abs(player.RigidBody.linearVelocity.y) / 20f);
|
||||
targetAngle = Mathf.Lerp(0f, MaxDescentAngle, velocityLerp);
|
||||
}
|
||||
else
|
||||
{
|
||||
float currentAngle = GetCurrentZAngle(player);
|
||||
|
||||
float t = Mathf.Clamp01(Time.deltaTime / RotationTransitionDuration);
|
||||
float interpolationFactor = Mathf.Sin(t * (Mathf.PI / 2));
|
||||
float newAngle = Mathf.Lerp(currentAngle, LowerAngle, interpolationFactor);
|
||||
player.Transform.rotation = Quaternion.Euler(0, 0, newAngle);
|
||||
targetAngle = 0f;
|
||||
}
|
||||
|
||||
float currentAngle = GetCurrentZAngle(player);
|
||||
float newAngle = Mathf.MoveTowardsAngle(currentAngle, targetAngle, RotationSpeed * Time.deltaTime);
|
||||
player.Transform.rotation = Quaternion.Euler(0, 0, newAngle);
|
||||
|
||||
if (player.Particle.gameObject.activeSelf)
|
||||
{
|
||||
player.Particle.gameObject.SetActive(false);
|
||||
@ -58,19 +60,21 @@ public class ShipGameMode : IGameMode
|
||||
|
||||
public void Jump(Player player)
|
||||
{
|
||||
player.RigidBody.linearVelocity = new Vector2(player.RigidBody.linearVelocity.x, 0);
|
||||
player.RigidBody.AddForce(Vector2.up * JumpForce, ForceMode2D.Impulse);
|
||||
if (player.LevelsLoader != null)
|
||||
if (player.RigidBody.linearVelocity.y <= 0.1f)
|
||||
{
|
||||
player.LevelsLoader.IncreaseTotalJumps();
|
||||
player.RigidBody.linearVelocity = new Vector2(player.RigidBody.linearVelocity.x, 0);
|
||||
player.RigidBody.AddForce(Vector2.up * JumpForce, ForceMode2D.Impulse);
|
||||
if (player.LevelsLoader != null)
|
||||
{
|
||||
player.LevelsLoader.IncreaseTotalJumps();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void OnCollisionEnter(Player player, Collision2D collision)
|
||||
{
|
||||
float currentAngle = GetCurrentZAngle(player);
|
||||
float shortestAngle = Mathf.DeltaAngle(currentAngle, 0);
|
||||
player.Transform.rotation = Quaternion.RotateTowards(player.Transform.rotation, Quaternion.Euler(0, 0, 0), Mathf.Abs(shortestAngle));
|
||||
float snappedAngle = 0f;
|
||||
player.Transform.rotation = Quaternion.Euler(0, 0, snappedAngle);
|
||||
}
|
||||
|
||||
public void OnCollisionExit(Player player, Collision2D collision)
|
||||
|
@ -166,7 +166,6 @@ public class LevelEditor : MonoBehaviour
|
||||
{
|
||||
if (!IsPlacementValid())
|
||||
{
|
||||
Debug.Log("Placement invalide : collision.");
|
||||
return;
|
||||
}
|
||||
PlaceBlock();
|
||||
@ -201,7 +200,6 @@ public class LevelEditor : MonoBehaviour
|
||||
currentBlock = sel;
|
||||
isPlacingBlock = true;
|
||||
currentScale = currentBlock.transform.localScale;
|
||||
Debug.Log($"Sélection : {sel.name}");
|
||||
}
|
||||
}
|
||||
void PlaceBlock()
|
||||
@ -211,7 +209,6 @@ public class LevelEditor : MonoBehaviour
|
||||
|
||||
if (isSpikeType)
|
||||
{
|
||||
// 1) Bloquer si on perçoit un spike de même type dans la direction de snap
|
||||
if (IsBlockedBySameTypeInSnapDirection())
|
||||
{
|
||||
Debug.LogError("Impossible de poser un spike sur un autre spike !");
|
||||
@ -219,7 +216,6 @@ public class LevelEditor : MonoBehaviour
|
||||
}
|
||||
else
|
||||
{
|
||||
// 2) On snap dans la direction (down/left/up/right), et on détruit si aucun support
|
||||
if (!SnapSpikeByRotation())
|
||||
{
|
||||
Debug.LogError("Impossible de poser un spike dans le vide !");
|
||||
@ -227,31 +223,41 @@ public class LevelEditor : MonoBehaviour
|
||||
}
|
||||
else
|
||||
{
|
||||
// 3) On fait l’ajustement fin (si besoin)
|
||||
TrySnapToNearbyBlock();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// tous les autres blocs
|
||||
TrySnapToNearbyBlock();
|
||||
|
||||
if (name.Contains("obstacleblock"))
|
||||
{
|
||||
foreach (Transform child in currentBlock.transform)
|
||||
{
|
||||
if (child.name.ToLower().Contains("obstaclekiller"))
|
||||
{
|
||||
var col = child.GetComponent<BoxCollider2D>();
|
||||
if (col != null)
|
||||
{
|
||||
Vector2 originalSize = col.size;
|
||||
col.size = new Vector2(originalSize.x, 1f);
|
||||
col.offset = new Vector2(col.offset.x, -0.5f);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
isPlacingBlock = false;
|
||||
currentBlock = null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Vérifie qu’il n’y ait pas déjà un spike/smallspike/killzone
|
||||
/// juste devant le spike selon sa rotation.
|
||||
/// </summary>
|
||||
bool IsBlockedBySameTypeInSnapDirection()
|
||||
{
|
||||
var col = currentBlock.GetComponent<Collider2D>();
|
||||
var b = col.bounds;
|
||||
|
||||
// 1) Détermine direction de snap (0→down,1→left,2→up,3→right)
|
||||
int rot = (Mathf.RoundToInt(currentBlock.transform.eulerAngles.z / 90) % 4 + 4) % 4;
|
||||
Vector2 dir = rot switch
|
||||
{
|
||||
@ -261,17 +267,15 @@ public class LevelEditor : MonoBehaviour
|
||||
_ => Vector2.down
|
||||
};
|
||||
|
||||
// 2) Origine : on place la « boîte » juste en bordure du sprite
|
||||
float offset = 0.01f;
|
||||
Vector2 origin = rot switch
|
||||
{
|
||||
1 => new Vector2(b.min.x - offset, b.center.y), // gauche
|
||||
3 => new Vector2(b.max.x + offset, b.center.y), // droite
|
||||
2 => new Vector2(b.center.x, b.max.y + offset), // haut
|
||||
_ => new Vector2(b.center.x, b.min.y - offset) // bas
|
||||
1 => new Vector2(b.min.x - offset, b.center.y), // left
|
||||
3 => new Vector2(b.max.x + offset, b.center.y), // right
|
||||
2 => new Vector2(b.center.x, b.max.y + offset), // top
|
||||
_ => new Vector2(b.center.x, b.min.y - offset) // bottom
|
||||
};
|
||||
|
||||
// 3) On box‐cast exactement la taille du sprite pour 100 unités
|
||||
RaycastHit2D[] hits = Physics2D.BoxCastAll(
|
||||
origin,
|
||||
b.size,
|
||||
@ -293,11 +297,9 @@ public class LevelEditor : MonoBehaviour
|
||||
|
||||
if (meIsSpikeFamily && otherIsSpikeFamily)
|
||||
{
|
||||
// on bloque absolument tout chevauchement entre ces trois types
|
||||
return true;
|
||||
}
|
||||
|
||||
// si on tape autre chose (sol, block, bonus…), on arrête le scan
|
||||
break;
|
||||
}
|
||||
|
||||
@ -306,13 +308,11 @@ public class LevelEditor : MonoBehaviour
|
||||
|
||||
bool SnapSpikeByRotation()
|
||||
{
|
||||
// Récupère bounds et demi-tailles
|
||||
var col = currentBlock.GetComponent<Collider2D>();
|
||||
var b = col.bounds;
|
||||
float hw = b.extents.x;
|
||||
float hh = b.extents.y;
|
||||
|
||||
// 1) Détermine la rotation en quarts de tour : 0→down, 1→left, 2→up, 3→right
|
||||
int rot = ((Mathf.RoundToInt(currentBlock.transform.eulerAngles.z / 90f) % 4) + 4) % 4;
|
||||
Vector2 dir;
|
||||
switch (rot)
|
||||
@ -323,12 +323,10 @@ public class LevelEditor : MonoBehaviour
|
||||
default: dir = Vector2.down; break;
|
||||
}
|
||||
|
||||
// 2) Calcule 3 origines le long de la face « avant » du spike
|
||||
const float eps = 0.01f;
|
||||
List<Vector2> origins = new List<Vector2>();
|
||||
if (dir == Vector2.down || dir == Vector2.up)
|
||||
{
|
||||
// face inférieure ou supérieure → balaye l’axe X
|
||||
float y0 = (dir == Vector2.down) ? b.min.y - eps : b.max.y + eps;
|
||||
origins.Add(new Vector2(b.min.x + 0.1f * b.size.x, y0));
|
||||
origins.Add(new Vector2(b.center.x, y0));
|
||||
@ -336,14 +334,12 @@ public class LevelEditor : MonoBehaviour
|
||||
}
|
||||
else
|
||||
{
|
||||
// face gauche ou droite → balaye l’axe Y
|
||||
float x0 = (dir == Vector2.left) ? b.min.x - eps : b.max.x + eps;
|
||||
origins.Add(new Vector2(x0, b.min.y + 0.1f * b.size.y));
|
||||
origins.Add(new Vector2(x0, b.center.y));
|
||||
origins.Add(new Vector2(x0, b.max.y - 0.1f * b.size.y));
|
||||
}
|
||||
|
||||
// 3) Pour chaque origine, on lance un RaycastAll et on garde le hit le plus proche
|
||||
float bestDist = float.PositiveInfinity;
|
||||
RaycastHit2D bestHit = default;
|
||||
foreach (var o in origins)
|
||||
@ -361,11 +357,9 @@ public class LevelEditor : MonoBehaviour
|
||||
}
|
||||
}
|
||||
|
||||
// 4) Aucun support trouvé → échec
|
||||
if (bestHit.collider == null)
|
||||
return false;
|
||||
|
||||
// 5) Sinon, colle bord à bord
|
||||
Vector3 p = currentBlock.transform.position;
|
||||
if (dir == Vector2.down) p.y = bestHit.point.y + hh;
|
||||
else if (dir == Vector2.up) p.y = bestHit.point.y - hh;
|
||||
@ -373,7 +367,6 @@ public class LevelEditor : MonoBehaviour
|
||||
else if (dir == Vector2.right) p.x = bestHit.point.x - hw;
|
||||
|
||||
currentBlock.transform.position = new Vector3(p.x, p.y, -1f);
|
||||
Debug.Log($"Spike snapé {dir} sur « {bestHit.collider.name} » à {currentBlock.transform.position}");
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -406,7 +399,6 @@ public class LevelEditor : MonoBehaviour
|
||||
? ResizeAxis.Horizontal
|
||||
: ResizeAxis.Vertical;
|
||||
isResizing = true;
|
||||
Debug.Log($"Début redim {tgt.name} (axe {currentResizeAxis})");
|
||||
}
|
||||
|
||||
void PerformResizing()
|
||||
@ -422,14 +414,12 @@ public class LevelEditor : MonoBehaviour
|
||||
if (IsOverlapping(resizingTarget))
|
||||
{
|
||||
resizingTarget.transform.localScale = originalScale;
|
||||
Debug.Log("Redim annulé : collision");
|
||||
}
|
||||
if (Input.GetMouseButtonUp(0))
|
||||
{
|
||||
isResizing = false;
|
||||
resizingTarget = null;
|
||||
currentResizeAxis = ResizeAxis.None;
|
||||
Debug.Log("Fin redim");
|
||||
}
|
||||
}
|
||||
|
||||
@ -455,7 +445,6 @@ public class LevelEditor : MonoBehaviour
|
||||
toD = toD.transform.parent.gameObject;
|
||||
if (toD == currentBlock) { currentBlock = null; isPlacingBlock = false; }
|
||||
Destroy(toD);
|
||||
Debug.Log($"Supprimé {toD.name}");
|
||||
}
|
||||
}
|
||||
|
||||
@ -472,7 +461,7 @@ public class LevelEditor : MonoBehaviour
|
||||
|
||||
var col = currentBlock.GetComponent<Collider2D>();
|
||||
var b = col.bounds;
|
||||
float snapDistance = 1f;
|
||||
float snapDistance = 2f;
|
||||
float verticalEps = 0.1f;
|
||||
|
||||
// === SNAP HORIZONTAL (droite)
|
||||
@ -484,7 +473,6 @@ public class LevelEditor : MonoBehaviour
|
||||
if (IsInvalidSnapTarget(h)) continue;
|
||||
float newX = h.bounds.min.x - b.extents.x;
|
||||
currentBlock.transform.position = new Vector3(newX, currentBlock.transform.position.y, -1f);
|
||||
Debug.Log($"Snap horizontal à droite contre {h.name}");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -496,7 +484,6 @@ public class LevelEditor : MonoBehaviour
|
||||
if (IsInvalidSnapTarget(h)) continue;
|
||||
float newX = h.bounds.max.x + b.extents.x;
|
||||
currentBlock.transform.position = new Vector3(newX, currentBlock.transform.position.y, -1f);
|
||||
Debug.Log($"Snap horizontal à gauche contre {h.name}");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -509,7 +496,6 @@ public class LevelEditor : MonoBehaviour
|
||||
if (IsInvalidSnapTarget(h)) continue;
|
||||
float newY = h.bounds.max.y + b.extents.y;
|
||||
currentBlock.transform.position = new Vector3(currentBlock.transform.position.x, newY, -1f);
|
||||
Debug.Log($"Snap vertical (bas) contre {h.name}");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -521,7 +507,6 @@ public class LevelEditor : MonoBehaviour
|
||||
if (IsInvalidSnapTarget(h)) continue;
|
||||
float newY = h.bounds.min.y - b.extents.y;
|
||||
currentBlock.transform.position = new Vector3(currentBlock.transform.position.x, newY, -1f);
|
||||
Debug.Log($"Snap vertical (haut) contre {h.name}");
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -554,7 +539,6 @@ public class LevelEditor : MonoBehaviour
|
||||
void HandleBlockRotation()
|
||||
{
|
||||
currentBlock.transform.Rotate(0, 0, -90f);
|
||||
Debug.Log("Rotation 90°!");
|
||||
}
|
||||
|
||||
void InstantiateAndPrepare(GameObject prefab, Vector3? scaleOverride = null)
|
||||
@ -582,8 +566,6 @@ public class LevelEditor : MonoBehaviour
|
||||
Destroy(child.gameObject);
|
||||
}
|
||||
|
||||
Debug.Log("Éditeur vidé.");
|
||||
|
||||
currentBlock = null;
|
||||
isPlacingBlock = false;
|
||||
currentPage = 0;
|
||||
|
@ -80,7 +80,6 @@ public class TestManager : MonoBehaviour
|
||||
currentPlayer.RigidBody.freezeRotation = true;
|
||||
currentPlayer.RigidBody.linearVelocity = Vector2.zero;
|
||||
currentPlayer.SpeedMultiplier = 1f;
|
||||
// currentPlayer.SpriteRenderer.sprite = Resources.Load<Sprite>("Shapes/BaseSquare");
|
||||
|
||||
currentPlayer.ChangeGameMode(gameMode);
|
||||
isTesting = true;
|
||||
@ -95,9 +94,7 @@ public class TestManager : MonoBehaviour
|
||||
currentPlayer.SpriteRenderer.enabled = true;
|
||||
|
||||
if (currentPlayer.Particle != null)
|
||||
currentPlayer.Particle.Play(); // Démarrer la particule
|
||||
|
||||
Debug.Log("[TestManager] Test du niveau démarré !");
|
||||
currentPlayer.Particle.Play();
|
||||
}
|
||||
|
||||
public void StopTest()
|
||||
@ -112,7 +109,7 @@ public class TestManager : MonoBehaviour
|
||||
currentPlayer.SpeedMultiplier = 0f;
|
||||
|
||||
if (currentPlayer.Particle != null)
|
||||
currentPlayer.Particle.Stop(true, ParticleSystemStopBehavior.StopEmittingAndClear); // Arrêter proprement
|
||||
currentPlayer.Particle.Stop(true, ParticleSystemStopBehavior.StopEmittingAndClear);
|
||||
|
||||
if (currentPlayer.SpriteRenderer != null)
|
||||
currentPlayer.SpriteRenderer.enabled = false;
|
||||
@ -128,7 +125,5 @@ public class TestManager : MonoBehaviour
|
||||
}
|
||||
|
||||
isTesting = false;
|
||||
|
||||
Debug.Log("[TestManager] Test du niveau arrêté, joueur reset et caméra recentrée !");
|
||||
}
|
||||
}
|
||||
|
BIN
Documentation/Screenshots/edit-level.png
Normal file
BIN
Documentation/Screenshots/edit-level.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 353 KiB |
@ -1,16 +1,16 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"com.unity.collab-proxy": "2.6.0",
|
||||
"com.unity.collab-proxy": "2.8.1",
|
||||
"com.unity.feature.2d": "2.0.1",
|
||||
"com.unity.ide.rider": "3.0.31",
|
||||
"com.unity.ide.visualstudio": "2.0.22",
|
||||
"com.unity.inputsystem": "1.11.2",
|
||||
"com.unity.ide.rider": "3.0.36",
|
||||
"com.unity.ide.visualstudio": "2.0.23",
|
||||
"com.unity.inputsystem": "1.14.0",
|
||||
"com.unity.multiplayer.center": "1.0.0",
|
||||
"com.unity.test-framework": "1.4.5",
|
||||
"com.unity.test-framework": "1.5.1",
|
||||
"com.unity.timeline": "1.8.7",
|
||||
"com.unity.toolchain.linux-x86_64": "2.0.10",
|
||||
"com.unity.ugui": "2.0.0",
|
||||
"com.unity.visualscripting": "1.9.4",
|
||||
"com.unity.visualscripting": "1.9.6",
|
||||
"com.yasirkula.simplefilebrowser": "https://github.com/yasirkula/UnitySimpleFileBrowser.git",
|
||||
"com.unity.modules.accessibility": "1.0.0",
|
||||
"com.unity.modules.ai": "1.0.0",
|
||||
|
@ -1,11 +1,11 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"com.unity.2d.animation": {
|
||||
"version": "10.1.3",
|
||||
"version": "10.1.4",
|
||||
"depth": 1,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
"com.unity.2d.common": "9.0.6",
|
||||
"com.unity.2d.common": "9.0.7",
|
||||
"com.unity.2d.sprite": "1.0.0",
|
||||
"com.unity.collections": "1.2.4",
|
||||
"com.unity.modules.animation": "1.0.0",
|
||||
@ -14,7 +14,7 @@
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.2d.aseprite": {
|
||||
"version": "1.1.6",
|
||||
"version": "1.1.9",
|
||||
"depth": 1,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
@ -26,7 +26,7 @@
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.2d.common": {
|
||||
"version": "9.0.6",
|
||||
"version": "9.0.7",
|
||||
"depth": 2,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
@ -62,11 +62,11 @@
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.2d.spriteshape": {
|
||||
"version": "10.0.6",
|
||||
"version": "10.0.7",
|
||||
"depth": 1,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
"com.unity.2d.common": "9.0.5",
|
||||
"com.unity.2d.common": "9.0.7",
|
||||
"com.unity.mathematics": "1.1.0",
|
||||
"com.unity.modules.physics2d": "1.0.0"
|
||||
},
|
||||
@ -82,11 +82,10 @@
|
||||
}
|
||||
},
|
||||
"com.unity.2d.tilemap.extras": {
|
||||
"version": "4.0.2",
|
||||
"version": "4.1.0",
|
||||
"depth": 1,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
"com.unity.ugui": "1.0.0",
|
||||
"com.unity.2d.tilemap": "1.0.0",
|
||||
"com.unity.modules.tilemap": "1.0.0",
|
||||
"com.unity.modules.jsonserialize": "1.0.0"
|
||||
@ -94,7 +93,7 @@
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.burst": {
|
||||
"version": "1.8.18",
|
||||
"version": "1.8.21",
|
||||
"depth": 3,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
@ -104,7 +103,7 @@
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.collab-proxy": {
|
||||
"version": "2.6.0",
|
||||
"version": "2.8.1",
|
||||
"depth": 0,
|
||||
"source": "registry",
|
||||
"dependencies": {},
|
||||
@ -125,27 +124,26 @@
|
||||
"com.unity.ext.nunit": {
|
||||
"version": "2.0.5",
|
||||
"depth": 1,
|
||||
"source": "registry",
|
||||
"dependencies": {},
|
||||
"url": "https://packages.unity.com"
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.feature.2d": {
|
||||
"version": "2.0.1",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.2d.animation": "10.1.3",
|
||||
"com.unity.2d.animation": "10.1.4",
|
||||
"com.unity.2d.pixel-perfect": "5.0.3",
|
||||
"com.unity.2d.psdimporter": "9.0.3",
|
||||
"com.unity.2d.sprite": "1.0.0",
|
||||
"com.unity.2d.spriteshape": "10.0.6",
|
||||
"com.unity.2d.spriteshape": "10.0.7",
|
||||
"com.unity.2d.tilemap": "1.0.0",
|
||||
"com.unity.2d.tilemap.extras": "4.0.2",
|
||||
"com.unity.2d.aseprite": "1.1.6"
|
||||
"com.unity.2d.tilemap.extras": "4.1.0",
|
||||
"com.unity.2d.aseprite": "1.1.9"
|
||||
}
|
||||
},
|
||||
"com.unity.ide.rider": {
|
||||
"version": "3.0.31",
|
||||
"version": "3.0.36",
|
||||
"depth": 0,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
@ -154,7 +152,7 @@
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.ide.visualstudio": {
|
||||
"version": "2.0.22",
|
||||
"version": "2.0.23",
|
||||
"depth": 0,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
@ -163,7 +161,7 @@
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.inputsystem": {
|
||||
"version": "1.11.2",
|
||||
"version": "1.14.0",
|
||||
"depth": 0,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
@ -210,22 +208,21 @@
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.test-framework": {
|
||||
"version": "1.4.5",
|
||||
"version": "1.5.1",
|
||||
"depth": 0,
|
||||
"source": "registry",
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.ext.nunit": "2.0.3",
|
||||
"com.unity.modules.imgui": "1.0.0",
|
||||
"com.unity.modules.jsonserialize": "1.0.0"
|
||||
},
|
||||
"url": "https://packages.unity.com"
|
||||
}
|
||||
},
|
||||
"com.unity.test-framework.performance": {
|
||||
"version": "3.0.3",
|
||||
"version": "3.1.0",
|
||||
"depth": 3,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
"com.unity.test-framework": "1.1.31",
|
||||
"com.unity.test-framework": "1.1.33",
|
||||
"com.unity.modules.jsonserialize": "1.0.0"
|
||||
},
|
||||
"url": "https://packages.unity.com"
|
||||
@ -262,7 +259,7 @@
|
||||
}
|
||||
},
|
||||
"com.unity.visualscripting": {
|
||||
"version": "1.9.4",
|
||||
"version": "1.9.6",
|
||||
"depth": 0,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
|
@ -91,8 +91,8 @@ PlayerSettings:
|
||||
submitAnalytics: 1
|
||||
usePlayerLog: 1
|
||||
dedicatedServerOptimizations: 1
|
||||
bakeCollisionMeshes: 0
|
||||
forceSingleInstance: 0
|
||||
bakeCollisionMeshes: 1
|
||||
forceSingleInstance: 1
|
||||
useFlipModelSwapchain: 1
|
||||
resizableWindow: 0
|
||||
useMacAppStoreValidation: 0
|
||||
@ -105,7 +105,7 @@ PlayerSettings:
|
||||
xboxEnableKinectAutoTracking: 0
|
||||
xboxEnableFitness: 0
|
||||
visibleInBackground: 1
|
||||
allowFullscreenSwitch: 1
|
||||
allowFullscreenSwitch: 0
|
||||
fullscreenMode: 3
|
||||
xboxSpeechDB: 0
|
||||
xboxEnableHeadOrientation: 0
|
||||
@ -140,7 +140,7 @@ PlayerSettings:
|
||||
loadStoreDebugModeEnabled: 0
|
||||
visionOSBundleVersion: 1.0
|
||||
tvOSBundleVersion: 1.0
|
||||
bundleVersion: v1.0.0-staging.4
|
||||
bundleVersion: v1.0.2
|
||||
preloadedAssets: []
|
||||
metroInputSource: 0
|
||||
wsaTransparentSwapchain: 0
|
||||
@ -673,7 +673,8 @@ PlayerSettings:
|
||||
webGLWebAssemblyBigInt: 0
|
||||
webGLCloseOnQuit: 0
|
||||
webWasm2023: 0
|
||||
scriptingDefineSymbols: {}
|
||||
scriptingDefineSymbols:
|
||||
Server: -306
|
||||
additionalCompilerArguments: {}
|
||||
platformArchitecture: {}
|
||||
scriptingBackend:
|
||||
@ -698,7 +699,7 @@ PlayerSettings:
|
||||
tvOS: 1
|
||||
incrementalIl2cppBuild: {}
|
||||
suppressCommonWarnings: 1
|
||||
allowUnsafeCode: 0
|
||||
allowUnsafeCode: 1
|
||||
useDeterministicCompilation: 1
|
||||
additionalIl2CppArgs:
|
||||
scriptingRuntimeVersion: 1
|
||||
|
@ -1,2 +1,2 @@
|
||||
m_EditorVersion: 6000.0.25f1
|
||||
m_EditorVersionWithRevision: 6000.0.25f1 (4859ab7b5a49)
|
||||
m_EditorVersion: 6000.0.49f1
|
||||
m_EditorVersionWithRevision: 6000.0.49f1 (840e0a9776d9)
|
||||
|
16
ProjectSettings/TimelineSettings.asset
Normal file
16
ProjectSettings/TimelineSettings.asset
Normal file
@ -0,0 +1,16 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &1
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 53
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: a287be6c49135cd4f9b2b8666c39d999, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
assetDefaultFramerate: 60
|
||||
m_DefaultFrameRate: 60
|
10
README.md
10
README.md
@ -6,9 +6,9 @@ Développement d'une reproduction du jeu [Geometry Dash](https://fr.wikipedia.or
|
||||
|
||||
Afin de tester le jeu, plusieurs `.zip` avec l'exécutable sont disponibles, généré automatiquement grâce au déploiement continu de [GameCI](https://game.ci/), en fonction du système d'exploitation:
|
||||
|
||||
- [Windows (x64)](https://github.com/boudji-ludwig-pett/cnam-geometry-dash/releases/download/v1.0.0-staging.4/windows.zip)
|
||||
- [GNU/Linux (x64)](https://github.com/boudji-ludwig-pett/cnam-geometry-dash/releases/download/v1.0.0-staging.4/linux.zip)
|
||||
- [macOS (x64)](https://github.com/boudji-ludwig-pett/cnam-geometry-dash/releases/download/v1.0.0-staging.4/macOS.zip)
|
||||
- [Windows (x64)](https://github.com/boudji-ludwig-pett/cnam-geometry-dash/releases/download/v1.0.2/windows.zip)
|
||||
- [GNU/Linux (x64)](https://github.com/boudji-ludwig-pett/cnam-geometry-dash/releases/download/v1.0.2/linux.zip)
|
||||
- [macOS (x64)](https://github.com/boudji-ludwig-pett/cnam-geometry-dash/releases/download/v1.0.2/macOS.zip)
|
||||
|
||||
### Membres du groupe
|
||||
|
||||
@ -28,7 +28,7 @@ Afin de tester le jeu, plusieurs `.zip` avec l'exécutable sont disponibles, gé
|
||||
|
||||
## Prérequis
|
||||
|
||||
[Unity](https://unity.com/) v6000.0.25f1 (LTS)
|
||||
[Unity](https://unity.com/) v6000.0.49f1 (LTS)
|
||||
|
||||
## Installation
|
||||
|
||||
@ -49,3 +49,5 @@ cd cnam-geometry-dash
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
Reference in New Issue
Block a user