用vs和vs2015 easyxx做一个产生障碍物的函数(雷霆战机里一样得障碍物)

EASYX期末大作业,跪求教雷霆战机怎么编T T【easyx吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:8,326贴子:
EASYX期末大作业,跪求教雷霆战机怎么编T T收藏
主要是LZ自己已经把背景飞机写出来了,可是发射子弹子弹不会射出去而是停在飞机面前不动,怎么解决啊求各位大神
求大神讲解~
#include &graphics.h&
#include &conio.h&#include &time.h&#include &WINDOWS.H&#include &queue&#include &stdlib.h&#include &stdio.h&void Interact(int a[100][100],int b[100][100]);void Show(int a[100][100],int b[100][100]);IMAGE imgld1,imgld2,imgld3,imgld4,imgld5, imgld6, imgld6_,imgld7,imgld7_, imgliubai1, imgliubai1_;//留白int a[100][100]={0},b[100][100]={0};int i=0,j=0;// i是飞机的横坐标 j是飞机的竖坐标int i_b=0,j_b=0;void main(){ srand( (unsigned)time(NULL) );a[0][0]=1;loadimage(&imgld1, &res\\1.gif&);//开场动画loadimage(&imgld2, &res\\2.gif&);loadimage(&imgld3, &res\\3.gif&);loadimage(&imgld4, &res\\4.gif&);loadimage(&imgld5, &res\\5.jpg&);loadimage(&imgld6, &res\\6.gif&);loadimage(&imgld6_, &res\\6_.gif&);loadimage(&imgld7,&res\\7.gif&);loadimage(&imgld7_,&res\\7_.gif&);loadimage(&imgliubai1, &res\\liubai1.gif&);loadimage(&imgliubai1_, &res\\liubai1_.gif&);initgraph(800, 450);BeginBatchDraw();// // 获取窗口句柄HWND hwnd = GetHWnd();// 设置窗口标题文字SetWindowText(hwnd, &雷霆战机--雷神之怒&);putimage(0, 0, &imgld1);Sleep(10);putimage(0, 0, &imgld2);Sleep(10);putimage(0, 0, &imgld3);Sleep(10);putimage(0, 0, &imgld4);Sleep(10);putimage(0, 0, &imgld5);//背景while(1){Show(a,b);
Interact(a,b);}getch();closegraph();}void Interact(int a[100][100],int b[100][100]){i_b = i + 5 ;j_b = j - 4 ;if(kbhit())switch(getch())//dir是方向 1是向右 2是向左
3是向上 4是向下{case'a':a[i][j]=0;i = i - 5; a[i][j]=1; case'w':a[i][j]=0; j = j - 5; a[i][j]=1;case'd':a[i][j]=0; i = i + 5; a[i][j]=1; case's':a[i][j]=0; j = j + 5; a[i][j]=1; case'j':b[i_b][j_b]=0;j_b = j_b + 5;b[i_b][j_b]=1;}FlushBatchDraw();}void Show(int a[100][100],int b[100][100]){putimage(0, 0, &imgld5);int i,for (i=0; i&100; i++){for (j=0; j&100; j++)switch (a[i][j]){case 1:putimage(i*10, j*10, &imgld6_, NOTSRCERASE);putimage(i*10, j*10, &imgld6, SRCINVERT);}}for (i=0; i&100; i++)for (j=0; j&100; j++)switch (b[i][j]){case 1:putimage(i*10, j*10, &imgld7_, NOTSRCERASE);putimage(i*10, j*10, &imgld7, SRCINVERT);}}
大神们快来呀~
楼主你是不是河海大学的。。。我们作业也是这个
楼主!找童晶,童晶帮助你
建议你看看官网最近投稿的一个射击游戏ht防吞tp://防吞View.aspx?id=166防吞
我提供一个思路吧,其实你看看easyx官网的范例游戏应该也可以总结出来。1,在游戏开始后,开始接收鼠标或键盘命令之前,进行预先绘图,(使用SetWorkingImage(主界面图片)),绘制完了就SetWorkingImage();表示恢复绘图窗口为当前窗口。2.游戏开始时把主界面贴在屏幕上,接收用户指令。3.处理指令。处理指令首先是
数据值的改变,(比如说游戏中人物坐标的改变等等)。4.根据新的坐标,重新绘图(SetWorkingImage(主界面),然后写上绘图语句(最好是全部都贴图))。5.Sleep之后,再次接收用户指令。重复以上操作。建议你找一个已经写好了的代码看一下。先把程序框图,大致思路确定,再写代码不迟,一定要分步骤进行,不要写完了所有代码后一次性执行,检查。
登录百度帐号一个画线段速度的问题【easyx吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:8,326贴子:
一个画线段速度的问题收藏
这个茶壶用3072个三角形组成三角形是用线段填充的 line()函数看情况 大概有 2 万--3 万根线段用ege12.08 + gcc3.4x86(mingw32)在鼠标旋转时反应非常快,用EasyX +vs2008在没有BeginBatchDraw();FlushBatchDraw();时画一遍就象做慢动作,鼠标一点都不能动加上这两个,只是鼠标旋转不流畅有没有人知道是什么原因?是编译器vs2008慢?还是EasyX 慢?还是其他?
加上批量绘图后,鼠标旋转不流畅?这是什么意思呢?
如果用鼠标旋转一个三角形,流畅吗?
参考一下这篇文章吧,我觉得你的问题可能在这里:或者,可以发出来你的代码,帮你看看
抱歉,出差中,笔记本上只有 vs2017,临时测试了一下。首先,为了兼容性,easyx 直接调用的 winapi,速度肯定要慢。解决办法:1. 在 easyx 中,用 bresenham 直线算法替换原生 line 函数。(可参见 easyx 官网范例)2. 用操作显示缓冲区的办法实现画点,替换 bresenham 直线算法中的 easyx 原生画点函数。(参见 easyx 官网范例)然后我在笔记本上测试了,非常流畅。
登录百度帐号下载 - EasyX Library for C++【图片】关于用easyx制作魔塔游戏的提问楼_easyx吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:8,326贴子:
关于用easyx制作魔塔游戏的提问楼收藏
Hi,大家好。我是easyx吧的新人。刚迈入大学,学了一点基础的C语言。用的编译器是VS2010,安上easyx后觉得还挺有意思的。正好我们期末大作业是做一个游戏,我就心一横选了魔塔这个课题。主要还是个人喜欢。。不过发现制作道路上真的是困难重重,希望各路大神可以前来指点
首先一个困扰了我很久的问题,就是关于easyx的文字输出相关函数...在easyx library里看过教程帖,_T()的规则看的有些一知半解。在网上down了一个实例在EasyX_ Help里没有找到sprintf用法。。我就好奇这个_T加哪都不对...求解还有一个经历就是第一次用easyx我画了一张简易的中国象棋棋盘,如图这个棋盘缺文字。就是中间的楚河啥的...但好像我这么作死是需要把文字旋转才行。。。所以我又懵逼了...同样求解怎么办
你可以把字画成图片,保存后旋转
settextstyle 可以实现文字的旋转。
关于 sprintf 的问题,你必须注意,确保你的代码都使用 unicode,或者都不使用 unicode。默认 vs2010 是使用 unicode 的。所以,你不要用 sprintf,而要用 sprintf 的 unicode 版本:_swprintf或者使用自适应版本:_stprintf
在努力实现人物的走动。一开始的思路是把行走图切开,一个个上,然后通过短暂的sleep和cleardevice来切换图。但是放在地图上运行有时候会出现一些闪屏。所以我还是考虑用原图每次显示局部图片,通过for语句就能实现人物走动。。但是问题来了。png格式似乎不能调用,转成jpg又会出现白色背景。如果要用jpg就得再扣,然后加黑图层,不是我想看到的。。我该咋办呢⊙﹏⊙‖ 运行界面。。地图不完全。。左边黑的到时候要加属性栏开始的时候想出来的向右移的代码。。特别蠢。。
我和楼主一样刚刚接触c语言,期末作业是做游戏,我们加下qq交流交流?
登录百度帐号VS2010刚装完EasyX。程序运行后怎么没效果啊?【easyx吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:8,326贴子:
VS2010刚装完EasyX。程序运行后怎么没效果啊?收藏
这是我在网上复制的源代码。在VS2010上运行后,总是没效果啊。我已经有将.c改成.cpp了。#include "graphics.h"#include &stdlib.h&#include &stdio.h&int main(void){int driver,mode,i;float j=1.0,k=1.0;driver=VGA;mode=VGAHI;initgraph(&driver,&mode,"");setbkcolor(YELLOW);for(i=0;i&=25;i++){setcolor(8);circle(310,250,k);k=k+j;j=j+0.3;}system("pause");return 0;}
错误如下:1&c:\users\administrator\documents\visual studio 2010\projects\图形函数\图形函数\222.cpp(13): warning C4244: “参数”: 从“float”转换到“int”,可能丢失数据1&
LINK : 没有找到 C:\Users\Administrator\Documents\Visual Studio 2010\Projects\图形函数\Debug\图形函数.exe 或上一个增量链接没有生成它;正在执行完全链接========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========晕了晕了。
编译成功,但是有两个警告,可以执行。执行结果是几个同心圆,但是颜色很浅,是几乎完全黑色的红。所以问题出在 setcolor(8);,因为颜色 8 表示很黑的红色。将颜色修改为你期望的颜色就可以看到了。比如 setcolor(RED); 设置为红色。
我刚测试了,是可以的啊。贴出来你最新的代码看看。
1&------ 已启动生成: 项目: 图形函数, 配置: Debug Win32 ------1&生成启动时间为
7:58:01。1&InitializeBuildStatus:1&
正在创建“Debug\图形函数.unsuccessfulbuild”,因为已指定“AlwaysCreate”。1&ClCompile:1&
222.cpp1&c:\users\administrator\documents\visual studio 2010\projects\图形函数\图形函数\222.cpp(15): warning C4244: “=”: 从“double”转换到“int”,可能丢失数据1&Link:1&
LINK : 没有找到 C:\Users\Administrator\Documents\Visual Studio 2010\Projects\图形函数\Debug\图形函数.exe 或上一个增量链接没有生成它;正在执行完全链接1&
图形函数.vcxproj -& C:\Users\Administrator\Documents\Visual Studio 2010\Projects\图形函数\Debug\图形函数.exe1&FinalizeBuildStatus:1&
正在删除文件“Debug\图形函数.unsuccessfulbuild”。1&
正在对“Debug\图形函数.lastbuildstate”执行 Touch 任务。1&1&生成成功。1&1&已用时间 00:00:01.06========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========
运行后出现这个。把这个关闭之后,又出现这个。什么效果也没有啊。奇怪啊。
代码呢?不是说了要你贴代码吗?要修改后的。
#include &stdio.h&#include &stdlib.h&#include &graphics.h&#define len 20
//每格长20cm#define N
//15*15棋盘int main(void){ int x0,y0,y1,x1,x,y;
int i,drive,
x=y=x0=y0=20;
//设置起始坐标 y1=x1=x0+(N-1)*
//计算出顶点的坐标 drive=DETECT; initgraph(&drive,&mode,"");
//设置图形模式 setbkcolor(YELLOW);
//背景颜色为什么没法显示呢?奇怪。 setcolor(GREEN);
for(i=1;i&=N;i++,x+=len)
line(x,y0,x,y1);
//画出15条横线 for(i=1;i&=N;i++,y+=len)
line(x0,y,x1,y);
//画出15条竖线 system("pause"); return 0;}
不只是这个五子棋盘的程序。其他的程序也都编译成功了。但是运行的时候,背景颜色只能调成绿色,其他的全都没法显示。而前景色则只能显示绿色或红色。我只是安装了EasyX,是不是还要设置其他的东西啊?不然怎么只有这两种颜色啊?奇怪。
前面不是告诉你了么,设置背景色后,调用一次 cleardevice();还有就是设置图形模式不用那么复杂,直接写一个 initgraph(640, 480);
登录百度帐号

我要回帖

更多关于 vs2017配置easyx 的文章

 

随机推荐