Advertisement
Guest User

Untitled

a guest
May 27th, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.98 KB | None | 0 0
  1. int pipeQuant = 10;
  2. int [] pipeHeight = new int [pipeQuant];
  3. int scale = 400;
  4. int pipeDist = 200;
  5. int mult = scale/400;
  6. for(int i = 0; i < pipeQuant; i++){
  7. pipeHeight[i] = random(20*mult,300*mult);
  8. }
  9. int starNum = 50;
  10. int[] starX = new int[starNum];
  11. int[] starY = new int[starNum];
  12. int[] starPX = new int[starNum];
  13. int[] starPY = new int[starNum];
  14. for(int i = 0; i < starNum; i++){
  15. starX[i] = 1;
  16. starY[i] = 1;
  17. starPX[i] = random(400*mult);
  18. starPY[i] = random(400*mult);
  19. }
  20. int bx; //boxrotateX
  21. int by; //boxrotateX
  22. int bz; //boxrotateX
  23. int j; //speed
  24. int x; //birdX
  25. int y; //birdY
  26. int m; //gravity
  27. int t; //invTimer
  28. int c; //powerupColunmn
  29. int r; //cameraPan
  30. int q; //nextLevelTimer
  31. int level = 1;
  32. int jMult = 3; //speedModifier
  33. int score = 0;
  34. boolean play = false;
  35. boolean invincible = false;
  36. boolean end = false;
  37. boolean rotated = false;
  38. boolean start = true;
  39. boolean mode;
  40. void setup(){
  41. size(scale,scale,P3D);
  42. background(0,120,200);
  43. j = 0;
  44. x = width/4;
  45. y = 0;
  46. m = 0;
  47. c = round(random(pipeQuant-1));
  48. }
  49.  
  50. void inv(c){ //invincible powerup box
  51. translate(j+pipeDist*c*mult,-0.5*pipeHeight[c]*mult-50*mult);
  52. rotateX(radians(1+bx));
  53. rotateY(radians(1+by));
  54. rotateZ(radians(1+bz));
  55. fill(random(100,255),random(100,255),random(100,255));
  56. lights();
  57. if (invincible == false) {
  58. box(20*mult);
  59. }
  60. noLights();
  61. rotateX(radians(-1-bx));
  62. rotateY(radians(-1-by));
  63. rotateZ(radians(-1-bz));
  64. translate(-(j+pipeDist*mult),0.5*pipeHeight[c]*mult+50*mult);
  65.  
  66. //invincible box collision
  67. if ((-y-155*mult >= -0.5*pipeHeight[c]-60*mult) &&
  68. (-y-155*mult <= -0.5*pipeHeight[c]-50*mult) &&
  69. (x-380*mult >= j+(pipeDist*c-30)*mult) &&
  70. (x-380*mult <= j+(pipeDist*c+30)*mult)) {
  71. invincible = true;
  72. t=100;
  73. jMult = 10;
  74. }
  75.  
  76. bx++;
  77. by++;
  78. bz++; //Animation
  79. }
  80.  
  81. void mousePressed(){
  82. y=y+20*mult;
  83. m=-150*mult;
  84. if (play == false) {
  85. j = 0+jAdd;
  86. m = 0;
  87. q = 0;
  88. r = 0;
  89. t = 0;
  90. invProb = round(random(level/2));
  91. if (start == false) {
  92. if(mouseX<60*mult && mouseY<60*mult){
  93. background(0,120,200);
  94. start = true;
  95. }
  96. else{
  97. play = true;
  98. for(int i = 0; i<pipeQuant;i++){
  99. pipeHeight[i] = random(20*mult,300*mult);
  100. }
  101. invincible = false;
  102. c = round(random(pipeQuant-1));
  103. if (rotated != true) {
  104. x = width/4;
  105. y = 0;
  106. score = 0;
  107. pipeQuant = 10;
  108. pipeDist = 200;
  109. jAdd = 0;
  110. }
  111. rotated = false;
  112. }
  113. }
  114. else{
  115. if (mouseX<width/2){
  116. mode = true;
  117. }
  118. else{
  119. mode = false;
  120. }
  121. play = true;
  122. start = false;
  123. }
  124. }
  125. }
  126.  
  127. void draw(){
  128. if (play == true) {
  129. directionalLight(255, 255, 255, -0.5,1, 1);
  130. directionalLight(220, 120, 120, -0.5,1, -1);
  131. translate(width/2,height/2);
  132. rotateY(radians(30));
  133. if(mode == false){
  134. background(0,120,200);
  135. if(j<-pipeDist*mult*pipeQuant){
  136. rotateY(radians(1+r));
  137. if((r<59) && (rotated == false)){
  138. r++;
  139. } else {
  140. rotated = true;
  141. j=j-4;
  142. q++;
  143. if ((r>=0) && (q>120)) {
  144. r--;
  145. }
  146. if (q == 181) {
  147. level += 1;
  148. pipeQuant += 2;
  149. pipeDist = 0.8*pipeDist
  150. }
  151. if (q > 181) {
  152. jAdd = 240*mult;
  153. play = false;
  154. }
  155. }
  156. }
  157.  
  158. fill(50,250,50);
  159. translate(0,300*mult-height/2);
  160. box(10000*mult,1*mult,10000*mult); //ground
  161. translate(-width/2,-300*mult);
  162. }
  163. else{
  164. background(0);
  165. stroke(255);
  166. if(frameCount%10==0){
  167. pipeQuant++;
  168. pipeHeight = append(pipeHeight,random(20*mult,300*mult));
  169. }
  170. translate(-width/2,-150*mult);
  171. for(int i = 0; i < starNum; i++){
  172. translate(0,-50*mult,-20*mult);
  173. ellipse(starPX[i]*mult,starPY[i]*mult,starX[i]*mult,starY[i]*mult);
  174. translate(0,50*mult,20*mult);
  175. }
  176. }
  177. bird(x,y);
  178.  
  179. y = y-((0.98*m)/30); //dynamic gravity
  180. if(mode == false && y <= -134*mult){ //bounce
  181. if(m > 100*mult){
  182. y=y+5*mult;
  183. }
  184. else{
  185. y++;
  186. }
  187. m=-0.5*m*mult;
  188. }
  189.  
  190. translate(width,300*mult);
  191.  
  192. for(int k = 0;k<pipeQuant;k++){
  193. if(mode == false){
  194. fill(50,250,50);
  195. if(k == round(pipeQuant/4) || k == round(pipeQuant/2) || k == round((pipeQuant/4)*3)){ //pipe colour
  196. fill(250,50,50);
  197. }
  198. else if (k == pipeQuant-1) {
  199. fill(255);
  200. }
  201. }
  202. else{
  203. fill(5*score,255-5*score,100);
  204. }
  205. translate(j+pipeDist*k*mult,300*mult);
  206. box(-40*mult,-600*mult-pipeHeight[k],-40*mult); //lower pipes
  207. translate(0,-1000*mult);
  208. box(-40*mult,1200*mult-pipeHeight[k],-40*mult); //upper pipes
  209. translate(-j-pipeDist*k*mult,700*mult);
  210.  
  211. if (x-380*mult > j+pipeDist*k*mult) {
  212. score = k+1; //Score
  213. }
  214.  
  215. if (((-y-155*mult >= -0.5*pipeHeight[k]-10*mult) || (-y-155*mult+(700*mult) <= -0.5*pipeHeight[k]+600*mult )) &&
  216. (x-380*mult >= j+(pipeDist*k-30)*mult) &&
  217. (x-380*mult <= j+(pipeDist*k+30)*mult)) {
  218. if(invincible == false){
  219. // play = false; //Collision
  220. }
  221. }
  222. }
  223.  
  224. j=j-jMult*mult; //background movement
  225. m=m+10*mult; //gravity acceleration
  226.  
  227. if(mode == false){
  228. pushMatrix();
  229. textAlign(CENTER);
  230. fill(255);
  231. translate(j+pipeDist*pipeQuant*mult+500*mult,-120*mult,0);
  232. rotateY(radians(-90));
  233. text('Level '+String(level),0,0);
  234. translate(0,20*mult,0);
  235. text('Complete!',0,0);
  236. textAlign(LEFT);
  237. popMatrix();
  238. }
  239.  
  240. textSize(15*mult);
  241. rotateY(radians(-30));
  242. fill(255);
  243. if(mode == true){
  244. fill(255);
  245. text('Score: ' + score, -265*mult, -60*mult, 282*mult);
  246. }
  247. else{
  248. fill(0);
  249. text('Level: ' + String(level), -265*mult, -10*mult, 282*mult);
  250. }
  251. rotateY(radians(30));
  252.  
  253. inv(c);
  254.  
  255. t--; // powerupTimer
  256. if(t==0){
  257. invincible = false;
  258. jMult = 3;
  259. }
  260. else if (t<50){
  261. jMult = 3;
  262. }
  263. } else { //gameover
  264. fill(255);
  265. if (q < 161) {
  266. fill(0);
  267. rect(80*mult,130*mult,240*mult,45*mult);
  268. rect(40*mult,180*mult,320*mult,45*mult);
  269. if(start == false){
  270. rect(20*mult,20*mult,40*mult,40*mult);
  271. fill(255);
  272. textSize(15*mult);
  273. text("REKT",x,-y+150*mult);
  274. textSize(40*mult);
  275. text("Game Over!", 100*mult, 150*mult,20*mult);
  276. text("Click to try again", 60*mult, 200*mult,20*mult);
  277. text("<",36*mult,39*mult,20*mult);
  278. }
  279. else{
  280. fill(255);
  281. textSize(40*mult);
  282. text(" Welcome", 100*mult, 150*mult,20*mult);
  283. text("Infinite | Levels", 60*mult, 200*mult,20*mult);
  284. }
  285. level = 1;
  286. jAdd = 0;
  287. } else if (q >= 181) {
  288. mousePressed();
  289. }
  290. }
  291. }
  292.  
  293. void bird(int x, int y){
  294. fill(255,255,0);
  295. if (invincible == true) {
  296. fill(random(100,255),random(100,255),random(100,255));
  297. lights();
  298. }
  299. translate(20*mult+x,150*mult-y);
  300. noStroke();
  301. sphere(10*mult);
  302. translate(-20*mult-x,-150*mult+y);
  303. stroke(0);
  304. fill(255,100,0);
  305. triangle(28*mult+x,146*mult-y,35*mult+x,151*mult-y,28*mult+x,156*mult-y);
  306. fill(255);
  307. ellipse(20*mult+x,146*mult-y,5*mult,5*mult);
  308. fill(0);
  309. ellipse(20*mult+x,146*mult-y,2*mult,2*mult);
  310. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement