home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
594b.lha
/
VectorLibrary
/
Cprg
/
vd_cube.c
< prev
next >
Wrap
C/C++ Source or Header
|
1991-11-09
|
3KB
|
131 lines
/*************************************/
/* */
/* Demo for vector.library V1.6x */
/* */
/* Programming by Jürgen Koch */
/* */
/* in Sep-1991 */
/* */
/*************************************/
#include <stdio.h>
#include <exec/types.h>
#include <intuition/intuition.h>
#define BOB_NUM 1 /* Anzahl der verwendeten VBOBs (muß mind. 1 betragen) */
#include <vector.h>
struct VecBase *VecBase;
struct NewVScreen MyVScreen=
{
0,0, /* Linke obere Ecke des Screen */
320,256, /* Breite und Höhe */
3, /* Tiefe */
0,0, /* Screentitel- und -randfarben */
0, /* Screenmode */
NULL, /* Zeiger auf Font des Screens; hier Standard-Font */
"vector.library ©1991 by A.Lippert",
0, /* Flags (bisher ungenutzt) */
0,0, /* Offset des Vektorfensters im Screen (bisher nicht unterstützt) */
320,256, /* Breite und Höhe des Vektorfensters (muß bisher identisch sein mit Breite und Höhe des Screens) */
3 /* von Vektoranimation wirklich genutzte Bitplanes */
};
struct Joy MyJoy=
{
50,-1000,-16000,
3,3,3
};
WORD ObjectPoints[]= /* Punkt-Tabelle */
{
8,
-200,-200, 200,0,
-200, 200, 200,0,
200, 200, 200,0,
200,-200, 200,0,
-200,-200,-200,0,
-200, 200,-200,0,
200, 200,-200,0,
200,-200,-200,0
};
WORD ObjectAreas[]= /* Flächen-Tabelle */
{
6,
4,1,0*4,1*4,2*4,3*4,0*4,0,0,0,0,
4,2,3*4,2*4,6*4,7*4,3*4,0,0,0,0,
4,3,7*4,6*4,5*4,4*4,7*4,0,0,0,0,
4,4,0*4,4*4,5*4,1*4,0*4,0,0,0,0,
4,5,1*4,5*4,6*4,2*4,1*4,0,0,0,0,
4,6,0*4,3*4,7*4,4*4,0*4,0,0,0,0
};
WORD ObjectMove[]=
{
300, 0,0, 42, 1,1,1, /* Positionierung und Animationspfad */
300, 0,0, 0, 1,1,1,
300, 0,0,-42, 1,1,1,
END_1
};
struct Object MyObject=
{
ObjectPoints, /* Zeiger auf zugehörige Punkttabelle */
ObjectAreas, /* Zeiger auf zugehörige Flächentabelle */
ObjectMove, /* Zeiger auf zugehörige Bewegungstabelle */
0, /* Flags */
0,0,-14300, /* Start-Position */
0,0,0 /* Start-Rotation */
};
WORD MyColTab[]= /* Farbtabelle */
{
0, 0, 0, 0, /* Register, Rot,Grün,Blau */
1, 12,12,12,
2, 11,11,11,
3, 10,10,10,
4, 9, 9, 9,
5, 8, 8, 8,
6, 7, 7, 7,
7, 6, 6, 6,
-1
};
ULONG MyWorld[] = { /* Welt-Struktur */
0x00000001L, /* erstes (High-)Wort: Flags ( = 1 für Drahtgitter); zweites Wort: Anzahl der Objekte */
&MyObject /* Zeiger auf Struktur des ersten Objekts */
};
struct ViewStruct *ViewStruct;
main()
{
if ((VecBase=(struct VecBase *)OpenLibrary("vector.library",0))==NULL) /* "vector.library" öffnen */
{
printf("Unable to open 'vector.library'.\n");
exit(0);
}
if ((ViewStruct=OpenVScreen(&MyVScreen))==NULL) /* "Animationsscreen" öffnen */
{
printf("Couldn't open VScreen.\n");
CloseLibrary(VecBase);
exit(0);
}
SetColors(ViewStruct, &MyColTab); /* Farben setzen */
AutoScaleOn(MyVScreen.ViewModes); /* Entzerrung für höhere Auflösung */
DoAnim(&MyWorld); /* Auf zur Animation!! */
CloseVScreen(); /* Bildschirm schließen */
CloseLibrary(VecBase);
}