Mercurial > sdl-ios-xcode
annotate XCodeiPhoneOS/Demos/src/accelerometer.c @ 2444:bf7028ffbf07 gsoc2008_iphone
Added comments, updated included header name
author | Holmes Futrell <hfutrell@umail.ucsb.edu> |
---|---|
date | Sat, 16 Aug 2008 00:08:10 +0000 |
parents | ecc18fbfdec3 |
children |
rev | line source |
---|---|
2380
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
1 /* |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
2 * accelerometer.c |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
3 * written by Holmes Futrell |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
4 * use however you want |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
5 */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
6 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
7 #include "SDL.h" |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
8 #include "math.h" |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
9 #include "common.h" |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
10 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
11 #define MILLESECONDS_PER_FRAME 16 /* about 60 frames per second */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
12 #define DAMPING 0.5f; /* after bouncing off a wall, damping coefficient determines final speed */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
13 #define FRICTION 0.0008f /* coefficient of acceleration that opposes direction of motion */ |
2424
ecc18fbfdec3
Added references to SDL_IPHONE_MAX_GFORCE ... that way this value can change without altering the demos behavior. More understandable too.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2380
diff
changeset
|
14 #define GRAVITY_CONSTANT 0.004f /* how sensitive the ship is to the accelerometer */ |
ecc18fbfdec3
Added references to SDL_IPHONE_MAX_GFORCE ... that way this value can change without altering the demos behavior. More understandable too.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2380
diff
changeset
|
15 |
ecc18fbfdec3
Added references to SDL_IPHONE_MAX_GFORCE ... that way this value can change without altering the demos behavior. More understandable too.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2380
diff
changeset
|
16 /* If we aren't on an iPhone, then this definition ought to yield reasonable behavior */ |
ecc18fbfdec3
Added references to SDL_IPHONE_MAX_GFORCE ... that way this value can change without altering the demos behavior. More understandable too.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2380
diff
changeset
|
17 #ifndef SDL_IPHONE_MAX_GFORCE |
ecc18fbfdec3
Added references to SDL_IPHONE_MAX_GFORCE ... that way this value can change without altering the demos behavior. More understandable too.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2380
diff
changeset
|
18 #define SDL_IPHONE_MAX_GFORCE 5.0f |
ecc18fbfdec3
Added references to SDL_IPHONE_MAX_GFORCE ... that way this value can change without altering the demos behavior. More understandable too.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2380
diff
changeset
|
19 #endif |
2380
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
20 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
21 static SDL_Joystick *accelerometer; /* used for controlling the ship */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
22 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
23 static struct { |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
24 float x, y; /* position of ship */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
25 float vx, vy; /* velocity of ship (in pixels per millesecond) */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
26 SDL_Rect rect; /* (drawn) position and size of ship */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
27 } ship; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
28 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
29 static SDL_TextureID shipID=0; /* texture for spaceship */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
30 static SDL_TextureID spaceID=0; /* texture for space (background */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
31 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
32 void render(void) { |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
33 |
2424
ecc18fbfdec3
Added references to SDL_IPHONE_MAX_GFORCE ... that way this value can change without altering the demos behavior. More understandable too.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2380
diff
changeset
|
34 |
2380
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
35 /* get joystick (accelerometer) axis values and normalize them */ |
2424
ecc18fbfdec3
Added references to SDL_IPHONE_MAX_GFORCE ... that way this value can change without altering the demos behavior. More understandable too.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2380
diff
changeset
|
36 float ax = SDL_JoystickGetAxis(accelerometer, 0); |
ecc18fbfdec3
Added references to SDL_IPHONE_MAX_GFORCE ... that way this value can change without altering the demos behavior. More understandable too.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2380
diff
changeset
|
37 float ay = -SDL_JoystickGetAxis(accelerometer, 1); |
2380
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
38 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
39 /* ship screen constraints */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
40 Uint32 minx = 0.0f; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
41 Uint32 maxx = SCREEN_WIDTH - ship.rect.w; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
42 Uint32 miny = 0.0f; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
43 Uint32 maxy = SCREEN_HEIGHT - ship.rect.h; |
2424
ecc18fbfdec3
Added references to SDL_IPHONE_MAX_GFORCE ... that way this value can change without altering the demos behavior. More understandable too.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2380
diff
changeset
|
44 |
ecc18fbfdec3
Added references to SDL_IPHONE_MAX_GFORCE ... that way this value can change without altering the demos behavior. More understandable too.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2380
diff
changeset
|
45 #define SINT16_MAX ((float)(0x7FFF)) |
ecc18fbfdec3
Added references to SDL_IPHONE_MAX_GFORCE ... that way this value can change without altering the demos behavior. More understandable too.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2380
diff
changeset
|
46 |
ecc18fbfdec3
Added references to SDL_IPHONE_MAX_GFORCE ... that way this value can change without altering the demos behavior. More understandable too.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2380
diff
changeset
|
47 /* update velocity from accelerometer |
ecc18fbfdec3
Added references to SDL_IPHONE_MAX_GFORCE ... that way this value can change without altering the demos behavior. More understandable too.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2380
diff
changeset
|
48 the factor SDL_IPHONE_MAX_G_FORCE / SINT16_MAX converts between |
ecc18fbfdec3
Added references to SDL_IPHONE_MAX_GFORCE ... that way this value can change without altering the demos behavior. More understandable too.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2380
diff
changeset
|
49 SDL's units reported from the joytick, and units of g-force, as reported by the accelerometer |
ecc18fbfdec3
Added references to SDL_IPHONE_MAX_GFORCE ... that way this value can change without altering the demos behavior. More understandable too.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2380
diff
changeset
|
50 */ |
ecc18fbfdec3
Added references to SDL_IPHONE_MAX_GFORCE ... that way this value can change without altering the demos behavior. More understandable too.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2380
diff
changeset
|
51 ship.vx += ax * SDL_IPHONE_MAX_GFORCE / SINT16_MAX * GRAVITY_CONSTANT * MILLESECONDS_PER_FRAME; |
ecc18fbfdec3
Added references to SDL_IPHONE_MAX_GFORCE ... that way this value can change without altering the demos behavior. More understandable too.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2380
diff
changeset
|
52 ship.vy += ay * SDL_IPHONE_MAX_GFORCE / SINT16_MAX * GRAVITY_CONSTANT * MILLESECONDS_PER_FRAME; |
2380
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
53 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
54 float speed = sqrt(ship.vx * ship.vx + ship.vy * ship.vy); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
55 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
56 if (speed > 0) { |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
57 /* compensate for friction */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
58 float dirx = ship.vx / speed; /* normalized x velocity */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
59 float diry = ship.vy / speed; /* normalized y velocity */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
60 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
61 /* update velocity due to friction */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
62 if (speed - FRICTION * MILLESECONDS_PER_FRAME > 0) { |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
63 /* apply friction */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
64 ship.vx -= dirx * FRICTION * MILLESECONDS_PER_FRAME; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
65 ship.vy -= diry * FRICTION * MILLESECONDS_PER_FRAME; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
66 } |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
67 else { |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
68 /* applying friction would MORE than stop the ship, so just stop the ship */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
69 ship.vx = 0.0f; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
70 ship.vy = 0.0f; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
71 } |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
72 } |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
73 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
74 /* update ship location */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
75 ship.x += ship.vx * MILLESECONDS_PER_FRAME; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
76 ship.y += ship.vy * MILLESECONDS_PER_FRAME; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
77 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
78 if (ship.x > maxx) { |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
79 ship.x = maxx; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
80 ship.vx = -ship.vx * DAMPING; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
81 } |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
82 else if (ship.x < minx) { |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
83 ship.x = minx; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
84 ship.vx = -ship.vx * DAMPING; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
85 } |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
86 if (ship.y > maxy) { |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
87 ship.y = maxy; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
88 ship.vy = -ship.vy * DAMPING; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
89 } |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
90 else if (ship.y < miny) { |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
91 ship.y = miny; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
92 ship.vy = -ship.vy * DAMPING; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
93 } |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
94 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
95 /* draw the background */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
96 SDL_RenderCopy(spaceID, NULL, NULL); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
97 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
98 /* draw the ship */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
99 ship.rect.x = ship.x; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
100 ship.rect.y = ship.y; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
101 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
102 SDL_RenderCopy(shipID, NULL, &ship.rect); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
103 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
104 /* update screen */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
105 SDL_RenderPresent(); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
106 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
107 } |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
108 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
109 void initializeTextures() { |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
110 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
111 SDL_Surface *bmp_surface; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
112 SDL_Surface *bmp_surface_rgba; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
113 int format = SDL_PIXELFORMAT_ABGR8888; /* desired texture format */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
114 Uint32 Rmask, Gmask, Bmask, Amask; /* masks for desired format */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
115 int bpp; /* bits per pixel for desired format */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
116 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
117 /* load the ship */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
118 bmp_surface = SDL_LoadBMP("ship.bmp"); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
119 if (bmp_surface == NULL) { |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
120 fatalError("could not ship.bmp"); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
121 } |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
122 /* set blue to transparent on the ship */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
123 SDL_SetColorKey(bmp_surface, 1, SDL_MapRGB(bmp_surface->format, 0, 0, 255)); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
124 SDL_PixelFormatEnumToMasks(format, &bpp, &Rmask, &Gmask, &Bmask, &Amask); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
125 /* |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
126 create a new RGBA surface and blit the bmp to it |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
127 this is an extra step, but it seems to be necessary for the color key to work |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
128 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
129 does the fact that this is necessary indicate a bug in SDL? |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
130 */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
131 bmp_surface_rgba = SDL_CreateRGBSurface(0, bmp_surface->w, bmp_surface->h, bpp, Rmask, Gmask, Bmask, Amask); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
132 SDL_BlitSurface(bmp_surface, NULL, bmp_surface_rgba, NULL); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
133 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
134 /* create ship texture from surface */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
135 shipID = SDL_CreateTextureFromSurface(format, bmp_surface_rgba); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
136 if (shipID == 0) { |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
137 fatalError("could not create ship texture"); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
138 } |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
139 SDL_SetTextureBlendMode(shipID, SDL_TEXTUREBLENDMODE_BLEND); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
140 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
141 /* set the width and height of the ship from the surface dimensions */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
142 ship.rect.w = bmp_surface->w; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
143 ship.rect.h = bmp_surface->h; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
144 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
145 SDL_FreeSurface(bmp_surface_rgba); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
146 SDL_FreeSurface(bmp_surface); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
147 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
148 /* load the space background */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
149 bmp_surface = SDL_LoadBMP("space.bmp"); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
150 if (bmp_surface == NULL) { |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
151 fatalError("could not load space.bmp"); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
152 } |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
153 /* create space texture from surface */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
154 spaceID = SDL_CreateTextureFromSurface(format, bmp_surface); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
155 if (spaceID == 0) { |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
156 fatalError("could not create space texture"); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
157 } |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
158 SDL_FreeSurface(bmp_surface); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
159 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
160 } |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
161 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
162 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
163 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
164 int main(int argc, char *argv[]) { |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
165 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
166 SDL_WindowID windowID; /* ID of main window */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
167 Uint32 startFrame; /* time frame began to process */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
168 Uint32 endFrame; /* time frame ended processing */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
169 Uint32 delay; /* time to pause waiting to draw next frame */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
170 int done; /* should we clean up and exit? */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
171 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
172 /* initialize SDL */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
173 if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_JOYSTICK) < 0) { |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
174 fatalError("Could not initialize SDL"); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
175 } |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
176 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
177 /* create main window and renderer */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
178 windowID = SDL_CreateWindow(NULL, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT,\ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
179 SDL_WINDOW_OPENGL|SDL_WINDOW_SHOWN|SDL_WINDOW_BORDERLESS); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
180 SDL_CreateRenderer(windowID, 0, 0); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
181 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
182 /* print out some info about joysticks and try to open accelerometer for use */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
183 printf("There are %d joysticks available\n", SDL_NumJoysticks()); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
184 printf("Default joystick (index 0) is %s\n", SDL_JoystickName(0)); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
185 accelerometer = SDL_JoystickOpen(0); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
186 if (accelerometer == NULL) { |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
187 fatalError("Could not open joystick (accelerometer)"); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
188 } |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
189 printf("joystick number of axis = %d\n", SDL_JoystickNumAxes(accelerometer)); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
190 printf("joystick number of hats = %d\n", SDL_JoystickNumHats(accelerometer)); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
191 printf("joystick number of balls = %d\n", SDL_JoystickNumBalls(accelerometer)); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
192 printf("joystick number of buttons = %d\n", SDL_JoystickNumButtons(accelerometer)); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
193 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
194 /* load graphics */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
195 initializeTextures(); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
196 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
197 /* setup ship */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
198 ship.x = (SCREEN_WIDTH - ship.rect.w) / 2; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
199 ship.y = (SCREEN_HEIGHT - ship.rect.h) / 2; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
200 ship.vx = 0.0f; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
201 ship.vy = 0.0f; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
202 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
203 done = 0; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
204 /* enter main loop */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
205 while(!done) { |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
206 startFrame = SDL_GetTicks(); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
207 SDL_Event event; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
208 while (SDL_PollEvent(&event)) { |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
209 if (event.type == SDL_QUIT) { |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
210 done = 1; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
211 } |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
212 } |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
213 render(); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
214 endFrame = SDL_GetTicks(); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
215 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
216 /* figure out how much time we have left, and then sleep */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
217 delay = MILLESECONDS_PER_FRAME - (endFrame - startFrame); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
218 if (delay < 0) { |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
219 delay = 0; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
220 } else if (delay > MILLESECONDS_PER_FRAME) { |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
221 delay = MILLESECONDS_PER_FRAME; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
222 } |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
223 SDL_Delay(delay); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
224 } |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
225 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
226 /* delete textures */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
227 SDL_DestroyTexture(shipID); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
228 SDL_DestroyTexture(spaceID); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
229 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
230 /* shutdown SDL */ |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
231 SDL_Quit(); |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
232 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
233 return 0; |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
234 |
7fbcfc1574dc
Demo of iPhone accelerometer as SDL joystick
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
235 } |