From 8be0b462f01d22b73082a95a7f0df565106f9157 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=BF=9B=E8=BF=9B=E5=95=8A?= <1830275783@qq.com>
Date: Fri, 17 Dec 2021 13:21:46 +0800
Subject: [PATCH] commit
---
.editorconfig | 2 +-
package.json | 2 +-
src/app/app-routing.module.ts | 12 +-
src/app/app.component.html | 509 +-----------------
src/app/app.module.ts | 31 +-
src/app/modules/snake/snake.module.ts | 21 +
src/app/services/snake/food.service.spec.ts | 16 +
src/app/services/snake/food.service.ts | 46 ++
.../snake/game-control.service.spec.ts | 16 +
.../services/snake/game-control.service.ts | 116 ++++
.../services/snake/main-snake.service.spec.ts | 16 +
src/app/services/snake/main-snake.service.ts | 76 +++
.../snake/score-panel.service.spec.ts | 24 +
src/app/services/snake/score-panel.service.ts | 38 ++
src/app/types/snake/snake-type.ts | 15 +
src/app/views/snake/snake.component.html | 38 ++
src/app/views/snake/snake.component.scss | 56 ++
src/app/views/snake/snake.component.spec.ts | 24 +
src/app/views/snake/snake.component.ts | 53 ++
src/assets/css/index.scss | 2 +
src/assets/css/normal.scss | 6 +
src/assets/css/variable.scss | 2 +
src/index.html | 30 +-
src/styles.scss | 1 +
24 files changed, 623 insertions(+), 529 deletions(-)
create mode 100644 src/app/modules/snake/snake.module.ts
create mode 100644 src/app/services/snake/food.service.spec.ts
create mode 100644 src/app/services/snake/food.service.ts
create mode 100644 src/app/services/snake/game-control.service.spec.ts
create mode 100644 src/app/services/snake/game-control.service.ts
create mode 100644 src/app/services/snake/main-snake.service.spec.ts
create mode 100644 src/app/services/snake/main-snake.service.ts
create mode 100644 src/app/services/snake/score-panel.service.spec.ts
create mode 100644 src/app/services/snake/score-panel.service.ts
create mode 100644 src/app/types/snake/snake-type.ts
create mode 100644 src/app/views/snake/snake.component.html
create mode 100644 src/app/views/snake/snake.component.scss
create mode 100644 src/app/views/snake/snake.component.spec.ts
create mode 100644 src/app/views/snake/snake.component.ts
create mode 100644 src/assets/css/index.scss
create mode 100644 src/assets/css/normal.scss
create mode 100644 src/assets/css/variable.scss
diff --git a/.editorconfig b/.editorconfig
index 59d9a3a..997967f 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -9,7 +9,7 @@ insert_final_newline = true
trim_trailing_whitespace = true
[*.ts]
-quote_type = single
+# quote_type = single
[*.md]
max_line_length = off
diff --git a/package.json b/package.json
index 1c4ceae..a708551 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,7 @@
"version": "0.0.0",
"scripts": {
"ng": "ng",
- "start": "ng serve",
+ "start": "ng serve --open",
"build": "ng build",
"watch": "ng build --watch --configuration development",
"test": "ng test"
diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts
index 0297262..3211a85 100644
--- a/src/app/app-routing.module.ts
+++ b/src/app/app-routing.module.ts
@@ -1,3 +1,11 @@
+/*
+ * @Description: {{ByRuin}}
+ * @Version: 2.0
+ * @Author: Ruin 🍭
+ * @Date: 2021-12-09 10:07:54
+ * @LastEditors: 刘引
+ * @LastEditTime: 2021-12-09 10:13:27
+ */
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
@@ -5,6 +13,6 @@ const routes: Routes = [];
@NgModule({
imports: [RouterModule.forRoot(routes)],
- exports: [RouterModule]
+ exports: [RouterModule],
})
-export class AppRoutingModule { }
+export class AppRoutingModule {}
diff --git a/src/app/app.component.html b/src/app/app.component.html
index c28b688..48b4746 100644
--- a/src/app/app.component.html
+++ b/src/app/app.component.html
@@ -1,501 +1,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
{{ title }} app is running!
-
-
-
-
-
-
-
Resources
-
Here are some links to help you get started:
-
-
-
-
-
Next Steps
-
What do you want to do next with your app?
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
ng generate component xyz
-
ng add @angular/material
-
ng add @angular/pwa
-
ng add _____
-
ng test
-
ng build
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index b1c6c96..83c0111 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -1,18 +1,21 @@
-import { NgModule } from '@angular/core';
-import { BrowserModule } from '@angular/platform-browser';
-
-import { AppRoutingModule } from './app-routing.module';
-import { AppComponent } from './app.component';
+/*
+ * @Description: {{ByRuin}}
+ * @Version: 2.0
+ * @Author: Ruin 🍭
+ * @Date: 2021-12-09 10:07:54
+ * @LastEditors: 刘引
+ * @LastEditTime: 2021-12-09 13:37:23
+ */
+import { NgModule } from "@angular/core";
+import { BrowserModule } from "@angular/platform-browser";
+import { AppRoutingModule } from "./app-routing.module";
+import { AppComponent } from "./app.component";
+import { SnakeModule } from "./modules/snake/snake.module";
@NgModule({
- declarations: [
- AppComponent
- ],
- imports: [
- BrowserModule,
- AppRoutingModule
- ],
+ declarations: [AppComponent],
+ imports: [BrowserModule, AppRoutingModule, SnakeModule],
providers: [],
- bootstrap: [AppComponent]
+ bootstrap: [AppComponent],
})
-export class AppModule { }
+export class AppModule {}
diff --git a/src/app/modules/snake/snake.module.ts b/src/app/modules/snake/snake.module.ts
new file mode 100644
index 0000000..bf439a5
--- /dev/null
+++ b/src/app/modules/snake/snake.module.ts
@@ -0,0 +1,21 @@
+/*
+ * @Description: {{ByRuin}}
+ * @Version: 2.0
+ * @Author: Ruin 🍭
+ * @Date: 2021-12-09 10:11:06
+ * @LastEditors: 刘引
+ * @LastEditTime: 2021-12-09 15:27:16
+ */
+import { NgModule } from "@angular/core";
+import { CommonModule } from "@angular/common";
+import { SnakeComponent } from "../../views/snake/snake.component";
+import { FoodService } from "src/app/services/snake/food.service";
+import { ScorePanelService } from "src/app/services/snake/score-panel.service";
+import { GameControlService } from "src/app/services/snake/game-control.service";
+@NgModule({
+ declarations: [SnakeComponent],
+ providers: [FoodService, ScorePanelService, GameControlService],
+ imports: [CommonModule],
+ exports: [SnakeComponent],
+})
+export class SnakeModule {}
diff --git a/src/app/services/snake/food.service.spec.ts b/src/app/services/snake/food.service.spec.ts
new file mode 100644
index 0000000..e01ffce
--- /dev/null
+++ b/src/app/services/snake/food.service.spec.ts
@@ -0,0 +1,16 @@
+import { TestBed } from '@angular/core/testing';
+
+import { FoodService } from './food.service';
+
+describe('FoodService', () => {
+ let service: FoodService;
+
+ beforeEach(() => {
+ TestBed.configureTestingModule({});
+ service = TestBed.inject(FoodService);
+ });
+
+ it('should be created', () => {
+ expect(service).toBeTruthy();
+ });
+});
diff --git a/src/app/services/snake/food.service.ts b/src/app/services/snake/food.service.ts
new file mode 100644
index 0000000..497c0b6
--- /dev/null
+++ b/src/app/services/snake/food.service.ts
@@ -0,0 +1,46 @@
+/*
+ * @Description: {{ByRuin}}
+ * @Version: 2.0
+ * @Author: Ruin 🍭
+ * @Date: 2021-12-09 10:32:52
+ * @LastEditors: 刘引
+ * @LastEditTime: 2021-12-16 09:22:26
+ */
+import { Injectable } from "@angular/core";
+
+@Injectable({
+ providedIn: "root",
+})
+export class FoodService {
+ element: HTMLElement | any;
+ // element: HTMLElement;
+ constructor() {}
+ // 获取食物dom元素
+ getFoodDom() {
+ this.element = document.querySelector("#food");
+
+ // console.log(this.element);
+ }
+ //定义一个获取食物x轴坐标的方法
+ get X() {
+ // console.log(this.element.offsetLeft);
+ return this.element.offsetLeft;
+ }
+
+ //定义一个获取食物y轴坐标的方法
+ get Y() {
+ // console.log(this.element.offsetTop);
+ return this.element.offsetTop;
+ }
+ // 修改食物的位置
+ change() {
+ // 生成一个随机的位置
+ //食物的位置最小是0,最大是290
+ // 蛇移动一次就是一格,一格的大小就是10,所以食物的坐标必须是10的倍数
+ // 生成0~290之间的整数
+ let top = Math.round(Math.random() * 29) * 10;
+ let left = Math.round(Math.random() * 29) * 10;
+ this.element.style.left = left + "px";
+ this.element.style.top = top + "px";
+ }
+}
diff --git a/src/app/services/snake/game-control.service.spec.ts b/src/app/services/snake/game-control.service.spec.ts
new file mode 100644
index 0000000..4f2fd5e
--- /dev/null
+++ b/src/app/services/snake/game-control.service.spec.ts
@@ -0,0 +1,16 @@
+import { TestBed } from '@angular/core/testing';
+
+import { GameControlService } from './game-control.service';
+
+describe('GameControlService', () => {
+ let service: GameControlService;
+
+ beforeEach(() => {
+ TestBed.configureTestingModule({});
+ service = TestBed.inject(GameControlService);
+ });
+
+ it('should be created', () => {
+ expect(service).toBeTruthy();
+ });
+});
diff --git a/src/app/services/snake/game-control.service.ts b/src/app/services/snake/game-control.service.ts
new file mode 100644
index 0000000..0d45121
--- /dev/null
+++ b/src/app/services/snake/game-control.service.ts
@@ -0,0 +1,116 @@
+/*
+ * @Description: {{ByRuin}}
+ * @Version: 2.0
+ * @Author: Ruin 🍭
+ * @Date: 2021-12-09 15:25:45
+ * @LastEditors: 刘引
+ * @LastEditTime: 2021-12-16 09:26:41
+ */
+import { Injectable } from "@angular/core";
+import { FoodService } from "./food.service";
+import { MainSnakeService } from "./main-snake.service";
+import { ScorePanelService } from "./score-panel.service";
+
+@Injectable({
+ providedIn: "root",
+})
+// 游戏控制器,控制其他所有的类
+export class GameControlService {
+ // snake: MainSnakeService;
+ food: FoodService;
+ // scorePanel: ScorePanelService;
+ // 创建一个属性来存储蛇的移动方向(也就是按键的方向)
+ direction: string = "ArrowRight";
+
+ constructor(
+ public snake: MainSnakeService,
+ public scorePanel: ScorePanelService
+ ) {
+ // this.snake = new MainSnakeService();
+ this.food = new FoodService();
+ // this.scorePanel = new ScorePanelService();
+ // this.keyDownHandle($event);
+ }
+
+ // 游戏初始化方法
+ init() {
+ // 绑定键盘按键按下的事件
+ document.addEventListener("keydown", this.keyDownHandle.bind(this));
+ // 调用run方法
+ this.run();
+ console.log("触发init");
+ }
+
+ keyDownHandle(event: KeyboardEvent) {
+ // 需要检查event.key的值是否合法
+ // 修改direction属性
+ this.direction = event.key;
+
+ // console.log("触发run");
+ // console.log(event, this.direction);
+ }
+ run() {
+ this.snake.getSnakeDom();
+ // 根据方向(this.direction)来蛇的位置改变
+ // 向上 top减少
+ // 向下 top增加
+ // 向左 left减少
+ // 向右
+ // 获取蛇现在的坐标
+ let X = this.snake.X;
+ let Y = this.snake.Y;
+
+ // 根据案件的方向来修改x的值和y值
+ switch (this.direction) {
+ case "ArrowUp":
+ case "Up":
+ Y -= 10;
+ break;
+ case "ArrowDown":
+ case "Down":
+ Y += 10;
+ break;
+ case "ArrowLeft":
+ case "Left":
+ X -= 10;
+ break;
+ case "ArrowRight":
+ case "Right":
+ X += 10;
+ break;
+ }
+
+ try {
+ // 修改蛇的x值和y值
+ this.snake.X = X;
+ this.snake.Y = Y;
+ } catch (e: any) {
+ // 进入到catch说明出现了异常
+ alert(e.message + "GAME OVER");
+ // this.init();
+ // this.isLive = false;
+ }
+ // 检查蛇是否吃到食物
+ this.checkEat(X, Y);
+ // console.log("X轴坐标", X);
+
+ // 开启定时器调用
+ setTimeout(() => {
+ this.run();
+ }, 500 - this.scorePanel.levelNum * 30);
+ }
+ // 定义一个方法检查蛇是否吃到食物
+ checkEat(X: number, Y: number) {
+ // this.snake.getSnakeDom();
+ this.food.getFoodDom();
+
+ if (X === this.food.X && Y === this.food.Y) {
+ //食物的位置要进行重置
+ this.food.change();
+ // 分数增加
+ this.scorePanel.addScore();
+ // 蛇要增加一节
+ this.snake.addBody();
+ }
+ }
+}
diff --git a/src/app/services/snake/main-snake.service.spec.ts b/src/app/services/snake/main-snake.service.spec.ts
new file mode 100644
index 0000000..b90c162
--- /dev/null
+++ b/src/app/services/snake/main-snake.service.spec.ts
@@ -0,0 +1,16 @@
+import { TestBed } from '@angular/core/testing';
+
+import { MainSnakeService } from './main-snake.service';
+
+describe('MainSnakeService', () => {
+ let service: MainSnakeService;
+
+ beforeEach(() => {
+ TestBed.configureTestingModule({});
+ service = TestBed.inject(MainSnakeService);
+ });
+
+ it('should be created', () => {
+ expect(service).toBeTruthy();
+ });
+});
diff --git a/src/app/services/snake/main-snake.service.ts b/src/app/services/snake/main-snake.service.ts
new file mode 100644
index 0000000..6e1031a
--- /dev/null
+++ b/src/app/services/snake/main-snake.service.ts
@@ -0,0 +1,76 @@
+/*
+ * @Description: {{ByRuin}}
+ * @Version: 2.0
+ * @Author: Ruin 🍭
+ * @Date: 2021-12-09 14:52:26
+ * @LastEditors: 刘引
+ * @LastEditTime: 2021-12-17 13:21:37
+ */
+import { Injectable } from "@angular/core";
+
+@Injectable({
+ providedIn: "root",
+})
+export class MainSnakeService {
+ // @ViewChild("snake") snakeDom: any;
+ // 蛇头
+ head!: HTMLElement;
+ // 蛇身体包括蛇头 实时刷新
+ bodies!: HTMLCollection;
+ // 获取蛇的容器
+ element!: HTMLElement;
+ constructor() {}
+ getSnakeDom() {
+ this.element = document.getElementById("snake") as HTMLElement;
+ this.head = document.querySelector("#snake>div") as HTMLElement;
+ this.bodies = this.element.getElementsByTagName("snake") as HTMLCollection;
+ }
+ // 获取蛇的X坐标(蛇头坐标)
+ get X() {
+ return this.head.offsetLeft;
+ }
+
+ // 获取蛇的Y坐标(蛇头坐标)
+ get Y() {
+ return this.head.offsetTop;
+ }
+
+ // 设置蛇头的坐标
+ set X(value: number) {
+ // 如果新值和旧值相同,则直接返回不再修改
+ if (this.X === value) {
+ return;
+ }
+ // X的值的合法范围0-290之间
+ if (value < 0 || value > 290) {
+ // 进入判断说明蛇撞墙了
+ throw new Error("蛇撞墙了");
+ }
+ this.head.style.left = value + "px";
+ }
+
+ set Y(value: number) {
+ if (this.Y === value) {
+ return;
+ }
+ // X的值的合法范围0-290之间
+ if (value < 0 || value > 290) {
+ // 进入判断说明蛇撞墙了,抛出一个异常
+ throw new Error("蛇撞墙了");
+ }
+ this.head.style.top = value + "px";
+ }
+
+ // 蛇增加身体的方法
+ addBody() {
+ // 向element中添加一个div
+
+ this.element.insertAdjacentHTML("beforeend", "");
+ }
+ //遍历获取所有的身体
+ // for (let index = 0; index < this.bodies.length; index++) {
+ // const element = array[index];
+
+ // }
+ // 遍历一个数
+}
diff --git a/src/app/services/snake/score-panel.service.spec.ts b/src/app/services/snake/score-panel.service.spec.ts
new file mode 100644
index 0000000..489c986
--- /dev/null
+++ b/src/app/services/snake/score-panel.service.spec.ts
@@ -0,0 +1,24 @@
+/*
+ * @Description: {{ByRuin}}
+ * @Version: 2.0
+ * @Author: Ruin 🍭
+ * @Date: 2021-12-09 13:24:13
+ * @LastEditors: 刘引
+ * @LastEditTime: 2021-12-17 11:47:49
+ */
+import { TestBed } from "@angular/core/testing";
+
+import { ScorePanelService } from "./score-panel.service";
+
+describe("ScorePanelService", () => {
+ let service: ScorePanelService;
+
+ beforeEach(() => {
+ TestBed.configureTestingModule({});
+ service = TestBed.inject(ScorePanelService);
+ });
+
+ it("should be created", () => {
+ expect(service).toBeTruthy();
+ });
+});
diff --git a/src/app/services/snake/score-panel.service.ts b/src/app/services/snake/score-panel.service.ts
new file mode 100644
index 0000000..14d3d04
--- /dev/null
+++ b/src/app/services/snake/score-panel.service.ts
@@ -0,0 +1,38 @@
+/*
+ * @Description: {{ByRuin}}
+ * @Version: 2.0
+ * @Author: Ruin 🍭
+ * @Date: 2021-12-09 13:24:13
+ * @LastEditors: 刘引
+ * @LastEditTime: 2021-12-17 10:33:58
+ */
+import { Injectable } from "@angular/core";
+@Injectable({
+ providedIn: "root",
+})
+export class ScorePanelService {
+ scoreNum: number = 0;
+ levelNum: number = 0;
+ // 设置为每5分升一级
+ upStore: number = 10;
+ constructor() {}
+ // 设置一个增加分数的方法
+ addScore(maxScore: number = 1000) {
+ // 使分数自增
+ if (this.scoreNum <= maxScore) {
+ this.scoreNum += 5;
+ // 判断分数是多少
+ // 设置一个变量表示多少分时升级
+ this.scoreNum % this.upStore === 0 ? this.levelUp() : "";
+ }
+ console.log(this.scoreNum);
+ }
+ // 设置一个形参来限制等级
+ levelUp(maxLevel: number = 100): void {
+ if (this.levelNum < maxLevel) {
+ this.levelNum++;
+ } else {
+ return;
+ }
+ }
+}
diff --git a/src/app/types/snake/snake-type.ts b/src/app/types/snake/snake-type.ts
new file mode 100644
index 0000000..a8c068c
--- /dev/null
+++ b/src/app/types/snake/snake-type.ts
@@ -0,0 +1,15 @@
+import { type } from "os";
+
+/*
+ * @Description: {{ByRuin}}
+ * @Version: 2.0
+ * @Author: Ruin 🍭
+ * @Date: 2021-12-09 13:40:25
+ * @LastEditors: 刘引
+ * @LastEditTime: 2021-12-09 13:58:31
+ */
+// 贪吃蛇分数变量
+export type varNum = {
+ scoreNum: number;
+ levelNum: number;
+};
diff --git a/src/app/views/snake/snake.component.html b/src/app/views/snake/snake.component.html
new file mode 100644
index 0000000..b36c262
--- /dev/null
+++ b/src/app/views/snake/snake.component.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+ SCORE:{{ score.scoreNum }}
+
+
+ LEVEL:{{ score.levelNum }}
+
+
+
+
diff --git a/src/app/views/snake/snake.component.scss b/src/app/views/snake/snake.component.scss
new file mode 100644
index 0000000..346634e
--- /dev/null
+++ b/src/app/views/snake/snake.component.scss
@@ -0,0 +1,56 @@
+@import "../../../assets/css/index.scss";
+.root {
+ font: bold 20px "Courier";
+ #main {
+ display: flex;
+ flex-direction: column;
+ justify-content: space-around;
+ align-items: center;
+ width: 360px;
+ height: 420px;
+ background-color: $bg-color;
+ margin: 100px auto;
+ border: 10px solid black;
+ border-radius: 40px;
+ .stage {
+ position: relative;
+ width: 304px;
+ height: 304px;
+ border: 2px solid black;
+ .snake {
+ & > div {
+ position: absolute;
+ width: 10px;
+ height: 10px;
+ background-color: black;
+ border: 1px solid $bg-color;
+ }
+ }
+ .food {
+ position: absolute;
+ width: 10px;
+ height: 10px;
+ // background-color: red;
+ border: 1px solid $bg-color;
+ left: 40px;
+ top: 100px;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ align-content: space-between;
+ & > div {
+ width: 4px;
+ height: 4px;
+
+ background-color: black;
+ transform: rotate(45deg);
+ }
+ }
+ }
+ .score-panel {
+ display: flex;
+ justify-content: space-between;
+ width: 304px;
+ }
+ }
+}
diff --git a/src/app/views/snake/snake.component.spec.ts b/src/app/views/snake/snake.component.spec.ts
new file mode 100644
index 0000000..b91b707
--- /dev/null
+++ b/src/app/views/snake/snake.component.spec.ts
@@ -0,0 +1,24 @@
+import { ComponentFixture, TestBed } from "@angular/core/testing";
+
+import { SnakeComponent } from "./snake.component";
+
+describe("SnakeComponent", () => {
+ let component: SnakeComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ declarations: [SnakeComponent],
+ }).compileComponents();
+ });
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(SnakeComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it("should create", () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/views/snake/snake.component.ts b/src/app/views/snake/snake.component.ts
new file mode 100644
index 0000000..e391790
--- /dev/null
+++ b/src/app/views/snake/snake.component.ts
@@ -0,0 +1,53 @@
+/*
+ * @Description: {{ByRuin}}
+ * @Version: 2.0
+ * @Author: Ruin 🍭
+ * @Date: 2021-12-09 10:12:01
+ * @LastEditors: 刘引
+ * @LastEditTime: 2021-12-17 10:46:49
+ */
+import { Component, OnInit } from "@angular/core";
+import { FoodService } from "src/app/services/snake/food.service";
+import { MainSnakeService } from "src/app/services/snake/main-snake.service";
+import { ScorePanelService } from "src/app/services/snake/score-panel.service";
+import { GameControlService } from "src/app/services/snake/game-control.service";
+@Component({
+ selector: "app-snake",
+ templateUrl: "./snake.component.html",
+ styleUrls: ["./snake.component.scss"],
+})
+export class SnakeComponent implements OnInit {
+ // public element: HTMLElement;
+ // scoreNum: number;
+ // levelNum: number;
+
+ constructor(
+ public food: FoodService,
+ public score: ScorePanelService,
+ public snake: MainSnakeService,
+ public game: GameControlService
+ ) {
+ // for (let i = 0; i < 1000; i++) {
+ // this.score.addScore();
+ // }
+ // this.scoreNum = score.scoreNum;
+ // this.levelNum = score.levelNum;
+ }
+
+ ngOnInit(): void {
+ // this.keyDownHandle();
+ // this.snake.getSnakeDom();
+ }
+ ngAfterViewInit(): void {
+ //Called after ngAfterContentInit when the component's view has been initialized. Applies to components only.
+ //Add 'implements AfterViewInit' to the class.
+ // 测试代码
+ // this.food.getFoodDom();
+ // this.food.X;
+ // this.food.Y;
+ // this.food.change();
+ // this.snake.X = 100;
+ this.game.init();
+ this.snake.addBody();
+ }
+}
diff --git a/src/assets/css/index.scss b/src/assets/css/index.scss
new file mode 100644
index 0000000..ef09770
--- /dev/null
+++ b/src/assets/css/index.scss
@@ -0,0 +1,2 @@
+@import "./normal.scss";
+@import "./variable.scss";
diff --git a/src/assets/css/normal.scss b/src/assets/css/normal.scss
new file mode 100644
index 0000000..29f840d
--- /dev/null
+++ b/src/assets/css/normal.scss
@@ -0,0 +1,6 @@
+* {
+ margin: 0;
+ padding: 0;
+ /* 改变盒子模型计算公式 */
+ box-sizing: border-box;
+}
diff --git a/src/assets/css/variable.scss b/src/assets/css/variable.scss
new file mode 100644
index 0000000..5cf33cc
--- /dev/null
+++ b/src/assets/css/variable.scss
@@ -0,0 +1,2 @@
+// 设置变量颜色
+$bg-color: #b7d4a8;
diff --git a/src/index.html b/src/index.html
index f877d48..a6be77d 100644
--- a/src/index.html
+++ b/src/index.html
@@ -1,13 +1,21 @@
-
+
+
-
-
- SnakeGameNg
-
-
-
-
-
-
-
+
+
+ 贪吃蛇
+
+
+
+
+
+
+
diff --git a/src/styles.scss b/src/styles.scss
index 90d4ee0..487ed4c 100644
--- a/src/styles.scss
+++ b/src/styles.scss
@@ -1 +1,2 @@
/* You can add global styles to this file, and also import other style files */
+@import "./assets/css";