求c语言笑脸可自由上下左右动的代码
挺有意思的一道题目,看一下这样符不符合要求,用wasd控制移动。在VC6运行过了。
#include《stdio.h》
#include《stdlib.h》
#include《conio.h》
int main()
{
//墙从第2行第2列到第15行第15列
int lines = 2 , rows = 2 , i ;
char operate ;
do{
system( “cls“ ) ; //清屏函数
switch( operate )
{
case ’w’ : //上移
if( lines == 2 )
printf(“不能再往上走了“) ; //到边界后不能再往上
else
lines — ; //行减
break ;
case ’s’ : //下移
if( lines == 15 )
printf(“不能再往下走了“) ; //到边界后不能再往下
else
lines ++ ; //行增
break ;
case ’a’ : //左移
if( rows == 2 )
printf(“不能再往左走了“) ; //到边界后不能再往左
else
rows — ; //列减
break ;
case ’d’ : //右移
if( rows == 15 )
printf(“不能再往右走了“) ; //到边界后不能再往右
else
rows ++ ; //列增
break;
default :
break ;
}
//根据行列值,输出 lines-1 个换行,rows-1 个空格
for( i = 1 ; i 《 lines ; i ++ )
printf( “\n“ ) ;
printf( “%*c“ , rows , 1 ) ;
} while( operate = getch( ) ) ;
return 0 ;
}
同学,怎么用C语言制作简单的动画啊
因为C的图形处理功能太一般,不便于创作大型动画。制作动画用flash。
flash制作动画:
-
打开Flash,点击【文件】→【新建】,在打开的“新建”窗口中选择“Flash文件(ActiveScript 3.0)“,然后点击”确定“创建空白文档。
-
点击【插入】→【新建元件】,在打开的”新建元件“窗口中,将名称设置为”运动的小人“,勾选”影片剪辑“,然后点击”确定“按钮。
-
点击【文件】→【导入】→【导入到库】,然后在打开的”导入到库“窗口中,选择事先准备好的小人走动姿势图片,全部选择并点击”打开“按钮,导入到库。
-
在图层1 的第一帧,把库中的“Result0”拖动到场景中。
-
点击“时间轴”上的“新建图层”按钮,创建图层2,然后在图层2的第5帧处,点击【插入】→【关键帧】,把库中的“Result1”拖动到场景中。
-
利用同样的原理,将”Result2“、 ”Result3“和”Result4“分别到图层3、图层4和图层5中,对应的帧分别为10、15和20处。
-
最后调整各个图层图像的延续时间。至此,运动的小人影片剪辑制作完成。
-
切换至主场景中,使主场景处于活动状态,点击”属性“面板中的”大小“按钮,将场景的大小设置为”800*300“,同时将背景色设置为”黑色“点击”确定“按钮。
-
从库中将”运动的小人“影片剪辑拖动到场景左边外边。
-
然后在”时间轴“第30帧处,点击【插入】→【时间轴】→【关键帧】,在30帧处插入关键帧,然后将小人从场景的左侧外面拖动到场景右侧外面。至此,整个动画设置完成。
-
在1到30帧之间鼠标右击,选择”创建补间动画“。
-
最后按下键盘组合键”CTRL+Enter“进行测试。如果感觉小人运动不规律,可适当将1至30帧的距离调整的稍微大一些,直到满意为止。
用C语言画简单的小人
TC2.0里有一个bgidemo.c的图形编程示例程序。
其中有一个演示屏幕贴图的子程序,一个外星人的飞船在屏幕上飞来飞去。
这个程序可以简单地修改一下就可以用于你的需求了。
程序不难看懂。
这个代码我找到了。大概说一下。LZ需要自己去找一下完整的代码研究,这里我只贴出相关的一段。
void PutImageDemo(void)
{
static int r = 20;
static int StartX = 100;
static int StartY = 50;
struct viewporttype vp;
int PauseTime, x, y, ulx, uly, lrx, lry, size, i, width, height, step;
void *Saucer;
MainWindow(“GetImage / PutImage Demonstration“);
getviewsettings( &vp );
/* Draw Saucer */ 下面是用绘画的方式画了一个简单的飞碟。这个飞碟图用于之前复制到内存里备用。
setfillstyle( SOLID_FILL, getmaxcolor() );
fillellipse(StartX, StartY, r, (r/3)+2);
ellipse(StartX, StartY-4, 190, 357, r, r/3);
line(StartX+7, StartY-6, StartX+10, StartY-12);
circle(StartX+10, StartY-12, 2);
line(StartX-7, StartY-6, StartX-10, StartY-12);
circle(StartX-10, StartY-12, 2);
/* Read saucer image */ 这里开始把那个飞碟的小图图复制到一个内存缓冲区里。先计算大小,需要的内存大小。
ulx = StartX-(r+1);
uly = StartY-14;
lrx = StartX+(r+1);
lry = StartY+(r/3)+3;
width = lrx – ulx + 1;
height = lry – uly + 1;
size = imagesize(ulx, uly, lrx, lry);
Saucer = malloc( size ); // 分配内存
getimage(ulx, uly, lrx, lry, Saucer); // 搞到了。
putimage(ulx, uly, Saucer, XOR_PUT); // 这就在原位置上,以异或的方式画一下。用异或的方式绘图,两次绘制后,图像正好就会消失为原来的背景。
但是,LZ的可能这样不行,那就需要复杂一些的绘制了,用人物的黑轮廓图或上背景,得到镂空,然后再把黑背景的角色用or方式绘上。
下面就是随机地绘制了。
/* Plot some “stars“ */
for ( i=0 ; i《1000; ++i )
putpixel(random(MaxX), random(MaxY), random( MaxColors-1 )+1);
x = MaxX / 2;
y = MaxY / 2;
PauseTime = 70;
/* until a key is hit */
while ( !kbhit() ) {
/* Draw the Saucer */
putimage(x, y, Saucer, XOR_PUT); /* draw image */
delay(PauseTime);
putimage(x, y, Saucer, XOR_PUT); /* erase image */
上面的还是两次 xor,显示图片,消除图片。
/* Move Saucer */
step = random( 2*r );
if ((step/2) % 2 != 0 )
step = -1 * step;
x = x + step;
step = random( r );
if ((step/2) % 2 != 0 )
step = -1 * step;
y = y + step;
if (vp.left + x + width – 1 》 vp.right)
x = vp.right-vp.left-width + 1;
else
if (x 《 0)
x = 0;
if (vp.top + y + height – 1 》 vp.bottom)
y = vp.bottom-vp.top-height + 1;
else
if (y 《 0)
y = 0;
}
free( Saucer );
Pause();
}
另外,团IDC网上有许多产品团购,便宜有口碑
哪位大神有c语言做的小人的代码,什么小人都可以,什么叮当猫hellokitty
#include 《stdio.h》
int main() {
char* s = {“______________$$$$$$$“,
“_____________$$$$$$$$$“,
“____________$$$$$$$$$$$“,
“____________$$$$$$$$$$$“,
“____________$$$$$$$$$$$“,
“_____________$$$$$$$$$“,
“_____$$$$$$_____$$$$$$$$$$“,
“____$$$$$$$$__$$$$$$_____$$$“,
“___$$$$$$$$$$$$$$$$_________$“,
“___$$$$$$$$$$$$$$$$______$__$“,
“___$$$$$$$$$$$$$$$$_____$$$_$“,
“___$$$$$$$$$$$__________$$$_$_____$$“,
“____$$$$$$$$$____________$$_$$$$_$$$$“,
“______$$$__$$__$$$______________$$$$“,
“___________$$____$_______________$“,
“____________$$____$______________$“,
“_____________$$___$$$__________$$“,
“_______________$$$_$$$$$$_$$$$$“,
“________________$$____$$_$$$$$“,
“_______________$$$$$___$$$$$$$$$$“,
“_______________$$$$$$$$$$$$$$$$$$$$“,
“_______________$$_$$$$$$$$$$$$$$__$$“,
“_______________$$__$$$$$$$$$$$___$_$“,
“______________$$$__$___$$$______$$$$“,
“______________$$$_$__________$$_$$$$“,
“______________$$$$$_________$$$$_$_$“,
“_______________$$$$__________$$$__$$“,
“_____$$$$_________$________________$“,
“___$$$___$$______$$$_____________$$“,
“__$___$$__$$_____$__$$$_____$$__$$“,
“_$$____$___$_______$$$$$$$$$$$$$“,
“_$_____$____$_____$$$$$$__$$$$$$$$“};
int LENGTH = 32;
int i = 0;
for (i = 0; i 《 LENGTH; i++) {
printf(“%s\n“, s[i]);
}
}
C语言小题,这个图片里面的小人是输出,怎么用C语言让这个小人从右往左移动呢
其实就是输出4行数据。
前面有若干个空格。所以要想让它移动的话,执行两步
清屏
重新输出4行数据,每行前面空格减少一位。
这样就向左移动了一位了。
循环执行 就是不停向左,类似的 还可以上下右移动。
用C语言制作动画
flash制作动画:
打开Flash,点击【文件】→【新建】,在打开的“新建”窗口中选择“Flash文件(ActiveScript 3.0)“,然后点击”确定“创建空白文档。
点击【插入】→【新建元件】,在打开的”新建元件“窗口中,将名称设置为”运动的小人“,勾选”影片剪辑“,然后点击”确定“按钮。
点击【文件】→【导入】→【导入到库】,然后在打开的”导入到库“窗口中,选择事先准备好的小人走动姿势图片,全部选择并点击”打开“按钮,导入到库。
把库中的“Result0”拖动到场景中。
点击“时间轴”上的“新建图层”按钮,创建图层2,然后在图层2的第5帧处,点击【插入】→【关键帧】,把库中的“Result1”拖动到场景中。
利用同样的原理,将”Result2“、 ”Result3“和”Result4“分别到图层3、图层4和图层5中,对应的帧分别为10、15和20处。
最后调整各个图层图像的延续时间。至此,运动的小人影片剪辑制作完成。
切换至主场景中,使主场景处于活动状态,点击”属性“面板中的”大小“按钮,将场景的大小设置为”800*300“,同时将背景色设置为”黑色“点击”确定“按钮。
从库中将”运动的小人“影片剪辑拖动到场景左边外边。
然后在”时间轴“第30帧处,点击【插入】→【时间轴】→【关键帧】,在30帧处插入关键帧,然后将小人从场景的左侧外面拖动到场景右侧外面。至此,整个动画设置完成。
在1到30帧之间鼠标右击,选择”创建补间动画“。
最后按下键盘组合键”CTRL+Enter“进行测试。如果感觉小人运动不规律,可适当将1至30帧的距离调整的稍微大一些,直到满意为止。
c语言奔跑的小人,是从左往右走的 现在要它从右面往左走,怎么修改 #include
<stdio.</stdio.
把初始值a = 20; while循环改成a 》= 0 最后的a ++ 改成a –就好了
#include《stdio.h》
#include《stdlib.h》
#include《unistd.h》
int main() {
int a,b; a=20;//———————
while (a 》= 0) { //————————-
system(“clear“);
b=1;
while (b《=a) {
printf(“ “);
b++;
}
printf(“ O\n“);
b=1;
while (b《=a) {
printf(“ “);
b++;
}
printf(“《H》\n“);
b=1;
while (b《=a) {
printf(“ “);
b++;
}
printf(“I I\n“);
sleep(1);
a–; //————————————–
}
}