⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bouncedemo.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
字号:
#ifndef lint#ifdef sccsstatic	char sccsid[] = "@(#)bouncedemo.c 1.1 92/07/30";#endif#endif/* * Sun Microsystems, Inc. *//* * 	Overview:	Bouncing ball demo in window */#include <sys/types.h>#include <pixrect/pixrect.h>#include <sunwindow/rect.h>#include <sunwindow/rectlist.h>#include <sunwindow/pixwin.h>#include <suntool/gfxsw.h>#ifdef STANDALONE#define EXIT(n)		exit(n)#else#define EXIT(n)		return(n)#endifvoid	pw_use_fast_monochrome();/* ARGSUSED */#ifdef STANDALONEmain(argc, argv)#elseint bouncedemo_main(argc, argv)#endif	int argc;	char **argv;{	short	x, y, vx, vy, z, ylastcount, ylast;	short	Xmax, Ymax, size;	struct	rect rect;	struct	gfxsubwindow *gfx = gfxsw_init(0, argv);	if (gfx == (struct gfxsubwindow *)0)		EXIT(1);	pw_use_fast_monochrome(gfx->gfx_pixwin);Restart:	(void)win_getsize(gfx->gfx_windowfd, &rect);	Xmax = rect_right(&rect);	Ymax = rect_bottom(&rect);	if (Xmax < Ymax)		size = Xmax/29+1;	else		size = Ymax/29+1;	x=rect.r_left;	y=rect.r_top;	vx=4;	vy=0;	ylast=0;	ylastcount=0;	(void)pw_writebackground(gfx->gfx_pixwin, 0, 0, rect.r_width, rect.r_height,	    PIX_SRC);	while (gfx->gfx_reps) {		if (gfx->gfx_flags&GFX_DAMAGED)			(void)gfxsw_handlesigwinch(gfx);		if (gfx->gfx_flags&GFX_RESTART) {			gfx->gfx_flags &= ~GFX_RESTART;			goto Restart;		}		if (y==ylast) {			if (ylastcount++ > 5)				goto Reset;		} else {			ylast = y;			ylastcount = 0;		}		(void)pw_writebackground(gfx->gfx_pixwin, x, y, size, size,		    PIX_NOT(PIX_DST));		x=x+vx;		if (x>(Xmax-size)) {			/*			 * Bounce off the right edge			 */			x=2*(Xmax-size)-x;			vx= -vx;		} else if (x<rect.r_left) {			/*			 * bounce off the left edge			 */			x= -x;			vx= -vx;		}		vy=vy+1;		y=y+vy;		if (y>=(Ymax-size)) {			/*			 * bounce off the bottom edge			 */			y=Ymax-size;			if (vy<size)				vy=1-vy;			else				vy=vy / size - vy;			if (vy==0)				goto Reset;		}		for (z=0; z<=1000; z++);		continue;Reset:		if (--gfx->gfx_reps <= 0)			break;		x=rect.r_left;		y=rect.r_top;		vx=4;		vy=0;		ylast=0;		ylastcount=0;	}	(void)gfxsw_done(gfx);		EXIT(0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -