双击Program.cs

修改这里

修改为

拖拽picturBox到对话控制框中

拉伸

双击Form_Obj中KeyDown右侧空白处

将以下代码放在Form_Obj.cs中

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace vs_Mp3npc
{
    public partial class Form_Obj : Form
    {
        Player[] player = new Player[3];
        //地图数组
        Map[] map = new Map[2];
        //多媒体播放器
        WMPLib.WindowsMediaPlayer music_player = new WMPLib.WindowsMediaPlayer();
        Npc[] npc = new Npc[2];

//计数器
        public int animation_ctrl = 0;

public Form_Obj()
        {
            InitializeComponent();
        }

private void Form_Obj_KeyDown(object sender, KeyEventArgs e)
        {
            Player.key_ctrl(player, map, npc, e);
            Map.drawMap(map, player, npc, pictureBox1.CreateGraphics(),
                new Rectangle(0, 0, pictureBox1.Width, pictureBox1.Height));

}

private void Form_Obj_Load(object sender, EventArgs e)
        {
            player[0] = new Player();
            player[0].bitmap = new Bitmap(@"r1.png");
            player[0].bitmap.SetResolution(100, 100);
            player[0].is_active = 1;

player[1] = new Player();
            player[1].bitmap = new Bitmap(@"r2.png");
            player[1].bitmap.SetResolution(100, 100);
            player[1].is_active = 1;

player[2] = new Player();
            player[2].bitmap = new Bitmap(@"r3.png");
            player[2].bitmap.SetResolution(100, 100);
            player[2].is_active = 1;

map[0] = new Map();
            map[0].bitmap_path = "map1.png";
            map[0].shade_path = "map1_shade.png";
            map[0].block_path = "map1_block.png";
            map[0].back_path = "map1_back.png";
            map[0].music = "3.mp3";

map[1] = new Map();
            map[1].bitmap_path = "map2.png";
            map[1].shade_path = "map2_shade.png";
            map[1].block_path = "map2_block.png";
            map[1].back_path = "map1_back.png";
            map[1].music = "1.mp3";

npc[0] = new Npc();
            npc[0].map = 0;
            npc[0].x = 150;
            npc[0].y = 600;
            npc[0].bitmap_path = "npc2.png";

npc[1] = new Npc();
            npc[1].map = 0;
            npc[1].x = 150;
            npc[1].y = 700;
            npc[1].bitmap_path = "npc3.png";

Map.change_map(map, player, npc, 0, 100, 350, 1, music_player);

}

private void Form_Obj_KeyUp(object sender, KeyEventArgs e)
        {
            Player.key_ctrl_up(player, e);
            Map.drawMap(map, player, npc, pictureBox1.CreateGraphics(),
                   new Rectangle(0, 0, pictureBox1.Width, pictureBox1.Height));
        }
    }
}

将以下代码放在Player.cs中

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace vs_Mp3npc
{
    class Player
    {
        public int x = 0;
        public int y = 0;
        public int face = 1;
        public Bitmap bitmap;

//当前角色
        public static int current_player = 0;
        //是否在队伍中
        public int is_active = 0;

public int x_offset = -120;
        public int y_offset = -220;

public int anm_frame = 0;
        public long last_walk_time = 0;
        public long walk_interval = 100;
        public int speed = 20;

//碰撞检测线距离
        public int collision_ray = 50;

public Player()
        {
            bitmap = new Bitmap(@"r1.png");
            bitmap.SetResolution(100, 100);
        }

public static int get_pos_x(Player[] player)
        {
            return player[current_player].x;
        }

public static int get_pos_y(Player[] player)
        {
            return player[current_player].y;
        }

public static int get_pos_f(Player[] player)
        {
            return player[current_player].face;
        }

public static void key_change_player(Player[] player)
        {
            for (int i = current_player + 1; i < player.Length; i++)
            {
                if (player[i].is_active == 1)
                {
                    set_player(player, current_player, i);
                    return;
                }
            }
            for (int i = 0; i < current_player; i++)
            {
                if (player[i].is_active == 1)
                {
                    set_player(player, current_player, i);
                    return;
                }
            }

}

public static void set_player(Player[] player, int oldindex, int newindex)
        {
            current_player = newindex;
            player[newindex].x = player[oldindex].x;
            player[newindex].y = player[oldindex].y;
            player[newindex].face = player[oldindex].face;
        }

//键盘控制
        public static void key_ctrl(Player[] player, Map[] map, Npc[] npc, KeyEventArgs e)
        {
            Player p = player[current_player];
            if (e.KeyCode == Keys.Tab)
            {
                key_change_player(player);
            }

//通过键位的判断,实现角色的位移
            switch (e.KeyCode)
            {
                case Keys.Left://左
                    walk(player, map, Comm.Direction.LEFT);
                    break;
                case Keys.Up://上
                    walk(player, map, Comm.Direction.UP);
                    break;
                case Keys.Right://右
                    walk(player, map, Comm.Direction.RIGHT);
                    break;
                case Keys.Down://下
                    walk(player, map, Comm.Direction.DOWN);
                    break;
                default:
                    break;
            }
            //npc碰撞
            npc_collision(player, map, npc, e);
            /*
                        p.anm_frame = p.anm_frame + 1;
                        if (p.anm_frame >= int.MaxValue)
                        {
                            p.anm_frame = 0;
                        }
                        p.last_walk_time = Comm.Time();*/

}

public static void key_ctrl_up(Player[] player, KeyEventArgs e)
        {
            Player p = player[current_player];
            p.anm_frame = 0;
            p.last_walk_time = 0;
        }

//行走方法
        public static void walk(Player[] player, Map[] map, Comm.Direction direction)
        {
            Player p = player[current_player];
            //方向
            p.face = (int)direction;
            //间隔判定
            if (Comm.Time() - p.last_walk_time <= p.walk_interval)
            {
                return;
            }
            //处理上下左右四个方向的移动
            //人物向上移动
            if (direction == Comm.Direction.UP && Map.can_through(map, p.x, p.y - p.speed))
            {
                p.y = p.y - p.speed;
            }
            //向下移动
            else if (direction == Comm.Direction.DOWN && Map.can_through(map, p.x, p.y + p.speed))
            {
                p.y = p.y + p.speed;
            }
            //向右移动
            else if (direction == Comm.Direction.RIGHT && Map.can_through(map, p.x + p.speed, p.y))
            {
                p.x = p.x + p.speed;
            }
            //向左移动
            else if (direction == Comm.Direction.LEFT && Map.can_through(map, p.x - p.speed, p.y))
            {
                p.x = p.x - p.speed;
            }

//动画帧
            p.anm_frame = p.anm_frame + 1;
            if (p.anm_frame >= int.MaxValue)
            {
                p.anm_frame = 0;

}
            p.last_walk_time = Comm.Time();

}

public static void set_pos(Player[] player, int x, int y, int face)
        {
            player[current_player].x = x;
            player[current_player].y = y;
            player[current_player].face = face;
        }

public static Point get_collision_point(Player[] player)
        {
            Player p = player[current_player];
            int collision_x = 0;
            int collision_y = 0;

if (p.face == (int)Comm.Direction.UP)
            {
                collision_x = p.x;
                collision_y = p.y - p.collision_ray;
            }

if (p.face == (int)Comm.Direction.DOWN)
            {
                collision_x = p.x;
                collision_y = p.y + p.collision_ray;
            }

if (p.face == (int)Comm.Direction.LEFT)
            {
                collision_x = p.x - p.collision_ray;
                collision_y = p.y;
            }

if (p.face == (int)Comm.Direction.RIGHT)
            {
                collision_x = p.x + p.collision_ray;
                collision_y = p.y;
            }

return new Point(collision_x, collision_y);
        }

public static void npc_collision(Player[] player, Map[] map, Npc[] npc, KeyEventArgs e)
        {
            Player p = player[current_player];
            Point p1 = new Point(p.x, p.y);
            Point p2 = get_collision_point(player);

for (int i = 0; i < npc.Length; i++)
            {
                if (npc[i] == null)
                {
                    continue;
                }

if (npc[i].map != Map.current_map)
                {
                    continue;
                }

if (npc[i].is_line_collision(p1, p2))
                {
                    if (npc[i].Collision_type == Npc.Collosion_type.ENTER)
                    {
                        //触发故事操作
                        Task.story(i);
                        break;
                    }
                    else if (npc[i].Collision_type == Npc.Collosion_type.KEY)
                    {
                        if (e.KeyCode == Keys.Space || e.KeyCode == Keys.Enter)
                        {
                            //触发故事操作
                            Task.story(i);
                            break;
                        }
                    }
                }
            }

}

//绘制角色
        //按钮的点击事件触发程序
        public static void DrawHero(Player[] player, Graphics g, int map_sx, int map_sy)
        {

Player p = player[current_player];
            //0 =x   y=bitmap1.Height / 4 * (face - 1)
            //width= bitmap1.Width / 4  height=bitmap1.Height / 4
            Rectangle rl = new Rectangle(p.bitmap.Width / 4 * (p.anm_frame % 4), p.bitmap.Height / 4 * (p.face - 1),
                p.bitmap.Width / 4, p.bitmap.Height / 4);
            Bitmap bitmapRec = p.bitmap.Clone(rl, p.bitmap.PixelFormat);

g.DrawImage(bitmapRec, map_sx + p.x + p.x_offset, map_sy + p.y + p.y_offset, 100, 100);

}

}
}

将以下代码放在Map.cs中

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static vs_Mp3npc.Layer_Sort_comparer;

namespace vs_Mp3npc
{
    class Map
    {
        //地图编号
        public static int current_map = 0;
        //图片路径
        public string bitmap_path;
        public Bitmap bitmap;

public string shade_path;
        public Bitmap shade;

public string block_path;
        public Bitmap block;

//天空背景路径
        public string back_path;
        public Bitmap back;
        //背景音乐
        public string music;

public Map()
        {
            bitmap_path = "m0.png";
        }

//判断能够通行
        public static bool can_through(Map[] map, int x, int y)
        {
            Map m = map[current_map];
            if (x < 0)
            {
                return false;
            }
            else if (x >= m.block.Width)
            {
                return false;
            }
            else if (y < 0)
            {
                return false;
            }
            else if (y >= m.block.Height)
            {
                return false;
            }

if (m.block.GetPixel(x, y).B == 0)
            {
                return false;
            }
            else
            {
                return true;
            }

}

public static void drawMap(Map[] map, Player[] player, Npc[] npc, Graphics g, Rectangle stage)
        {
            Map m = map[current_map];

int map_sx = get_map_sx(map, player, stage);
            int map_sy = get_map_sy(map, player, stage);

int p_x = Player.get_pos_x(player);
            int p_y = Player.get_pos_y(player);

int map_w = m.bitmap.Width;
            int map_h = m.bitmap.Height;

if (p_x <= stage.Width / 2)
            {
                map_sx = 0;
            }
            else if (p_x >= map_w - stage.Width / 2)
            {
                map_sx = stage.Width - map_w;
            }
            else
            {
                map_sx = stage.Width / 2 - p_x;
            }

if (p_y <= stage.Height / 2)
            {
                map_sy = 0;
            }
            else if (p_y >= map_h - stage.Height / 2)
            {
                map_sy = stage.Height - map_h;
            }
            else
            {
                map_sy = stage.Height / 2 - p_y;
            }

BufferedGraphicsContext bgc = BufferedGraphicsManager.Current;
            //缓冲区图形对象
            BufferedGraphics myBuffer = bgc.Allocate(g, stage);
            //缓冲区操作图形
            Graphics g2 = myBuffer.Graphics;
            //绘制 背景层
            if (m.back != null)
            {
                g2.DrawImage(m.back, 0, 0);
            }
            //画地图
            g2.DrawImage(m.bitmap, map_sx, map_sy);
            //画人物
            // Player.DrawHero(player, g2, map_sx,map_sy);
            draw_player_npc(map, player, npc, g2, map_sx, map_sy);
            //绘制覆盖图层
            g2.DrawImage(m.shade, map_sx, map_sy);
            for (int i = 0; i < npc.Length; i++)
            {
                if (npc[i] == null)
                {
                    continue;
                }
                if (npc[i].map != current_map)
                {
                    continue;
                }
                npc[i].drawNPC(g2, map_sx, map_sy);
            }
            myBuffer.Render();
            myBuffer.Dispose();

}

public static int get_map_sx(Map[] map, Player[] player, Rectangle stage)
        {
            Map m = map[current_map];
            if (m.bitmap == null)
            {
                return 0;
            }
            int map_sx = 0;
            int p_x = Player.get_pos_x(player);
            int map_w = m.bitmap.Width;
            if (p_x <= stage.Width / 2)
            {
                map_sx = 0;
            }
            else if (p_x >= map_w - stage.Width / 2)
            {
                map_sx = stage.Width - map_w;
            }
            else
            {
                map_sx = stage.Width / 2 - p_x;
            }
            return map_sx;
        }

public static int get_map_sy(Map[] map, Player[] player, Rectangle stage)
        {
            Map m = map[current_map];
            if (m.bitmap == null)
            {
                return 0;
            }
            int map_sy = 0;
            int p_y = Player.get_pos_y(player);
            int map_h = m.bitmap.Height;
            if (p_y <= stage.Height / 2)
            {
                map_sy = 0;
            }
            else if (p_y >= map_h - stage.Width / 2)
            {
                map_sy = stage.Height - map_h;
            }
            else
            {
                map_sy = stage.Height / 2 - p_y;
            }
            return map_sy;
        }

public static void draw_player_npc(Map[] map, Player[] player, Npc[] npc, Graphics g, int map_sx, int map_sy)
        {
            Layer_sort[] layer_sort = new Layer_sort[npc.Length + 1];
            for (int i = 0; i < npc.Length; i++)
            {
                if (npc[i] != null)
                {
                    layer_sort[i].y = npc[i].y;
                    layer_sort[i].index = i;
                    layer_sort[i].type = 1;
                }
                else
                {
                    layer_sort[i].y = int.MaxValue;
                    layer_sort[i].index = i;
                    layer_sort[i].type = 1;
                }
            }

layer_sort[npc.Length].y = Player.get_pos_y(player);
            layer_sort[npc.Length].index = 0;
            layer_sort[npc.Length].type = 0;

System.Array.Sort(layer_sort, new Layer_Sort_comparer());
            for (int i = 0; i < layer_sort.Length; i++)
            {
                if (layer_sort[i].type == 0)
                {
                    Player.DrawHero(player, g, map_sx, map_sy);
                }
                else if (layer_sort[i].type == 1)
                {
                    int index = layer_sort[i].index;
                    if (npc[index] == null)
                    {
                        continue;
                    }
                    if (npc[index].map != current_map)
                    {
                        continue;
                    }
                    npc[index].drawNPC(g, map_sx, map_sy);
                }
            }

}

public static void change_map(Map[] map, Player[] player, Npc[] npc, int newindex, int x, int y, int face, WMPLib.WindowsMediaPlayer music_player)
        {
            if (map[current_map].bitmap != null)
            {
                map[current_map].bitmap = null;
            }
            //判断是否有遮挡图
            if (map[current_map].shade != null)
            {
                map[current_map].shade = null;
            }

if (map[current_map].block != null)
            {
                map[current_map].block = null;
            }

if (map[current_map].back != null)
            {
                map[current_map].back = null;
            }

if (map[newindex].bitmap_path != null && map[newindex].bitmap_path != "")
            {
                map[newindex].bitmap = new Bitmap(map[newindex].bitmap_path);
                map[newindex].bitmap.SetResolution(100, 100);
            }

if (map[newindex].shade_path != null && map[newindex].shade_path != "")
            {
                map[newindex].shade = new Bitmap(map[newindex].shade_path);
                map[newindex].shade.SetResolution(100, 100);
            }

if (map[newindex].block_path != null && map[newindex].block_path != "")
            {
                map[newindex].block = new Bitmap(map[newindex].block_path);
                map[newindex].block.SetResolution(100, 100);
            }

if (map[newindex].back_path != null && map[newindex].back_path != "")
            {
                map[newindex].back = new Bitmap(map[newindex].back_path);
                map[newindex].back.SetResolution(100, 100);
            }

//加载NPC
            for (int i = 0; i < npc.Length; i++)
            {
                //如果npc数组中某个位置没有npc数据,执行下次
                if (npc[i] == null)
                {
                    continue;
                }

if (npc[i].map == current_map)
                {
                    npc[i].unload();
                }
                if (npc[i].map == newindex)
                {
                    npc[i].load();
                }
            }

//设置音乐播放器的文件路径
            music_player.URL = map[newindex].music;

current_map = newindex;
            Player.set_pos(player, x, y, face);
        }

}
}

将以下代码放在Comm.cs中

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace vs_Mp3npc
{
    class Comm
    {
        public static long Time()
        {
            DateTime dt1 = new DateTime(1970, 1, 1);
            TimeSpan ts = DateTime.Now - dt1;
            return (long)ts.TotalMilliseconds;
        }

public enum Direction
        {
            UP = 4,
            DOWN = 1,
            RIGHT = 3,
            LEFT = 2,
        }
    }
}

将以下代码放在Npc.cs中

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace vs_Mp3npc
{
    class Npc
    {
        //npc所属地图
        public int map = -1;
        //NPC坐标
        public int x = 0;
        public int y = 0;
        //NPC在地图上绘图偏移量
        public int x_offset = -120;
        public int y_offset = -220;
        //npc图片资源路径
        public string bitmap_path = "";
        public Bitmap bitmap;
        //NPC可见性
        public bool visible = true;

//碰撞区域
        public int region_x = 60;
        public int region_y = 60;

public enum Collosion_type
        {
            KEY = 1,
            ENTER = 2,
        }

public Collosion_type Collision_type = Collosion_type.KEY;

//加载NPC
        public void load()
        {
            if (bitmap_path != "")
            {
                //NPC的位图对象
                bitmap = new Bitmap(bitmap_path);
                //设置NPC的分辨率
                bitmap.SetResolution(100, 100);
            }
        }
        //卸载NPC
        public void unload()
        {
            if (bitmap != null)
            {
                bitmap = null;
            }
        }
        //绘制NPC
        public void drawNPC(Graphics g, int map_sx, int map_sy)
        {
            if (visible != true)
            {
                return;
            }
            if (bitmap != null)
            {
                g.DrawImage(bitmap, map_sx + x + x_offset, map_sy + y + y_offset, 100, 100);
            }
        }

//碰撞检测
        public bool is_collision(int collision_x, int collision_y)
        {
            Rectangle rect = new Rectangle(x - region_x / 2, y - region_y / 2, region_x, region_y);
            return rect.Contains(new Point(collision_x, collision_y));

}

//线碰撞检测
        public bool is_line_collision(Point p1, Point p2)
        {
            if (is_collision(p2.X, p2.Y))
            {
                return true;
            }

int px, py;
            px = p1.X + (p2.X - p1.X) / 2;
            py = p1.Y + (p2.Y - p1.Y) / 2;
            if (is_collision(px, py))
            {
                return true;
            }

px = p2.X - (p2.X - p1.X) / 4;
            py = p2.Y - (p2.Y - p1.Y) / 4;

if (is_collision(px, py))
            {
                return true;
            }

return false;
        }

}
}

将以下代码放在Layer_Sort_comparer.cs中

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace vs_Mp3npc
{
    class Layer_Sort_comparer : System.Collections.IComparer
    {
        public struct Layer_sort
        {
            public int y;
            public int index;
            public int type;
        }
        public int Compare(object s1, object s2)
        {
            return ((Layer_sort)s1).y - ((Layer_sort)s2).y;
            throw new NotImplementedException();
        }
    }
}

双击Form_Obj.Designer.cs重置以下替换代码

namespace WindowsFormsFu
{
    partial class Form_Obj
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

/// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

#region Windows Form Designer generated code

/// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.pictureBox1 = new System.Windows.Forms.PictureBox();
            ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
            this.SuspendLayout();
            //
            // pictureBox1
            //
            this.pictureBox1.Location = new System.Drawing.Point(-8, 0);
            this.pictureBox1.Name = "pictureBox1";
            this.pictureBox1.Size = new System.Drawing.Size(819, 688);
            this.pictureBox1.TabIndex = 0;
            this.pictureBox1.TabStop = false;
            //
            // Form_Obj
            //
            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(833, 700);
            this.Controls.Add(this.pictureBox1);
            this.KeyPreview = true;
            this.Name = "Form_Obj";
            this.Text = "Form_Obj";
            this.Load += new System.EventHandler(this.Form_Obj_Load);
            this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form_Obj_KeyDown);
            this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.Form_Obj_KeyUp);
            ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
            this.ResumeLayout(false);

}

#endregion

private System.Windows.Forms.PictureBox pictureBox1;
    }
}

将以下代码放在Task.cs中

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace vs_Mp3npc
{
    class Task
    {
        public static void story(int i)
        {
            DialogResult r1;
            if (i == 0)
            {
                r1 = MessageBox.Show("我是NPC1");
            }
            if (i == 1)
            {
                r1 = MessageBox.Show("我是NPC2");
            }
        }
    }
}

搜索Player  鼠标悬停在Windows Media Player  里路径末尾是\wmp.dll那一项

在工具箱里随便一项右键找到选项卡

拖拽工具箱里的

拉伸

将音乐播放器属性中的Visible改成false代表不可见

绑定文件中的歌曲

将以下图片放在指定文件夹中

另外在百度上下载三个1.mp3、2.mp3、3.mp3的文件放在指定文件夹中

以下为图示

回到设计中ctrl+F5运行之后

并且走到Npc附近按回车即可弹出指定对话框

音乐Npc弹窗 c#相关推荐

  1. QQ音乐 vs 网易云音乐,用户体验哪家强?

    作为一个音乐爱好者,QQ音乐和网易云音乐是小摹的手机必备APP.QQ音乐诞生于2005年,拥有非常丰富的音乐版权,在音乐类APP下载排行榜上始终立于不败之地.网易云音乐则发布于2013年,凭借着优质的 ...

  2. 微信小程序-音乐播放器

    前言 本文主要通过微信小程序的媒体API来实现一个简单的音乐播放器,主要实现的功能有音乐的切换.单曲循环.播放进度条的拖拽.播放与暂停和自定义音乐列表弹窗功能. 效果图 主要目录文件 |--image ...

  3. DIY一个高大上带提醒的计时器,简单实用,你还在等什么

    小编心语:锵锵锵!小编我又来了!昨天发了一篇比较实用的<Python聊天室>,鉴于反响还不错,SO ,小编也想给大家多分享点有用的干货,让大家边学边用.好了,闲话不多说,今天要给各位看官们 ...

  4. 12306抢票JS脚本

    // ==UserScript== // @name 12306.CN 订票助手 For Firefox&Chrome // @namespace http://www.u-tide.com/ ...

  5. 日程定时提醒程序C语言,DIY一个高大上带提醒的计时器,简单实用,你还在等什么...

    DIY一个高大上带提醒的计时器,简单实用,你还在等什么 发布时间:2020-07-19 15:02:29 来源:51CTO 阅读:1124 作者:实验楼 小编心语:锵锵锵!小编我又来了!昨天发了一篇比 ...

  6. 12306火车购票 助手.js

    // ==UserScript== // @name             12306.CN 订票助手 For Firefox&Chrome // @namespace        htt ...

  7. T端音乐盒子-NPC脚本

    为什么叫音乐盒子呢??这个说简单点,其实就是制作一个NPC,然后让玩家可以在游戏中有选则性的播放游戏音乐!有趣吧?其实主要用到了PlayDirectSound函数和SendPlaySound函数. 这 ...

  8. 服务器自定义npc音乐,Custom NPC 自定义NPC模组自定义音乐添加教程

    教程 一.格式转换[也是很重要的一部,音乐格式必须为ogg不然放不出声音] MC所使用的音乐格式为ogg,所以你要把需要添加的音乐转换成合适的ogg格式. 二.添加文件 打开MC的.minecraft ...

  9. 电脑静音工作,又听不到12306的来票音乐,纠结啊 !但春节前工作多任务重,不能安心工作,就动手做个“无声购票弹窗”工具吧!...

    当你在办公室里面工作,周围有老板.领导,但又着急买春节的火车票怎么办? 开着电脑声音,出票火车鸣笛声没听到,QQ聊天工具等不和谐的声音放出来了怎么办? 为了不让别人听见你在买票,只好把声音关了,但这样 ...

  10. 两步实现在网站左下角实现音乐播放器弹窗听歌

    一.播放样式 二.引入CSS+JS css,js下载地址:GitHub下载地址 2.1 新建模块musicPlayer.html <div id="player" th:fr ...

最新文章

  1. MSDE2000的安装方法
  2. MyCat数据库分片
  3. 50%的次日留存率,没有评论留言功能的same是如何做到的?
  4. JavaSE(七)——Scanner类、String类
  5. .NET开发Windows Service程序 - Topshelf
  6. HH SaaS电商系统的销售订单毛利润设计
  7. Object类入门这一篇就够了!
  8. spring Boot环境下dubbo+zookeeper的一个基础讲解与示例
  9. Keepalived 配置实例
  10. tomcat使用中出现的问题及其解决之道
  11. python snownlp了解_分享python snownlp的实例教程
  12. MacOS制作ubuntu18.04系统U盘启动盘
  13. 计算机程序无法响应如何解决,电脑卡死出现应用程序未响应不可以正常工作怎么办?...
  14. 辣妈直升机视频号值得学习吗
  15. java版超级玛丽游戏
  16. Poj 2992 Divisors(算数基本定理素数因子个数)
  17. 应用网易轻舟,德邦快递核心系统入选云原生应用十大优秀案例
  18. mne plot出错_MNE-Python 环境配置 | win 10
  19. 接入层、汇聚层、核心层交换机三者之间的功能详解
  20. 在TriCore架构芯片上移植 RT-Thread

热门文章

  1. 贴片铝电容识别及型号_2.贴片电容和贴片铝电解的封装材质型号大全
  2. 学习:Ubuntu14.04编译caffe问题记录
  3. ae2018怎么打开2019_AE CC 2019新功能全面解析!
  4. DDoS 攻击次数和流量峰值情况
  5. 群晖文件存储服务器os系统,NAS探索 篇二:群晖NAS系统 最简单选择方法
  6. QT中编译错误:-1: error: skipping incompatible D:\
  7. C++中的 求模运算 和 求余运算
  8. 判断微信小程序转发是否成功
  9. 计算机网络实验-路由器IP地址配置及直连网络和ARP协议分析
  10. 交替性注意力_玩出专注力,一次对付五种专注力不足