iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >基于Vue uniapp怎么实现贪吃蛇游戏
  • 138
分享到

基于Vue uniapp怎么实现贪吃蛇游戏

2023-06-30 04:06:06 138人浏览 八月长安
摘要

本篇内容介绍了“基于Vue uniapp怎么实现贪吃蛇游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!游戏演示代码结构详细代码结

本篇内容介绍了“基于Vue uniapp怎么实现贪吃蛇游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

游戏演示

基于Vue uniapp怎么实现贪吃蛇游戏

代码结构

详细代码结构如果需要请到GitHub查看

<template><view ref="body" class="content"><view>蛇蛇目前:{{snakes.length}}米长</view><view class="game-field">                <!-- 地面板块 -->  <view class="block"  v-for="(x, i) in blocks" :key="i"></view></view>                    <view v-show="!started || ended" class="game-board-wrap">                        <view v-show="!started" class="game-board">                            <view class="title">选择游戏难度</view>                            <radio-group name="radio" @change="bindLevelChange">                                <label class="label">                                    <radio value="1" :checked="level==1" /><text>简单模式</text>                                </label>                                <label class="label">                                    <radio value="2" :checked="level==2" /><text>正常模式</text>                                </label>                                <label class="label">                                    <radio value="3" :checked="level==3" /><text>困难模式</text>                                </label>                                <label class="label">                                    <radio value="4" :checked="level==4" /><text>地狱模式</text>                                </label>                            </radio-group>                            <button type="primary" @click="start">开始游戏</button>                        </view><view v-show="ended" class="settle-board">                            <view class="title">游戏结束</view>                            <view class="result">您的蛇蛇达到了{{snakes.length}}米</view>                            <view class="btns">                                <button type="primary" @click="reStart">再次挑战</button>                                <button type="primary" plain @click="rePick">重选难度</button>                            </view></view></view></view></template><script>export default {    data() {            return {                blocks: [], // 板块                wORMs: [], // 虫子                snakes: [0, 1, 2, 3], // 蛇身                direction: "right", // 蛇移动方向            };    },    onLoad() {        this.initGame();    },    methods: {        initGame() {            this.blocks = new Array(100).fill(0); // 生成100个地面板块            this.worms = [Math.floor(Math.random() * 96) + 4]; // 随机生成虫子            this.snakes = [0, 1, 2, 3]; // 初始化蛇身位置        }    }}</script>

渲染蛇身

蛇身的渲染根据snakes来匹配地面板块的索引 修改对应的背景图来渲染蛇身

<template>    <view class="game-field">        <view class="block" : v-for="(x, i) in blocks" :key="i">        </view>    </view></template><script>import worm from "worm.png";import snakeBody from "snake_body.png";import snakeHead from "snake_head.png";import snakeTail from "snake_tail.png";import polluteBlock from "pollute.png";import wormBoom from "worm_4.png";export default {    methods: {        bg(type, index) {            let bg = "";            switch (type) {                case 0: // 地板                    bg = "unset";                    break;                case 1: // 虫子                    if (this.boom) {                            bg = `url(${wormBoom})`;                    } else {                            bg = `url(${worm})`;                    }                    break;                case 2: // 蛇                    let head = this.snakes[this.snakes.length - 1];                    let tail = this.snakes[0];                    if (index === head) {                            bg = `url(${snakeHead})`;                    } else if (index === tail) {                            bg = `url(${snakeTail})`;                    } else {                            bg = `url(${snakeBody})`;                    }                    break;                case 3: // 污染的地块                    bg = `url(${polluteBlock})`;                    break;            }            return bg;        },    }}</scipt>

控制蛇的方向

通过监听键盘按键事件和手势来控制蛇的方向

<template><view ref="body" class="content" @keyup.left="bindLeft" @keyup.right="bindRight" @keyup.down="bindDown"@keyup.up="bindUp" @touchstart="handleTouchStart" @touchmove="handleTouchMove">    <view>蛇蛇目前:{{snakes.length}}米长</view>    <view class="game-field">        <view class="block" :(x, i) in blocks" :key="i"></view>    </view></view></template><script>    export default {        data(){            return {                direction: "right",                started: false, // 游戏开始了                ended: false, // 游戏结束了                level: 1, // 游戏难度                lastX: 0,                lastY: 0,            }        },        onLoad() {            this.initGame();        },        methods:{            initGame() {                this.blocks = new Array(100).fill(0); // 生成100个地面板块                this.worms = [Math.floor(Math.random() * 96) + 4]; // 随机生成虫子                this.snakes = [0, 1, 2, 3]; // 初始化蛇身位置                document.onkeydown = (e) => {                    switch (e.keyCode) { // 获取当前按下键盘键的编码                        case 37: // 按下左箭头键                            this.bindLeft();                            break;                        case 39: // 按下右箭头键                            this.bindRight();                            break;                        case 38: // 按下上箭头键                            if (!this.started) {                                    this.level--;                            } else {                                    this.bindUp();                            }                            break;                        case 40: // 按下下箭头键                            if (!this.started) {                                    this.level++;                            } else {                                    this.bindDown();                            }                            break;                    }                }            },            handleTouchStart(e) {                // 手指开始位置                this.lastX = e.touches[0].pageX;                this.lastY = e.touches[0].pageY;            },            handleTouchMove(e) {                let lastX = e.touches[0].pageX; // 移动的x轴坐标                let lastY = e.touches[0].pageY; // 移动的y轴坐标                let touchX = lastX - this.lastX;                let touchY = lastY - this.lastY                if (Math.abs(touchX) > Math.abs(touchY)) {                if (touchX < 0) {                    if(this.direction === "right") return;                    this.direction = 'left'                    } else if (touchX > 0) {                        if(this.direction === "left") return;                        this.direction = 'right'                    }                } else {                    if (touchY < 0) {                        if(this.direction === "down") return;                        this.direction = 'up'                    } else if (touchY > 0) {                        if(this.direction === "up") return;                        this.direction = 'down'                    }                }                this.lastX = lastX;                this.lastY = lastY;            },            bindUp() {                if (this.direction === "down") return;                this.direction = "up";            },            bindDown() {                if (this.direction === "up") return;                this.direction = "down";            },            bindLeft() {                if (this.direction === "right") return;                this.direction = "left";            },            bindRight() {                if (this.direction === "left") return;                this.direction = "right";            },        }    }</script>

“基于Vue uniapp怎么实现贪吃蛇游戏”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 基于Vue uniapp怎么实现贪吃蛇游戏

本文链接: https://www.lsjlt.com/news/327425.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基于Vue uniapp怎么实现贪吃蛇游戏
    本篇内容介绍了“基于Vue uniapp怎么实现贪吃蛇游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!游戏演示代码结构详细代码结...
    99+
    2023-06-30
  • 基于Vueuniapp实现贪吃蛇游戏
    目录游戏演示代码结构渲染蛇身控制蛇的方向游戏演示 代码结构 详细代码结构如果需要请到github查看 <template> <view ref="body" c...
    99+
    2024-04-02
  • 基于MFC实现贪吃蛇小游戏
    本文实例为大家分享了MFC实现贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 一、功能描述 (1)通过“START”、“PAUSE”、“EXIT”三个控件,控制游戏的开始、暂停和终...
    99+
    2024-04-02
  • 基于Java实现简单贪吃蛇游戏
    本文实例为大家分享了Java实现简单贪吃蛇游戏的具体代码,供大家参考,具体内容如下 贪吃蛇小游戏制作方法 首先需要的准备有: 1、掌握Java基础知识,即Java SE 2、了解一定...
    99+
    2024-04-02
  • 基于AndroidFlutter编写贪吃蛇游戏
    目录前言开发步骤:1.定义蛇和豆子2.让蛇动起来3.使用陀螺仪来控制蛇4.让蛇吃掉豆子5.吃掉豆子随机生成一个豆子前言 放假期间,小T打算回顾一下经典,想用Flutter做一下小游戏...
    99+
    2024-04-02
  • 基于C语言实现贪吃蛇小游戏
    本文实例为大家分享了C语言实现贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 1.目标要求: 1.上下左右控制蛇头转向2.若蛇头碰到食物,长度加一3.若蛇头碰到边框、碰到自身或蛇回...
    99+
    2024-04-02
  • 基于Pygame实现简单的贪吃蛇游戏
    目录导入相关的包设置屏幕大小以及基本参数设置贪吃蛇的位置,以及移动的大小绘制蛇让蛇动起来实现贪吃蛇拐弯实现随机食物吃食物完整代码 导入相关的包 import pygame, sy...
    99+
    2024-04-02
  • 基于pygame实现贪吃蛇小游戏示例
    目录游戏截图引入库初始化模型获取键盘事件移动贪吃蛇吃食物逻辑碰撞到自身逻辑结束游戏显示文字函数完整代码游戏截图 引入库 import copy import random i...
    99+
    2024-04-02
  • JavaScript实现贪吃蛇游戏
    本文实例为大家分享了JavaScript实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下 通过JavaScript,我们可以实现贪吃蛇游戏,具体功能如下: (1)通过按上下左右键来...
    99+
    2024-04-02
  • python怎么实现贪吃蛇游戏
    要实现贪吃蛇游戏,可以使用Python中的pygame库来进行游戏界面的绘制和键盘事件的监听。以下是一个简单的贪吃蛇游戏的示例代码:...
    99+
    2023-08-09
    python
  • Java实现贪吃蛇游戏
    下面是一个简单的Java实现贪吃蛇游戏的示例代码:```javaimport javax.swing.*;import java.a...
    99+
    2023-08-09
    Java
  • QT实现贪吃蛇游戏
    为了熟悉QT的相关知识,我用了大约8个小时的时间用QT再次写了一遍贪吃蛇。 因为QT的机制和平时写的程序流程不同,所以程序中可能没有遵守代码规范。 运行效果: 程序内除了实现贪吃蛇...
    99+
    2024-04-02
  • HTML5怎么实现贪吃蛇游戏
    本篇内容主要讲解“HTML5怎么实现贪吃蛇游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML5怎么实现贪吃蛇游戏”吧! &n...
    99+
    2024-04-02
  • pygame实现贪吃蛇游戏
    本文实例为大家分享了pygame实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下 为了简化起见,游戏素材暂定为两张简单的图片(文中用的是30*30)。大家很方便就能制作。 背景也...
    99+
    2024-04-02
  • python实现贪吃蛇游戏
    文章目录 1、效果2、实现过程3、代码 1、效果 2、实现过程 导入 Pygame 和 random 模块。初始化 Pygame。设置游戏界面大小、背景颜色和游戏标题。定义颜色常量。...
    99+
    2023-09-29
    python 游戏 pygame
  • 基于Pygame如何实现简单的贪吃蛇游戏
    这篇文章主要为大家展示了“基于Pygame如何实现简单的贪吃蛇游戏”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“基于Pygame如何实现简单的贪吃蛇游戏”这篇文章吧。导入相关的包import&n...
    99+
    2023-06-21
  • js怎么实现贪吃蛇小游戏
    这篇文章将为大家详细讲解有关js怎么实现贪吃蛇小游戏,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。示例代码<!DOCTYPE html> <h...
    99+
    2024-04-02
  • 怎么用html5实现贪吃蛇游戏
    这篇文章主要讲解了“怎么用html5实现贪吃蛇游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用html5实现贪吃蛇游戏”吧! ...
    99+
    2024-04-02
  • 怎么用C++实现贪吃蛇游戏
    这篇文章给大家分享的是有关怎么用C++实现贪吃蛇游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1976年,Gremlin平台推出了一款经典街机游戏Blockade。游戏中,两名玩家分别控制一个角色在屏幕上移动...
    99+
    2023-06-25
  • JS实现贪吃蛇小游戏
    目录一、初始化结构二、渲染蛇的颜色 三、蛇的运动四、蛇死亡的判定方式 蛇有两种判定死亡的方式五、食物的创建六、蛇吃食物边长七、开始游戏功能八、暂停/继续游戏功能页面效果: 贪吃蛇游...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作