csgo连枪图代码:简单实现与复古风格

2023-10-07  17

csgo连枪图代码:简单实现与复古风格

以下是一个简单的CSGO连枪图代码,使用C++和Sourcemod来实现复古风格:

``` #include #include #include #include

using namespace std; using namespace glift; using namespace sourcemod;

// 设置窗口大小和灵敏度 public void setWindowsize(int w, int h) { // 设置窗口大小为W和H width = w; height = h; sensitivity = 2; // 设置为较低灵敏度 }

csgo连枪图代码:简单实现与复古风格

// 设置画笔颜色和宽度 public void setPaintColor(int r, int g, int b) { // 设置画笔颜色为RGB color = new Color(r, g, b); // 设置画笔宽度为1像素 width = 1; }

// 绘制连枪线 public void drawBullet(vector>& points, int r, int g, int b) { // 创建画笔对象 Object object; // 设置画笔颜色和宽度 object.setColor(color); object.setWidth(width); // 创建点组对象 vector> pointGroup; // 创建一个新点,设置其XYZ为0,Z为10 pointGroup.push_back(points[0]); // 遍历其它点,将它们的Z值加1 for (int i = 1; i < points.size(); i++) { pointGroup.push_back(points[i]); } // 将点添加到对象中 object.addPoint(pointGroup); // 将画笔添加到对象中 object.addModifier(new Line(object.getCentroid(), object.getMinVec().normalized())); // 渲染画笔 gl->setColor(color.r, object.getColor().getAlpha()); gl->setLineWidth(width); gl->setTrilineate(1); gl->set(GL_POLYGON, 0, 4); gl->glDraw(GL_POLYGON, 0, 4, 0, 4); }

csgo连枪图代码:简单实现与复古风格

// 更新游戏中的所有对象 public void updateAllObjects(float delta) { // 遍历所有对象 for (Object& obj : objects) { // 更新画笔颜色和位置 if (obj.getType() == GLIF_MODEL) { obj->setColor(obj->getColor().normalized()); obj->setScale(1, 1, 1); obj->setPosition(Vec3f(0.0f, 0.0f, 0.0f)); obj->setOrientation(ORDINAL); obj->setActive(true); } else if (obj.getType() == GLIF_SOURCE) { // 设置画笔颜色和位置 obj->setColor(Color(obj->getColor().r, obj->getColor().g, obj->getColor().b)); obj->setScale(1, 1, 1); obj->setPosition(Vec3f(0.0f, 0.0f, 0.0f)); obj->setOrientation(ORDINAL); obj->setActive(true); // 设置画笔宽度为1像素 obj->setWidth(1); // 设置画笔为连射模式 obj->setDrawingMode(PM_BULLET); // 设置画笔为左轮手柄模式 obj->setHorizontalTrigger(Vec3f(0.0f, 0.3f, 0.0f)); obj->setVerticalTrigger(Vec3f(0.0f, 0.0f, 0.0f)); // 设置画笔为开火模式 obj->setFireMode(FM_BULLET); // 设置画笔为祖传模式 obj->setIsF祖Modified(false); // 设置祖传武器 if (obj->getType() == GLIF_WEAPON) { // 设置武器颜色为红色 obj->setColor(Color(255, 0, 0)); // 设置武器宽度为10像素 obj->setWidth(10); // 设置武器旋转角度为90度 obj->setRotation(ROT_90); // 设置武器发射模式为连射 obj->setDrawingMode(PM_BULLET); // 设置射程为100像素 obj->setRange(100); // 设置伤害值为20点 obj->setHit points(20); } } } }

csgo连枪图代码:简单实现与复古风格

// 渲染游戏中的所有物体 public function renderAllObjects(int w, int h) { // 遍历所有对象 for (Object& obj : objects) { // 渲染武器 if (obj.getType() == GLIF_WEAPON) { // 渲染射线 drawBullet(obj->getShots(), w, obj->getColor().r, obj->getColor().g, obj->getColor().b); // 渲染武器 if (obj->getType() == GLIF_RIFLE) { // 渲染枪体 Vec3f枪体(obj->getPos().x, obj->getPos().y, obj->getPos().z); gl->setColor(Color(obj->getColor().r, obj->getColor().g, obj->getColor().b)); gl->setTransformationMatrix( glift::glift::getRotationMatrix(45, obj->getPos()), glift::glift::getTranslationMatrix(Vec3f(0.1f, 0.1f, 0.1f), obj->getPos()), glift::glift::getRotationMatrix(45, obj->getPos()))); gl->glDrawModel(GL_POLYGON, 0, 4); gl->glDrawModel(GL_POLYGON, 0, 5); gl->glDrawModel(GL_POLYGON, 0, 6); gl->glDrawModel(GL_POLYGON, 0, 7); gl->glDrawModel(GL_POLYGON, 0, 8); gl->glDrawModel(GL_POLYGON, 0, 9); gl->glDrawModel(GL_POLYGON, 0, 10); gl->glDrawModel(GL_POLYGON, 0, 11); gl->glDrawModel(GL_POLYGON, 0, 12); gl->glDrawModel(GL_POLYGON, 0, 13); gl->glDrawModel(GL_POLYGON, 0, 14); gl->glDrawModel(GL_POLYGON, 0, 15); gl->glDrawModel(GL_POLYGON, 0, 16); gl->glDrawModel(GL_POLYGON, 0, 17); gl->glDrawModel(GL_POLYGON, 0, 18); gl->glDrawModel(GL_POLYGON, 0, 19); gl->glDrawModel(GL_POLYGON, 0, 20); } } else if (obj.getType() == GLIF_MODEL) { // 渲染模型 if (obj->getModelName() == "weapons/model_%d.mdl") { // 渲染材质 gl->setColor(Color(obj->getColor().r, obj->getColor().g, obj->getColor().b)); gl->setTexture(Texture(obj->getTextureName()), 0, 0); gl->setTrilineate(1); gl->set(GL

转载请注明原文地址:http://www.jupinzan.cn/qiang/249505.html
00

最新回复(0)