-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsketch.js
152 lines (109 loc) · 3.25 KB
/
sketch.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
var PLAY = 1;
var END = 0;
var gameState = PLAY;
var trex, trex_running, trex_collided;
var ground, invisibleGround, groundImage;
var cloud, cloudsGroup, cloudImage;
var obstaclesGroup, obstacle1, obstacle2, obstacle3, obstacle4, obstacle5, obstacle6;
var score;
function preload(){
trex_running = loadAnimation("trex1.png","trex3.png","trex4.png");
trex_collided = loadAnimation("trex_collided.png");
groundImage = loadImage("ground2.png");
cloudImage = loadImage("cloud.png");
obstacle1 = loadImage("obstacle1.png");
obstacle2 = loadImage("obstacle2.png");
obstacle3 = loadImage("obstacle3.png");
obstacle4 = loadImage("obstacle4.png");
obstacle5 = loadImage("obstacle5.png");
obstacle6 = loadImage("obstacle6.png");
}
function setup() {
createCanvas(600, 200);
trex = createSprite(50,180,20,50);
trex.addAnimation("running", trex_running);
trex.addAnimation("collided" , trex_collided)
trex.scale = 0.5;
ground = createSprite(200,180,400,20);
ground.addImage("ground",groundImage);
ground.x = ground.width /2;
ground.velocityX = -4;
invisibleGround = createSprite(200,190,400,10);
invisibleGround.visible = false;
// create Obstacles and Cloud groups
obstaclesGroup = new Group();
cloudsGroup = new Group();
console.log("Hello" + 5);
score = 0;
}
function draw() {
background(180);
if(gameState === PLAY){
//move the ground
ground.velocityX = -4;
text("Score: "+ score, 500,50);
score = score + Math.round(frameCount/60);
if(keyDown("space")&& trex.y >= 100) {
trex.velocityY = -13;
}
trex.velocityY = trex.velocityY + 0.8
if (ground.x < 0){
ground.x = ground.width/2;
}
}
else if(gameState === END){
//stop the ground
ground.velocityX = 0;
}
trex.collide(invisibleGround);
//spawn the clouds
spawnClouds();
//spawn obstacles on the ground
spawnObstacles();
drawSprites();
}
function spawnObstacles(){
if (frameCount % 60 === 0){
var obstacle = createSprite(400,165,10,40);
obstacle.velocityX = -6;
// //generate random obstacles
var rand = Math.round(random(1,6));
switch(rand) {
case 1: obstacle.addImage(obstacle1);
break;
case 2: obstacle.addImage(obstacle2);
break;
case 3: obstacle.addImage(obstacle3);
break;
case 4: obstacle.addImage(obstacle4);
break;
case 5: obstacle.addImage(obstacle5);
break;
case 6: obstacle.addImage(obstacle6);
break;
default: break;
}
//assign scale and lifetime to the obstacle
obstacle.scale = 0.5;
obstacle.lifetime = 300;
//adding obstacles to the group
obstaclesGroup.add(obstacle);
}
}
function spawnClouds() {
//write code here to spawn the clouds
if (frameCount % 60 === 0) {
cloud = createSprite(600,100,40,10);
cloud.y = Math.round(random(10,60));
cloud.addImage(cloudImage);
cloud.scale = 0.5;
cloud.velocityX = -3;
//assign lifetime to the variable
cloud.lifetime = 134;
//adjust the depth
cloud.depth = trex.depth;
trex.depth = trex.depth + 1;
//adding cloud to the group
cloudsGroup.add(cloud);
}
}