游戏技术基础:实验记录九
net: [[../BehaviorTracking/else/笔记系统构建]]
实验九完成捉猴子游戏的设计与开发,实现以下基本功能:
(1) 小猴子随机出现在某个位置;
(2) 在一个给定的时间内,玩家可以用鼠标左键来点击该猴子,若击中,则该小猴子立即“变脸”;
(3) 在给定时间结束时,若玩家还没有击中,该小猴子就会逃走,随机出现在另外的位置……;
(4) 利用菜单开始游戏、设置猴子数量和时间间隔。
(5) 给游戏添加背景音乐和音效。
实验过程
设计UI界面,包括游戏主窗体及菜单项,并添加必要的控件,如Label、Button等。2. 设计一个猴子类,包括以下几个属性。
1234567891011121314151617class Monkey { public int X { get; set; } // 猴子X坐标 public int Y { get; set; } // 猴子Y坐标 public bool IsCaptured { ge ...
游戏技术基础:实验八记录
net: [[../BehaviorTracking/else/笔记系统构建]]
实验要求完成雪花漫天飞舞的场景(粒子系统),基本步骤如下:
1、构建结构体SNOW;2、利用随机函数随机生成位置、大小、速度、加速均不相同的雪花;3、设置定时器;4、更新每一个雪花的位置;5、将背景设置为黑色,并消除图像闪烁。
实验步骤:1. 打开双缓存
2. 构建一个类SNOW,并利用随机函数定义SNOW的生成函数及位置更新函数
12345678910111213141516171819202122232425262728293031323334353637 Class SNOW { public int x, y; public int size, speed, acceleration; public SNOW(Random rnd, int panelWidth) { size = rnd.Next(5, 20); speed = rnd ...
游戏技术基础:实验记录七
net: [[C#]]
1. 模拟小球的自由落体运动,直至小球静止不动。以下是使用C#语言和Windows Forms应用程序在窗体上实现模拟自由落体运动的示例代码:
创建Form1.cs文件并插入以下代码:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485using System;using System.Drawing;using System.Windows.Forms;namespace FreeFallSimulation{ public partial class Form1 : Form { private const double Gravity = 9.81; // 重力加速度 private double _time = 0; // 时 ...
游戏技术基础:实验记录六
net: [[C#]]
1、GIF动画示例,利用几张彼此差异较小的图片制作GIF动画步骤:
首先,需要将GIF动画分解为逐帧图像。可以使用许多工具来完成此操作,例如Adobe Photoshop,GIMP或在线GIF分解器。将所有帧保存为单独的图像文件(比如PNG或JPG格式),并记下每个图像的运行时间。
在Visual Studio中创建一个新的Windows窗体应用程序项目,并在设计器上创建一个PictureBox控件。将该控件的SizeMode属性设置为“Zoom”,以确保图像可以自动缩放以适合控件大小。
为了使图像序列成为动画,需要使用一个计时器。在图像序列上迭代,并在PictureBox控件上显示当前帧。此外,需要在控件的Paint事件中将背景颜色设置为透明以保留所有图像帧。以下是示例代码:
1234567891011121314151617181920212223242526272829303132333435363738394041424344private Image[] frames; // 存放所有的帧图像private int currentFrame ...
游戏技术基础:实验五记录
net: [[C#]]
使用的新工具ArrayList类ArrayList类是C#编程语言和.NET Framework中的一个类,它提供了在动态数组中存储对象的能力。使用ArrayList类,开发者可以方便地添加、删除、查找和排序动态数组中的元素。
ArrayList类的特点包括:
元素类型不需要提前指定。在必要时,ArrayList会自动调整其类型以适应添加的元素类型。
可以存储任何类型的对象,包括简单类型(例如int、bool等)和复杂类型(例如自定义的类实例)。
与普通的数组相比,动态数组可以在运行时自动调整大小,并且不需要手动管理内存。
支持在数组中插入、删除、查找和排序元素。
提供了一些有用的属性和方法,例如Count属性来获取数组的长度,Add方法来添加新的元素,IndexOf方法来查找元素的位置等。
需要注意的是,由于ArrayList存储的是对象,因此在将对象添加到ArrayList中时,实际上是添加了一个指向该对象的引用。这意味着如果修改了一个对象,那么在ArrayList中保存的引用也会受到影响。另外,在使用ArrayList类时还需要小心其性能,因 ...
blender耳部建模过程记录
net: 三维建模
谭老师的方法
首先,整一个3*3的长方形平面:
将耳郭的形状做出来:
沿法向挤压出厚度,删掉原来的九个面
选中前九个面,旋转一下
仍然是选中这九个面,放大,然后挤出流型,再挤出流型。
然后对前面的九个面,先插入内插面,向里挤出流型*2,放大,再向里挤出流型,缩小,继续挤压,缩小,再向左移动,缩小,继续挤压,缩小,再向左移动,做出耳道外部。
根据参考图调整一下部分点的位置。
继续调整,将左侧的外部的点向外提,使耳朵好像斜插在脑袋上。
删掉(融并边)两条边
再利用小刀工具切割出这样的线
好了,跟着谭老师的古早教程做了tm一个小时后,在这一步卡了很久,这里不断删线加线只是为了将外围的耳郭像耳朵一样穿插到耳面,而且nm因为删线后的平面非常奇怪,导致教程中老师自己加线都加不上去。那我为什么不一开始就把穿插关系做好呢?在B站一搜还真是,nm,这垃圾教程浪费老子时间。下面是跟着B站教程做的步骤。
B站教程
先整一个2*2的平面,插入内插面,然后挤出,调整平面大小和形状。
选中前六个面,插入内插面,删除中间的面。
分开中间的点,为穿插关系做好准备。
根据参考图 ...
游戏技术基础:实验四记录
net: C#
实验内容在窗口中以图形和文字的形式显示硬币数量,实现以下功能:
(1)利用键盘控制硬币个数的增加和减少;
(2)利用鼠标控制硬币个数的增加和减少;
(3)利用菜单控制硬币个数的增加和减少。
解决方式以下是实现硬币增减的思路:1.使用 Visual Studio 创建一个 Windows 窗体应用程序(Windows Forms Application)项目。
2.将所需的控件添加到窗体中。 1. 菜单menustrip, 按提示输入文字 2. label控件,显示硬币数量
3.为鼠标单击事件添加代码以增加或减少硬币的数量。 this.MouseClick += new MouseEventHandler(Form1_MouseClick);//增加鼠标事件
4.为窗体添加快捷键,以便使用键盘控制增加和减少硬币的数量。 this.KeyDown += new KeyEventHandler(Form1_KeyDown);//增加键盘事件
5.添加菜单控件并为其添加单击事件,以实现硬币数量的增加和减少。
以下是大致的代码实现:
1234567891 ...
游戏技术基础:实验三记录
net: [[C#]]
1、单选按钮控件(RadioButton控件)练习
在设计视图中,拖入一个Button和四个RadioButton,将它们排列在窗口中央。为每个RadioButton设置一个具有区分度的文本。窗口应长这样:
双击Button,添加一个点击事件处理程序:
123456789101112private void button1_Click(object sender, EventArgs e) { // 判断哪个RadioButton被选中 string city = ""; if (radioButton1.Checked) city = radioButton1.Text; else if (radioButton2.Checked) city = radioButton2.Text; else if (radioButton3.Checked) city = radioButton3.Text; else if (radioButton4.Checked) city = radioButton4.Text; ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
游戏技术基础:实验记录二
net: [[C#]]
画出相交直线首先,使用Graphics对象在窗体中画出两条相交的直线。将在窗体中央垂直相交的两条直线绘制出来:
123456789101112131415csharp using System.Drawing;using System.Windows.Forms;public class Form1 : Form { public Form1() { this.Paint += new PaintEventHandler(MainForm_Paint); } private void MainForm_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; int centerX = this.ClientSize.Width / 2; int centerY = this.ClientSize.Height / 2; Pen pen = new Pen(Color.Black); // 画垂直线 g.DrawLi ...
