Commit 8cf86ccb authored by lijin's avatar lijin

重播功能

parent d6d0515d
......@@ -15,7 +15,6 @@ public class GameMgr : MonoBehaviour
public MainData md;
public MaskItemMgr miMgr;
public TextItemMgr tiMgr;
public GrayItemMgr giMgr;
public Texture2D gray;
public void Init(string key, Texture2D png, Sprite jpg, ResJsonData json)
......@@ -173,32 +172,36 @@ public class GameMgr : MonoBehaviour
}
public void RePlay()
{
rePlayList = md.json.step;
md.RePlay();
stepIndex = 0;
curTime = 0;
}
public List<int> rePlayList = new List<int>();
public float maxTime = 0.1f;
public float curTime = 0;
private int stepIndex = -1;
private float delay = 0.5f;
private float maxTime = 0.1f;
private float curTime = 0;
public void Play()
{
if (rePlayList.Count == 0)
if (stepIndex == -1)
{
return;
}
curTime += Time.deltaTime;
if (curTime >= maxTime)
if (curTime >= maxTime + delay)
{
curTime -= maxTime;
for (int i = 0; i < md.json.roomDatas.Count; i++)
{
if (md.json.roomDatas[i].id == rePlayList[0])
if (md.json.roomDatas[i].id == md.json.step[stepIndex])
{
Debug.Log("进入:" + rePlayList[0] + "_rePlayList.Count=" + rePlayList.Count);
Vector2 v = new Vector2(md.json.roomDatas[i].px, md.json.roomDatas[i].py);
Debug.Log("模拟点击:" + v);
md.OnClickPos(v, true);
rePlayList.RemoveAt(0);
miMgr.Play(v, md.json.roomDatas[i].id);
stepIndex++;
if (stepIndex >= md.json.step.Count)
{
stepIndex = -1;
}
break;
}
}
......
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GrayItem : MonoBehaviour
{
public Image SP;
public RectTransform Rect;
public int id = -1;
public void FunDo(MainData md, ExRoomDatas erd, int _id)
{
id = _id;
//创建图片
Texture2D te = new Texture2D((int)(erd.size.z - erd.size.x + 1), (int)(erd.size.w - erd.size.y + 1), TextureFormat.RGBA32, false);
Color[] colors = te.GetPixels();
for (int i = 0; i < colors.Length; i++)
{
colors[i].a = 0f;
}
te.SetPixels(colors);
Texture2D gray = GameMgr.Ins.gray;
Color[] list = gray.GetPixels();
for (int i = 0; i < erd.list.Count; i++)
{
int x = erd.list[i].x % gray.width;
int y = erd.list[i].y % gray.height;
Color c = list[x + y* gray.width];
te.SetPixel((int)(erd.list[i].x - erd.size.x), (int)(erd.list[i].y - erd.size.y), c);
}
te.Apply();
Sprite sp = Sprite.Create(te, new Rect(0, 0, te.width, te.height), Vector2.zero);
SP.sprite = sp;
SP.GetComponent<RectTransform>().sizeDelta = new Vector2(te.width, te.height);
//坐标计算
Transform p = Rect.parent;
Rect.SetParent(md.imgpng.transform);
Rect.localPosition = new Vector3(erd.size.x + (erd.size.z + 1 - erd.size.x) / 2 - (md.png.width + 1) / 2, erd.size.y + (erd.size.w + 1 - erd.size.y) / 2 - (md.png.height + 1) / 2, 0);
Rect.SetParent(p);
Rect.localScale = Vector2.one;
//初始处理
gameObject.SetActive(true);
}
}
fileFormatVersion: 2
guid: 692ea8e8a27de1a48bb515e70693bc54
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GrayItemMgr : MonoBehaviour
{
public List<GrayItem> useList = new List<GrayItem>();
public List<GrayItem> poolList = new List<GrayItem>();
public GrayItem item;
public GrayItem Get()
{
if (poolList.Count == 0)
{
GrayItem temp = GameObject.Instantiate<GrayItem>(item, item.transform.parent);
poolList.Add(temp);
}
GrayItem ret = poolList[0];
poolList.RemoveAt(0);
useList.Add(ret);
return ret;
}
public void CircleId(int id)
{
for (int i = useList.Count - 1; i >= 0; i--)
{
if (useList[i].id == id)
{
Circle(useList[i]);
}
}
}
public void Circle(GrayItem temp)
{
if (useList.Contains(temp))
{
useList.Remove(temp);
poolList.Add(temp);
temp.gameObject.SetActive(false);
}
}
public void Create(MainData md, ExRoomDatas erd, int id)
{
GrayItem temp = Get();
temp.FunDo(md, erd, id);
}
public void CircleAll()
{
for (int i = useList.Count - 1; i >= 0; i--)
{
Circle(useList[i]);
}
}
}
fileFormatVersion: 2
guid: 91c7be77cabb742489857f4d7904d1fc
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
......@@ -99,8 +99,6 @@ public class MainData : MonoBehaviour
}
png.SetPixels(c_png);
png.Apply();
GameMgr.Ins.giMgr.CircleId(id);
GameMgr.Ins.tiMgr.CircleId(id);
GameMgr.Ins.miMgr.Play(v, id);
EventDispatcher.Dispatch(EventName.Event.Event_GropuItemChange, json.roomGroupsData[i]);
......@@ -117,7 +115,7 @@ public class MainData : MonoBehaviour
if (id == -1)
{
curGroupId = id;
GameMgr.Ins.giMgr.CircleAll();
GameMgr.Ins.miMgr.CircleAll();
}
Debug.Log("选中组:" + id);
if (curGroupId == id)
......@@ -136,7 +134,7 @@ public class MainData : MonoBehaviour
break;
}
}
GameMgr.Ins.giMgr.CircleAll();
GameMgr.Ins.miMgr.CircleAll();
Dictionary<int, ExRoomDatas> dic = new Dictionary<int, ExRoomDatas>();
for (int i = 0; i < list.Count; i++)
{
......@@ -206,24 +204,22 @@ public class MainData : MonoBehaviour
}
public void RePlay()
{
for (int i = 0; i < json.roomGroupsData.Count; i++)
ChooseGroup();
Dictionary<int, ExRoomDatas> dic = new Dictionary<int, ExRoomDatas>();
for (int i = 0; i < json.step.Count; i++)
{
json.roomGroupsData[i].roomIds.AddRange(json.roomGroupsData[i].roomIdsOver);
json.roomGroupsData[i].roomIdsOver.Clear();
dic.Add(json.step[i], new ExRoomDatas());
}
json.step = new List<int>();
Color[] c = png.GetPixels();
for (int i = 0; i < c.Length; i++)
for (int i = 0; i < json.allPos.Count; i++)
{
if (c[i] == Color.clear)
if (dic.ContainsKey(json.allPos[i]))
{
c[i] = Color.white;
dic[json.allPos[i]].AddData(i, png.width);
}
}
png.SetPixels(c);
png.Apply();
ChooseGroup();
GameMgr.Ins.tiMgr.Init(json, png);
GameMgr.Ins.tiMgr.SizeChange(transform.parent.localScale.x);
for (int i = 0; i < json.step.Count; i++)
{
GameMgr.Ins.miMgr.Create(this, dic[json.step[i]], json.step[i]);
}
}
}
\ No newline at end of file
using DG.Tweening;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
......@@ -44,4 +45,11 @@ public class MaskItemMgr : MonoBehaviour
}
}
}
public void CircleAll()
{
for (int i = useList.Count - 1; i >= 0; i--)
{
Circle(useList[i]);
}
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: 4f1b4e40bf8a2b24cb7fbacd56a8edf9
guid: 3a6827d009dacda4fb410ff8123c9c2e
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
......@@ -119,32 +119,6 @@ TextureImporter:
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: 4
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: 4
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
......
fileFormatVersion: 2
guid: 4f1b4e40bf8a2b24cb7fbacd56a8edf9
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
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: 1
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 1
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: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: 4
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
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: 3
buildTarget: Server
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: 3
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: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: 4
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: 4
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
......@@ -36,8 +36,8 @@ RectTransform:
m_Father: {fileID: 136994829194703267}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
......@@ -269,98 +269,6 @@ MonoBehaviour:
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &1133294208706243360
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5945244698823965143}
- component: {fileID: 3882757239371368148}
- component: {fileID: 7896971547950567980}
- component: {fileID: 7741935390973167914}
m_Layer: 0
m_Name: GrayItem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &5945244698823965143
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1133294208706243360}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2207622343904402988}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3882757239371368148
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1133294208706243360}
m_CullTransparentMesh: 1
--- !u!114 &7896971547950567980
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1133294208706243360}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9e98a61530bb8884cb90d81a28e17b40, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &7741935390973167914
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1133294208706243360}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 692ea8e8a27de1a48bb515e70693bc54, type: 3}
m_Name:
m_EditorClassIdentifier:
SP: {fileID: 7896971547950567980}
Rect: {fileID: 5945244698823965143}
id: -1
--- !u!1 &1272658336346988519
GameObject:
m_ObjectHideFlags: 0
......@@ -832,63 +740,11 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c99b850a1f8be4640b391afdbd751ee8, type: 3}
m_Name:
m_EditorClassIdentifier:
id: -1
IsUse: -1
SP: {fileID: 7114594662145661671}
Rect: {fileID: 3859749812772851665}
SPRect: {fileID: 4668905872759166448}
--- !u!1 &5142242079936663595
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2207622343904402988}
- component: {fileID: 2042267472393982796}
m_Layer: 5
m_Name: GrayBox
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2207622343904402988
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5142242079936663595}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5945244698823965143}
m_Father: {fileID: 7679003703182876708}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &2042267472393982796
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5142242079936663595}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 91c7be77cabb742489857f4d7904d1fc, type: 3}
m_Name:
m_EditorClassIdentifier:
useList: []
poolList: []
item: {fileID: 7741935390973167914}
--- !u!1 &5487798596680419126
GameObject:
m_ObjectHideFlags: 0
......@@ -920,7 +776,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 800309816225797410}
- {fileID: 2207622343904402988}
- {fileID: 8460472138427881079}
m_Father: {fileID: 7902676659994826364}
m_RootOrder: -1
......@@ -1021,11 +876,8 @@ MonoBehaviour:
md: {fileID: 4535739684591336511}
miMgr: {fileID: 5326343875061023361}
tiMgr: {fileID: 1490190831900560014}
giMgr: {fileID: 2042267472393982796}
giMgr: {fileID: 0}
gray: {fileID: 2800000, guid: cfe63fc6a2e3edc409d653cefd205fb7, type: 3}
rePlayList:
maxTime: 1
curTime: 0
--- !u!1 &8927003478227325637
GameObject:
m_ObjectHideFlags: 0
......
......@@ -7410,10 +7410,10 @@ RectTransform:
m_Father: {fileID: 4335846223123258697}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 750, y: 2224}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &6400086111190989493
GameObject:
......@@ -8536,7 +8536,6 @@ MonoBehaviour:
TipTitle: {fileID: 1539005795910344629}
AllProcress: {fileID: 1667660345673518993}
AllProcress_Text: {fileID: 4457589912443491345}
idd: 0
--- !u!114 &9174292048928438190
MonoBehaviour:
m_ObjectHideFlags: 0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment