- int screen = -1; //sets which screen the player is viewing (-2=gameover screen, -1=title screen, 0=main world for player to explore, 1=first battle, 2=second battle, 3=third battle)
- int UIscreen = 1; //determines what is being displayed in the player UI in battles (attacks, text, ect.)
- float maxHealth = 20; //determines how much the health the player can have up to
- float health = 20; //amount of damage player can take before gameover
- float monMaxHealth = 16; //amount of health monster has when at full health
- float monHealth = 16; //amount of damage enemy can take before dying
- float maxMana = 30; //amount of mana player has when at full mana
- float mana = 30; //amount of mana player has to use magic
- float maxExp = 70; //amount of exp required to level up
- float exp = 0; //amount of experience player has (determines when player's level increases)
- int level = 1; //player's level - increases health, damage dealt, level of enemies encountered
- int levelUpTime = 0; //time the display stays on the screen for when character levels up
- boolean doLevelUp = false;
- int monLevel; //enemy's level - increases health, damage, and exp earned
- float spriteX = 60; //player sprite x coordinate
- float spriteY = 200; //player sprite y coordinate
- float monX = 240; //enemy sprite's x coordinate
- float monY = 100; //enemy sprite's y coordinate
- int firstHit; //determines who will attack first
- int attackType = 0; //determines which attack player has selected when choosing attacks (0=sword, 1=fire, 2=lightning, 3=blizzard)
- boolean bliz = false; //determines if player used blizzard attack
- boolean fire = false; //determines if player used fire attack
- boolean light = false; //determines if player used lightning attack
- boolean sword = false; //determines if player used regular attack
- boolean monTackle = false; //determines if enemy used tackle attack
- boolean monFire = false; //determines if enemy1 used fire attack
- boolean monBite = false; //determines if enemy2 used bite attack
- boolean monSting = false; //determines if enemy3 used sting attack
- int winTime = 0; //sets how long player stays on battle screen after defeating enemy
- float time = 0; //used to create a timeline and animation for each attack
- float snowTimeX;
- float snowTimeY;
- int ranNum = 0;
- float playerX = 190; //determines player x coordinate
- float playerY = 100; //determines player y coordinate
- float groundX = 0; //moves ground's x coordinate
- float groundY = 0; //moves ground's y coordinate
- boolean up = false; //moves player up
- boolean right = false; //moves player right
- boolean down = false; //moves player down
- boolean left = false; //moves player left
- boolean dash = false; //determines if player is dashing (holding space)
- float dashSpd = 1.5; //sets increased speed player will move while dashing
- int direction = 0; //sets direction the player is facing
- float speed = 2; //determines how fast player will move
-
-
- void setup() {
- size(400, 400);
- frameRate(100);
- }
-
- void draw() {
-
- //set gameover screen\\
- if (screen == -2) {
- frameRate(30);
- background(0);
-
- fill(255);
- textSize(22);
- text("GAMEOVER", 140, 200);
-
- textSize(16);
- text("You made it to level "+level, 118, 300);
- }
-
-
- //set title screen\\
- if (screen == -1) {
- background (20);
-
- //draw sprites
- bat(270, 210);
- fireGuy(155, 180);
- spider(40, 210);
- sprite(100, 300);
-
- //draw black rectangle to cover up spider's web
- fill(0);
- rect(40, 0, 100, 157);
-
- //darw text
- fill(255);
- textSize(58);
- text("GARDEN", 80, 75);
- text("MONSTERS", 48, 125);
-
- textSize(14);
- text("CONTROLS: WASD AND [SPACE]", 90, 155);
- text("PRESS ANY KEY TO START", 110, 180);
- }
-
- //set screen 0 (the main screen)\\
- if (screen == 0) {
- background(130, 235, 0);
- //set framerate to highest computer will allow so player doesn't lag when there are too many grass sprites on screen
- frameRate(100);
-
- //draw world
- drawPath();
- drawHouse();
-
- //draw signs and text that appears when player is near a sign
- drawSign(groundX+188, groundY+138);
- if (playerX>groundX+175 && playerX<groundX+250 && playerY<groundY+220 && playerY>groundY+150) {
- fill(0);
- textSize(14);
- text("Beware the monsters in the tall grass", groundX+84, groundY+135);
- text("Hold [SPACE] to dash", groundX+147, groundY+115);
- }
- drawSign(groundX+175, groundY-300);
- if (playerX>groundX+175 && playerX<groundX+250 && playerY<groundY-218 && playerY>groundY-288) {
- fill(0);
- textSize(14);
- text("Sorry, this rode is blocked", groundX+112, groundY-299);
- }
- drawRock(groundX+72, groundY-315);
- drawRock(groundX+125, groundY-298);
- drawRock(groundX-150, groundY-100);
- drawRock(groundX, groundY+550);
- drawRock(groundX-200, groundY-50);
- drawRock(groundX+500, groundY+150);
-
- //draw grass in loops\\
- //top right corner
- for (int y = -200; y <= -150; y=y+50) {
- for (int x = -200; x <= 0; x=x+50) {
- drawGrass(groundX+x, groundY+y);
- }
- }
- for (int y = -100; y <= 50; y=y+50) {
- for (int x = -100; x <= 0; x=x+50) {
- drawGrass(groundX+x, groundY+y);
- }
- }
- for (int y = 50; y <= 350; y=y+50) {
- for (int x = -250; x <= 0; x=x+50) {
- drawGrass(groundX+x, groundY+y);
- }
- }
-
- //bottom left corner
- for (int y = 600; y <= 650; y=y+50) {
- for (int x = -300; x <= -50; x=x+50) {
- drawGrass(groundX+x, groundY+y);
- }
- }
- for (int x = 0; x <= 100; x=x+50) {
- drawGrass(groundX+x, groundY+650);
- }
-
- //right side
- for (int y = 50; y <= 550; y=y+50) {
- for (int x = 550; x <= 650; x=x+50) {
- drawGrass(groundX+x, groundY+y);
- }
- }
- for (int y = 200; y <= 300; y=y+50) {
- for (int x = 350; x <= 500; x=x+50) {
- drawGrass(groundX+x, groundY+y);
- }
- }
- for (int y = 350; y <= 450; y=y+50) {
- for (int x = 250; x <= 500; x=x+50) {
- drawGrass(groundX+x, groundY+y);
- }
- }
-
- drawGuard(groundX-300);
-
- //set player controls
- drawPlayer();
- wasdMove();
- scroll();
-
- //draw trees (they must overlap player)
- drawTree(groundX+425, groundY-50);
- drawTree(groundX+475, groundY);
-
-
- //draw trees along sides of screen
- float treeX = groundX-350; //set x and y coordinates of first tree in loop
- float treeY = groundY-400;
-
- while (treeX<=groundX+700) { //top wall of trees
- if (treeX > groundX+150 || treeX < groundX+50) {
- drawTree(treeX, treeY);
- }
- treeX = treeX+51; //make it so trees are not all beside each other
- treeY = treeY-15;
- if (treeY <= groundY-420) {
- treeY = treeY+25;
- }
- }
- treeX = groundX-350; //set x and y coordinates of first tree in loop
- treeY = groundY-350;
- while (treeY<=groundY+700) { //left wall of trees
- if (treeY > groundY+500 || treeY < groundY+400) {
- drawTree(treeX, treeY);
- }
- treeY = treeY+71; //make it so trees are not all beside each other
- treeX = treeX-15;
- if (treeX <= groundX-370) {
- treeX = treeX+25;
- }
- }
- treeX = groundX+710; //set x and y coordinates of first tree in loop
- treeY = groundY-350;
- while (treeY<=groundY+755) { //right wall of trees
- drawTree(treeX, treeY);
- treeY = treeY+71; //make it so trees are not all beside each other
- treeX = treeX-15;
- if (treeX <= groundX+695) {
- treeX = treeX+25;
- }
- }
-
- treeX = groundX-350; //set x and y coordinates of first tree in loop
- treeY = groundY+700;
- while (treeX<=groundX+700) { //bottom wall of trees
- drawTree(treeX, treeY);
- treeX = treeX+51; //make it so trees are not all beside each other
- treeY = treeY-15;
- if (treeY <= groundY+680) {
- treeY = treeY+25;
- }
- }
- }
-
- if (screen==1) { //set the screen for the fire monster encounter
- setBackground();
- frameRate(30); //set framerate to 30 so timers can work with it (variables will increase 30 times/second)
- constrainVariables();
- sprite(spriteX, spriteY);
- fireGuy(monX, monY);
- enemyUI();
- playerUI();
- displayAttacks();
- startAttack();
- winFight();
- }
- if (screen==2) { //set the screen for the spider monster encounter
- setBackground();
- frameRate(30); //set framerate to 30 so timers can work with it (variables will increase 30 times/second)
- constrainVariables();
- sprite(spriteX, spriteY);
- spider(monX, monY);
- enemyUI();
- playerUI();
- displayAttacks();
- startAttack();
- winFight();
- }
- if (screen==3) { //set the screen for the bat monster encounter
- setBackground();
- frameRate(30); //set framerate to 30 so timers can work with it (variables will increase 30 times/second)
- constrainVariables();
- sprite(spriteX, spriteY);
- bat(monX, monY);
- enemyUI();
- playerUI();
- displayAttacks();
- startAttack();
- winFight();
- }
-
- levelUp();
- levelUpAnim();
-
- if(health == 0){
- screen = -2;
- }
- }
-
-
- void keyPressed() {
- if (screen == -2) {
- screen=-1;
- }
- if (screen == -1) {
- exp = 0;
- maxExp = 70;
- level=1;
- playerX = 190;
- playerY = 100;
- groundX = 0;
- groundY = 0;
- direction = 0;
- maxHealth = 16;
- health = maxHealth;
- maxMana = 30;
- mana = maxMana;
- screen = 0;
- }
- if (screen == 0) {
- wasdPress();
- }
- if (screen>=1) {
- selectAttack();
- }
- }
-
- void keyReleased() {
- if (screen == 0) {
- wasdRelease();
- }
- }
-
-
- ///**\\\ B A T T L E S ///**\\\
-
- /*/ ECONOMICS SETUP /*/
-
- void constrainVariables() {
- if (monHealth < 0) { //set minimum monster health to 0
- monHealth = 0;
- }
- if (monHealth > monMaxHealth) { //prevent monster from healing past max health
- monHealth = monMaxHealth;
- }
-
- if (health < 0) { //set minimum player health to 0
- health = 0;
- }
- if (health > maxHealth) { //prevent player from healing past max health
- health = maxHealth;
- }
-
- if (mana < 0) { //set minimum player mana to 0
- mana = 0;
- }
- if (mana > maxMana) { //prevent player from regenerating past max mana
- mana = maxMana;
- }
- if (monLevel < 1) { //prevent monsters with a level 0 or below appear
- monLevel = 1;
- }
- }
-
-
-
-
-
- //set stats each monster will have and other initial codes before the battle starts\\
- void startBattle() {
-
- firstHit = int(random(1, 3));
- attackType = 0;
- monLevel = int(random(-4, 2))+level;
- monMaxHealth = int(random(14, 17))+level*2;
- monHealth = monMaxHealth;
- UIscreen=1;
- sword=false;
- fire=false;
- light=false;
- bliz=false;
- resetMonAttack();
- }
-
-
-
-
- void levelUp() { //set the output for when you reach max experience
- if (exp >= maxExp) {
- exp = exp-maxExp; //reset exp
- maxExp = maxExp +level*level/2 + 15; //increase the max exp according to the players level
- level++; //increase the player's level by one
- doLevelUp = true; //activate level up animation function (levelUpAnim)
- levelUpTime = 0; //reset timer for animation
- health = health + int(level*4); //heal player by a little bit
- maxHealth = maxHealth + 2+int(level/2); //increase player's max health
- mana = mana + 5+int(level*5); //regenerate some mana
- maxMana = maxMana + 4+int(level); //increase players max mana
- }
- }
-
-
-
-
-
- void levelUpAnim() { //set the animation for when the player levels up
-
- if (doLevelUp) {
-
- levelUpTime++; //start and run the timer
- noStroke();
- fill(0, 100, 255, 150-levelUpTime*1.2); //draw animation with a lowering opacity
- ellipse(width/2, height/2, width, height);
- ellipse(width/2, height/2, width*2/3, height*2/3);
- stroke(0);
- fill(200, 200, 200, 255-levelUpTime*1.4); //draw text with animation
- textSize(50);
- text("LEVEL", 130, 175);
- text(level, 180, 225);
- if (level==3) { //tell player they unlocked fire spell at level 3
- textSize(20);
- text("You learned",139,260);
- text("FIRE SPELL!",144,285);
- }
- if (level==6) { //tell player they unlocked lightning spell at level 6
- textSize(18);
- text("You learned",144,260);
- text("LIGHTNING SPELL!",119,285);
- }
- if (level==9) { //tell player they unlocked blizzard spell at level 9
- textSize(18);
- text("You learned",144,260);
- text("BLIZZARD SPELL!",127,285);
- }
- frameRate(100);
- if (levelUpTime > 3000) { //stop if statement from running infinitely
- doLevelUp = false;
- }
- }
- }
-
-
-
-
-
-
- /*/ UI SETUP /*/
-
- //display enemy stats
- void enemyUI () {
- fill(245);
- rect(40, 110, 140, 40); //draw white box
-
- if (screen == 1) { //if you are fighting the fire guy, type the name as "FIRE GUY"
- fill(0);
- textSize(14);
- text("FIRE GUY", 50, 125);
- }
- if (screen == 2) { //if you are fighting the spider, type the name as "SPIDER"
- fill(0);
- textSize(14);
- text("SPIDER", 50, 125);
- }
- if (screen == 3) { //if you are fighting the bat, type the name as "BAT"
- fill(0);
- textSize(14);
- text("BAT", 50, 125);
- }
-
- text("LV: "+monLevel, 130, 125);//display level beside enemy's name
-
- textSize(13);
- text("HP", 157, 142); //display "HP" beside health bar
-
- fill(120, 0, 0);
- rect(50, 132, 100, 10); //display max health bar behind health bar to show how much health was depleted
-
- fill(200, 0, 0);
- rect(50, 132, 100*(monHealth/monMaxHealth), 10);
- }
-
-
-
-
-
- //set player UI
- void playerUI() {
- fill(245); //draw large rectangle where attacks and stats will be displayed
- rect(0, 300, width, 100);
-
- textSize(14);
- fill(0); //display label and values for level, health, mana, and experience
- text("LEVEL: "+level, 190, 320);
- text("HP:"+int(health)+"/"+int(maxHealth), 190, 343);
- text("MP:"+int(mana)+"/"+int(maxMana), 190, 367);
- text("EXP:"+int(exp)+"/"+int(maxExp), 190, 390);
-
- fill(120, 0, 0); //draw empty health bar to show amount of health depleted
- rect(290, 333, 100, 10);
-
- fill(200, 0, 0);
- rect(290, 333, 100*(health/maxHealth), 10); //draw health bar to show how much health player has left - will deplete when player loses health
-
- fill(0, 0, 120); //draw empty mana bar to show amount of mana depleted
- rect(290, 357, 100, 10);
-
- fill(0, 0, 200);
- rect(290, 357, 100*(mana/maxMana), 10); //draw mana bar to show how much mana player has left - will deplete when player loses mana
-
- fill(120, 120, 0); //draw empty exp bar to show amount of exp depleted
- rect(290, 380, 100, 10);
-
- fill(200, 200, 0);
- rect(290, 380, 100*(exp/maxExp), 10); //draw exp bar to show how much exp player has left - will deplete when player loses exp
- }
-
-
-
-
-
- //draw attack selections\\
- void displayAttacks() {
- if (UIscreen == 1) {
-
- if (attackType==0) {
-
- //display text with the sword attack highlighted
- fill(0, 100, 255);
- triangle(10, 310, 10, 320, 20, 315);
- fill(0, 10, 165);
- text("SWORD 0MP", 30, 320);
-
- if (level>=3) {
- fill(245);
- triangle(10, 333, 10, 343, 20, 338);
- fill(0);
- text("FIRE 15MP", 30, 343);
-
- if (level>=6) {
- fill(245);
- triangle(10, 357, 10, 367, 20, 362);
- fill(0);
- text("LIGHTNING 19MP", 30, 367);
-
- if (level>=9) {
- fill(245);
- triangle(10, 380, 10, 390, 20, 385);
- fill(0);
- text("BLIZZARD 23MP", 30, 390);
- }
- }
- }
- }
- if (attackType==1) {
-
- //display text with the fire attack highlighted
- fill(245);
- triangle(10, 310, 10, 320, 20, 315);
- fill(0);
- text("SWORD 0MP", 30, 320);
-
- fill(0, 100, 255);
- triangle(10, 333, 10, 343, 20, 338);
- fill(0, 10, 165);
- text("FIRE 15MP", 30, 343);
-
- if (level>=6) {
- fill(245);
- triangle(10, 357, 10, 367, 20, 362);
- fill(0);
- text("LIGHTNING 19MP", 30, 367);
-
- if (level>=9) {
- fill(245);
- triangle(10, 380, 10, 390, 20, 385);
- fill(0);
- text("BLIZZARD 23MP", 30, 390);
- }
- }
- }
-
- if (attackType==2) {
-
- //display text with the lightning attack highlighted
- fill(245);
- triangle(10, 310, 10, 320, 20, 315);
- fill(0);
- text("SWORD 0MP", 30, 320);
-
- fill(245);
- triangle(10, 333, 10, 343, 20, 338);
- fill(0);
- text("FIRE 15MP", 30, 343);
-
- fill(0, 100, 255);
- triangle(10, 357, 10, 367, 20, 362);
- fill(0, 10, 165);
- text("LIGHTNING 19MP", 30, 367);
-
- if (level>=9) {
- fill(245);
- triangle(10, 380, 10, 390, 20, 385);
- fill(0);
- text("BLIZZARD 23MP", 30, 390);
- }
- }
- if (attackType==3) {
-
- //display text with the blizzard attack highlighted
- fill(245);
- triangle(10, 310, 10, 320, 20, 315);
- fill(0);
- text("SWORD 0MP", 30, 320);
-
- fill(245);
- triangle(10, 333, 10, 343, 20, 338);
- fill(0);
- text("FIRE 15MP", 30, 343);
-
- fill(245);
- triangle(10, 357, 10, 367, 20, 362);
- fill(0);
- text("LIGHTNING 19MP", 30, 367);
-
- fill(0, 100, 255);
- triangle(10, 380, 10, 390, 20, 385);
- fill(0, 10, 165);
- text("BLIZZARD 23MP", 30, 390);
- }
- }
- }
-
-
-
-
-
-
- //switch between selected attack with keypress\\
- void selectAttack() {
-
- if (attackType==0) {
-
- if (key==' ') {
- sword=true;
- }
- if (level>=3 && key=='s') {
- attackType=1;
- }
- }
- if (attackType==1) {
-
- if (key==' ') {
- fire=true;
- }
- if (key=='w') {
- attackType=0;
- }
- if (level>=6 && key=='s') {
- attackType=2;
- }
- }
- if (attackType==2) {
-
- if (key==' ') {
- light=true;
- }
- if (key=='w') {
- attackType=1;
- }
- if (level>=9 && key=='s') {
- attackType=3;
- }
- }
- if (attackType==3) {
-
- if (key==' ') {
- bliz=true;
- }
- if (key=='w') {
- attackType=2;
- }
- }
- }
-
-
-
-
-
- //set the effect of each of attack when activated\\
- void startAttack() {
- if (sword) {
- time++;
- if (firstHit>1) { //test to see if you attack first
- if (time>0 && time<=20) {
- UIscreen=2;
- }
- if (time>20 && time<=95) {
- spriteX=75;
- spriteY=190;
- monX=245;
- monY=95;
- fill(190);
-
- quad(140, 160, 200, 200, 240, 260, 220, 180);
- fill(0);
- textSize(12);
- text("you attacked with your sword", 5, 350);
- }
- if (time==20) {
- monHealth = monHealth-3-level;
- monChooseAttack();
- }
- if (time>95 && time<=160) {
- fill(0);
- textSize(12);
- text("the monster took "+(3+level)+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- }
- if (time>160 && time<=235) {
- spriteX=50;
- spriteY=210;
- monX=220;
- monY=120;
- monUseAttack();
- }
- if (time==160) {
- if (monTackle) {
- health = health - monLevel;
- }
- if (monFire || monBite || monSting) {
- health = health - 2+monLevel;
- }
- }
- if (time>235 && time<=300) {
- if (monTackle) {
- fill(0);
- textSize(12);
- text("you took "+monLevel+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- }
- if (monFire || monBite || monSting) {
- fill(0);
- textSize(12);
- text("you took "+(2+monLevel)+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- }
- }
- if (time>300) {
- sword=false;
- resetMonAttack();
- time=0;
- UIscreen=1;
- }
- }
-
- if (firstHit==1) { //test to see if enemy attacks first
-
- if (time>0 && time<=20) {
- UIscreen=2;
- }
- if (time==19){
- monChooseAttack();
- }
- if (time>20 && time<=95) {
- spriteX=50;
- spriteY=210;
- monX=220;
- monY=120;
- monUseAttack();
- }
- if (time==20) {
- if (monTackle) {
- health = health - monLevel;
- }
- if (monFire || monBite || monSting) {
- health = health - 2+monLevel;
- }
-
- }
- if (time>95 && time<=160) {
- if (monTackle) {
- fill(0);
- textSize(12);
- text("you took "+monLevel+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- }
- if (monFire || monBite || monSting) {
- fill(0);
- textSize(12);
- text("you took "+(2+monLevel)+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- }
-
- }
- if (time>160 && time<=235) {
-
- spriteX=75;
- spriteY=190;
- monX=245;
- monY=95;
- fill(190);
-
- quad(140, 160, 200, 200, 240, 260, 220, 180);
- fill(0);
- textSize(12);
- text("you attacked with your sword", 5, 350);
- }
- if (time==160) {
- monHealth = monHealth-3-level;
-
- }
- if (time>235 && time<=300) {
- fill(0);
- textSize(12);
- text("the monster took "+(3+level)+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- }
- if (time>300) {
- sword=false;
- resetMonAttack();
- time=0;
- UIscreen=1;
- }
-
- }
- }
-
- if (fire) {
-
- if (mana>=15) {
-
- time++;
- if (firstHit>1) { //test to see if you attack first
- if (time>0 && time<=20) {
- UIscreen=2;
- }
- if (time>20 && time<=95) {
- spriteX=75;
- spriteY=190;
- monX=245;
- monY=95;
-
- float x = 120;
- float y = 260;
- for (int i=0; i<=7; i++) {
- while (x>260) {
- flame(int(random(x-20, x+20)), int(random(y-20, y+20)));
- x = x+3;
- y = y-2;
- }
- flame(int(random(220, 320)), int(random(120, 220)));
- }
-
-
- fill(0);
- textSize(12);
- text("you cast your fire spell", 5, 350);
- }
- if (time==20) {
- monHealth = monHealth-7-level;
- mana = mana-15;
- monChooseAttack();
- }
- if (time>95 && time<=160) {
- fill(0);
- textSize(12);
- text("the monster took "+(7+level)+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- }
- if (time>160 && time<=235) {
- spriteX=50;
- spriteY=210;
- monX=220;
- monY=120;
- monUseAttack();
- }
- if (time==160) {
- if (monTackle) {
- health = health - monLevel;
- }
- if (monFire || monBite || monSting) {
- health = health - 2+monLevel;
- }
- }
- if (time>235 && time<=300) {
- if (monTackle) {
- fill(0);
- textSize(12);
- text("you took "+monLevel+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- }
- if (monFire || monBite || monSting) {
- fill(0);
- textSize(12);
- text("you took "+(2+monLevel)+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- }
- }
- if (time>300) {
-
- fire=false;
- resetMonAttack();
- time=0;
- UIscreen=1;
- }
- }
-
- if (firstHit==1) { //test to see if enemy attacks first
-
- if (time>0 && time<=20) {
- UIscreen=2;
- }
- if (time==19){
- monChooseAttack();
- }
- if (time>20 && time<=95) {
- spriteX=50;
- spriteY=210;
- monX=220;
- monY=120;
- monUseAttack();
- }
- if (time==20) {
- if (monTackle) {
- health = health - monLevel;
- }
- if (monFire || monBite || monSting) {
- health = health - 2+monLevel;
- }
-
- }
- if (time>95 && time<=160) {
- if (monTackle) {
- fill(0);
- textSize(12);
- text("you took "+monLevel+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- }
- if (monFire || monBite || monSting) {
- fill(0);
- textSize(12);
- text("you took "+(2+monLevel)+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- }
-
- }
- if (time>160 && time<=235) {
-
- spriteX=75;
- spriteY=190;
- monX=245;
- monY=95;
-
- float x = 155;
- float y = 230;
- for (int i=0; i<=7; i++) {
- while (x>300) {
- flame(int(random(x-20, x+20)), int(random(y-20, y+20)));
- x = x+3;
- y = y-2;
- }
- flame(int(random(260, 360)), int(random(80, 180)));
- }
-
-
- fill(0);
- textSize(12);
- text("you cast your fire spell", 5, 350);
- }
- if (time==160) {
- monHealth = monHealth-7-level;
- mana = mana-15;
-
- }
- if (time>235 && time<=300) {
-
- fill(0);
- textSize(12);
- text("the monster took "+(7+level)+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- }
- if (time>300) {
- fire=false;
- resetMonAttack();
- time=0;
- UIscreen=1;
- }
-
- }
- }
-
-
- else {
- println("NOT ENOUGH MP");
- fire=false;
- }
- }
- if (light) {
-
- if (mana>=19) {
-
- time++;
- if (firstHit>1) { //test to see if you attack first
- if (time>0 && time<=20) {
- UIscreen=2;
- }
- if (time>20 && time<=95) {
- spriteX=75;
- spriteY=190;
- monX=245;
- monY=95;
-
- fill(255,255,100);
- triangle(random(280,309),-1,random(311,340),-1,310,130);
-
- fill(0);
- textSize(12);
- text("you cast your lightning spell", 5, 350);
- }
- if (time==20) {
- monHealth = int(monHealth - 5 -level*1.5);
- mana = mana-19;
- monChooseAttack();
- }
- if (time>95 && time<=160) {
- fill(0);
- textSize(12);
- text("the monster took "+(int(5 +level*1.5))+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- }
- if (time>160 && time<=235) {
- spriteX=50;
- spriteY=210;
- monX=220;
- monY=120;
- monUseAttack();
- }
- if (time==160) {
- if (monTackle) {
- health = health - monLevel;
- }
- if (monFire || monBite || monSting) {
- health = health - 2+monLevel;
- }
- }
- if (time>235 && time<=300) {
- if (monTackle) {
- fill(0);
- textSize(12);
- text("you took "+monLevel+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- }
- if (monFire || monBite || monSting) {
- fill(0);
- textSize(12);
- text("you took "+(2+monLevel)+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- }
- }
- if (time>300) {
-
- light=false;
- resetMonAttack();
- time=0;
- UIscreen=1;
- }
- }
-
- if (firstHit==1) { //test to see if enemy attacks first
-
- if (time>0 && time<=20) {
- UIscreen=2;
- }
- if (time==19){
- monChooseAttack();
- }
- if (time>20 && time<=95) {
- spriteX=50;
- spriteY=210;
- monX=220;
- monY=120;
- monUseAttack();
- }
- if (time==20) {
- if (monTackle) {
- health = health - monLevel;
- }
- if (monFire || monBite || monSting) {
- health = health - 2+monLevel;
- }
-
- }
- if (time>95 && time<=160) {
- if (monTackle) {
- fill(0);
- textSize(12);
- text("you took "+monLevel+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- }
- if (monFire || monBite || monSting) {
- fill(0);
- textSize(12);
- text("you took "+(2+monLevel)+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- }
-
- }
- if (time>160 && time<=235) {
-
- spriteX=75;
- spriteY=190;
- monX=245;
- monY=95;
-
- fill(255,255,100);
- triangle(random(280,309),-1,random(311,340),-1,310,130);
-
- fill(0);
- textSize(12);
- text("you cast your lightning spell", 5, 350);
- }
- if (time==160) {
- monHealth = monHealth-7-level;
- mana = mana-19;
-
- }
- if (time>235 && time<=300) {
-
- fill(0);
- textSize(12);
- text("the monster took "+(int(5+level*1.5))+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- }
- if (time>300) {
- light=false;
- resetMonAttack();
- time=0;
- UIscreen=1;
- }
-
- }
-
- } else {
- println("NOT ENOUGH MP");
- light=false;
- }
- }
- if (bliz) {
-
- if (mana>=23) {
-
-
- time++;
- if (firstHit>1) { //test to see if you attack first
- if (time>0 && time<=20) {
- UIscreen=2;
- }
- if (time>20 && time<=95) {
- spriteX=75;
- spriteY=190;
- monX=245;
- monY=95;
-
- stroke(0,255,255);
- line(60,180,220,100);
- line(140,180,280,80);
- line(60,280,240,140);
- line(180,280,260,180);
- line(260,240,320,160);
-
-
- snowTimeX = snowTimeX + 2;
- snowTimeY = snowTimeY - 1.8;
-
- snowFlake(snowTimeX+100,snowTimeY+140);
- snowFlake(snowTimeX+220,snowTimeY+180);
- snowFlake(snowTimeX+280,snowTimeY+240);
- snowFlake(snowTimeX+160,snowTimeY+260);
- snowFlake(snowTimeX+240,snowTimeY+200);
- snowFlake(snowTimeX+300,snowTimeY+260);
- snowFlake(snowTimeX+180,snowTimeY+160);
- snowFlake(snowTimeX+200,snowTimeY+220);
- snowFlake(snowTimeX+100,snowTimeY+200);
-
- stroke(0);
-
- fill(0);
- textSize(12);
- text("you cast your blizzard spell", 5, 350);
- }
- if (time==20) {
- monHealth = int(monHealth - 5 -level*1.5);
- mana = mana-23;
- monChooseAttack();
- }
- if (time>95 && time<=160) {
- fill(0);
- textSize(12);
- text("the monster took "+(int(level*2.3))+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- snowTimeX = 0;
- snowTimeY = 0;
- }
- if (time>160 && time<=235) {
- spriteX=50;
- spriteY=210;
- monX=220;
- monY=120;
- monUseAttack();
- }
- if (time==160) {
- if (monTackle) {
- health = health - monLevel;
- }
- if (monFire || monBite || monSting) {
- health = health - 2+monLevel;
- }
- }
- if (time>235 && time<=300) {
- if (monTackle) {
- fill(0);
- textSize(12);
- text("you took "+monLevel+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- }
- if (monFire || monBite || monSting) {
- fill(0);
- textSize(12);
- text("you took "+(2+monLevel)+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- }
- }
- if (time>300) {
-
- bliz=false;
- resetMonAttack();
- time=0;
- UIscreen=1;
- }
- }
-
- if (firstHit==1) { //test to see if enemy attacks first
-
- if (time>0 && time<=20) {
- UIscreen=2;
- }
- if (time==19){
- monChooseAttack();
- }
- if (time>20 && time<=95) {
- spriteX=50;
- spriteY=210;
- monX=220;
- monY=120;
- monUseAttack();
- }
- if (time==20) {
- if (monTackle) {
- health = health - monLevel;
- }
- if (monFire || monBite || monSting) {
- health = health - 2+monLevel;
- }
-
- }
- if (time>95 && time<=160) {
- if (monTackle) {
- fill(0);
- textSize(12);
- text("you took "+monLevel+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- }
- if (monFire || monBite || monSting) {
- fill(0);
- textSize(12);
- text("you took "+(2+monLevel)+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- }
-
- }
- if (time>160 && time<=235) {
-
- spriteX=75;
- spriteY=190;
- monX=245;
- monY=95;
-
- stroke(0,255,255);
- line(60,180,220,100);
- line(140,180,280,80);
- line(60,280,240,140);
- line(180,280,260,180);
- line(260,240,320,160);
-
-
- snowTimeX = snowTimeX + 2;
- snowTimeY = snowTimeY - 1.8;
-
- snowFlake(snowTimeX+100,snowTimeY+140);
- snowFlake(snowTimeX+220,snowTimeY+180);
- snowFlake(snowTimeX+280,snowTimeY+240);
- snowFlake(snowTimeX+160,snowTimeY+260);
- snowFlake(snowTimeX+240,snowTimeY+200);
- snowFlake(snowTimeX+300,snowTimeY+260);
- snowFlake(snowTimeX+180,snowTimeY+160);
- snowFlake(snowTimeX+200,snowTimeY+220);
- snowFlake(snowTimeX+100,snowTimeY+200);
-
- stroke(0);
-
-
- fill(0);
- textSize(12);
- text("you cast your blizzard spell", 5, 350);
- }
- if (time==160) {
- monHealth = int(monHealth-level*2.3);
- mana = mana-23;
-
- }
- if (time>235 && time<=300) {
-
- fill(0);
- textSize(12);
- text("the monster took "+(int(level*2.3))+" damage", 5, 350);
- spriteX=60;
- spriteY=200;
- monX=240;
- monY=100;
- snowTimeX = 0;
- snowTimeY = 0;
- }
- if (time>300) {
- bliz=false;
- resetMonAttack();
- time=0;
- UIscreen=1;
- }
-
- }
-
-
-
- } else {
- println("NOT ENOUGH MP");
- bliz=false;
- }
- }
- }
-
-
-
-
-
-
- void monChooseAttack() {
- int z = int(random(1, 2));
-
- if (z==1) {
- monTackle = true;
- }
- if (z==2) {
- if (screen==1) {
- monFire = true;
- }
- if (screen==2) {
- monBite = true;
- }
- if (screen==3) {
- monSting = true;
- }
- }
- }
-
-
-
-
-
- void monUseAttack() {
- if (monTackle) {
- line(140, 280, 240, 240);
- line(160, 240, 230, 200);
- line(150, 200, 200, 130);
- line(130, 170, 160, 120);
- line(60, 220, 80, 140);
-
- fill(0);
- textSize(12);
- text("the monster used tackle", 5, 350);
- }
- if (monFire) {
- float x = 240;
- float y = 180;
- for (int i=0; i<=7; i++) {
- while (x<140) {
- flame(int(random(x-20, x+20)), int(random(y-20, y+20)));
- x = x-3;
- y = y+1;
- }
- flame(int(random(40, 140)), int(random(220, 300)));
- }
- fill(0);
- textSize(12);
- text("the monster used fire", 5, 350);
- }
- if (monBite) {
- fill(150);
- beginShape(); //left tooth
- vertex(160, 240);
- vertex(200, 220);
- vertex(220, 180);
- vertex(270, 210);
- vertex(230, 250);
- vertex(160, 240);
- endShape();
-
- beginShape(); //right tooth
- vertex(80, 200);
- vertex(80, 160);
- vertex(100, 120);
- vertex(50, 100);
- vertex(40, 160);
- vertex(80, 200);
- endShape();
-
- fill(0);
- textSize(12);
- text("the monster used bite", 5, 350);
- }
- if (monSting) {
- fill(100, 40, 160);
- beginShape(); //draw stinger
- vertex(160, 240);
- vertex(190, 210);
- vertex(210, 170);
- vertex(230, 200);
- vertex(270, 210);
- vertex(230, 250);
- vertex(160, 240);
- endShape();
-
- fill(0);
- textSize(12);
- text("the monster used sting", 5, 350);
- }
- }
-
-
-
-
-
- void resetMonAttack() {
- monTackle=false;
- monFire=false;
- monBite=false;
- monSting=false;
- }
-
-
-
-
-
- /*/ ATTACK AND BATTLE SETUP /*/
-
- //set actions for when player defeats enemy\\
- void winFight() {
- if (monHealth==0) { //test to see if enemy died
-
-
-
- winTime=winTime+1; //run the clock
-
- if (winTime<2) { //increase you experience right away
- exp = exp + 80 + monLevel*6;
- time=0;
- UIscreen=1;
- sword=false;
- fire=false;
- light=false;
- bliz=false;
- resetMonAttack();
- }
-
- if (winTime>60) { //after 2 seconds, go back to main screen (screen 0) and reset timer
- screen = 0;
- monHealth = monMaxHealth;
- winTime=0;
- }
- }
- }
-
-
-
-
-
- /*/ BACKGROUND /*/
-
- void setBackground() {
- //set sky colour
- background(0, 150, 255);
-
- //draw two rows of trees
- for (float treeX = -75; treeX <= width; treeX = treeX+50) {
- drawTree(treeX, 25);
- }
- for (float treeX = -50; treeX <= width; treeX = treeX+50) {
- drawTree(treeX, 20);
- }
-
- //draw grass
- fill (130, 235, 0);
- noStroke();
- ellipse(200, 300, 1900, 400);
-
- //draw light green patch under enemy
- fill(170, 255, 0);
- ellipse(286, 190, 140, 40);
- stroke(0);
- }
-
-
-
-
- ///**\\\ S P R I T E S ///**\\\
-
- /*/ MAP SPRITES /*/
-
- //draw sign\\
- void drawSign(float signX, float signY) {
-
- //draw sign and three lines to look like text
- fill(210, 180, 90);
- rect(signX+21, signY+7, 8, 36);
- rect(signX+10, signY+12, 30, 15);
- line(signX+13, signY+16, signX+37, signY+16);
- line(signX+13, signY+19, signX+37, signY+19);
- line(signX+13, signY+22, signX+37, signY+22);
-
- //create bounding box to prevent player from walking through sign
- if (playerX>signX-9 && playerX<signX+59 && playerY>signY-12 && playerY<=signY) {
- playerY=playerY-speed;
- if (dash) {
- playerY = playerY - dashSpd;
- }
- }
-
- if (playerY<signY+43 && playerY>signY-12 && playerX<signX+59 && playerX>=signX+50) {
- playerX=playerX+speed;
- if (dash) {
- playerX = playerX + dashSpd;
- }
- }
-
- if (playerX>signX-9 && playerX<signX+59 && playerY<signY+43 && playerY>=signY+30) {
- playerY=playerY+speed;
- if (dash) {
- playerY = playerY + dashSpd;
- }
- }
-
- if (playerY<signY+43 && playerY>signY-12 && playerX>signX-9 && playerX<=signX+9) {
- playerX=playerX-speed;
- if (dash) {
- playerX = playerX - dashSpd;
- }
- }
- }
-
- //draw rock\\
- void drawRock(float rockX, float rockY) {
-
- //draw exterior shape of rock
- fill(160);
- beginShape();
- vertex(rockX+1, rockY+40);
- vertex(rockX+1, rockY+32);
- vertex(rockX+13, rockY+22);
- vertex(rockX+15, rockY+10);
- vertex(rockX+24, rockY+1);
- vertex(rockX+39, rockY+11);
- vertex(rockX+40, rockY+23);
- vertex(rockX+47, rockY+35);
- vertex(rockX+49, rockY+44);
- vertex(rockX+33, rockY+49);
- vertex(rockX+20, rockY+47);
- vertex(rockX+8, rockY+48);
- vertex(rockX+1, rockY+40);
- endShape();
-
- //draw cracks in the rock
- line(rockX+10, rockY+33, rockX+18, rockY+33);
- line(rockX+13, rockY+33, rockX+17, rockY+38);
- line(rockX+26, rockY+39, rockX+33, rockY+42);
- line(rockX+39, rockY+26, rockX+33, rockY+42);
- line(rockX+33, rockY+49, rockX+33, rockY+42);
- line(rockX+35, rockY+25, rockX+24, rockY+28);
- line(rockX+18, rockY+11, rockX+23, rockY+14);
- line(rockX+30, rockY+12, rockX+23, rockY+14);
- line(rockX+25, rockY+18, rockX+23, rockY+14);
-
- //create bounding box to prevent player from walking through rock
- if (playerX>rockX-18 && playerX<rockX+68 && playerY>rockY-19 && playerY<=rockY) {
- playerY=playerY-speed;
- if (dash) {
- playerY = playerY - dashSpd;
- }
- }
-
- if (playerY<rockY+68 && playerY>rockY-18 && playerX<rockX+69 && playerX>=rockX+50) {
- playerX=playerX+speed;
- if (dash) {
- playerX = playerX + dashSpd;
- }
- }
-
- if (playerX>rockX-18 && playerX<rockX+68 && playerY<rockY+69 && playerY>=rockY+50) {
- playerY=playerY+speed;
- if (dash) {
- playerY = playerY + dashSpd;
- }
- }
-
- if (playerY<rockY+68 && playerY>rockY-18 && playerX>rockX-19 && playerX<=rockX) {
- playerX=playerX-speed;
- if (dash) {
- playerX = playerX - dashSpd;
- }
- }
- }
-
- //draw grass\\
- void drawGrass(float x, float y) {
- fill(60, 130, 0);
- triangle(x+27, y+3, x+17, y+50, x+40, y+38);
- fill(110, 150, 0);
- quad(x+8, y+14, x+17, y, x+25, y+44, x+15, y+35);
- fill(40, 190, 0);
- quad(x+36, y+2, x+43, y+15, x+37, y+35, x+31, y+25);
- fill(40, 170, 0);
- quad(x+23, y+7, x+31, y+50, x+20, y+50, x+13, y+37);
- fill(70, 160, 0);
- beginShape();
- vertex(x+49, y+17);
- vertex(x+45, y+34);
- vertex(x+35, y+50);
- vertex(x+30, y+50);
- vertex(x+30, y+40);
- vertex(x+49, y+17);
- endShape();
- fill(120, 200, 0);
- beginShape();
- vertex(x+1, y+14);
- vertex(x+5, y+32);
- vertex(x+17, y+50);
- vertex(x+22, y+50);
- vertex(x+16, y+27);
- vertex(x+1, y+14);
- endShape();
- fill(140, 220, 0);
- quad(x+7, y+39, x+15, y+40, x+19, y+50, x+15, y+50);
- fill(60, 180, 0);
- quad(x+48, y+36, x+44, y+47, x+38, y+50, x+30, y+50);
- fill(110, 210, 0);
- quad(x+37, y+14, x+27, y+30, x+24, y+50, x+32, y+50);
-
- //if player is walking through the grass, run RNG to determine if an encounter occurs
- if (up||down||left||right) { //test to see if player is moving
- if (playerX<x+50 && playerX>x && playerY<y+50 && playerY>y) { //test to see if player is in grass
- if(!dash){ //test to see if player is walking (not dashing)
- ranNum = int(random(0,int((50/speed)*20)));
- if (ranNum == 1) { //set player to enemy screen 1 (5% chance per grass sprite) and disable movement and dash
- startBattle();
- up=false;
- right=false;
- down=false;
- left=false;
- dash=false;
- ranNum = 0;
- screen = 1;
- } else if (ranNum == 2) { //set player to enemy screen 2 (5% chance per grass sprite) and disable movement and dash
- startBattle();
- up=false;
- right=false;
- down=false;
- left=false;
- dash=false;
- ranNum = 0;
- screen = 2;
- } else if (ranNum == 3) { //set player to enemy screen 3 (5% chance per grass sprite) and disable movement and dash
- startBattle();
- up=false;
- right=false;
- down=false;
- left=false;
- dash=false;
- ranNum = 0;
- screen=3;
- }
- }
- if(dash){ //test to see if player is dashing
- ranNum = int(random(0,int((50/(speed+dashSpd))*20)));
- if (ranNum == 1) { //set player to enemy screen 1 (5% chance per grass sprite) and disable movement and dash
- startBattle();
- up=false;
- right=false;
- down=false;
- left=false;
- dash=false;
- ranNum = 0;
- screen = 1;
- } else if (ranNum == 2) { //set player to enemy screen 2 (5% chance per grass sprite) and disable movement and dash
- startBattle();
- up=false;
- right=false;
- down=false;
- left=false;
- dash=false;
- ranNum = 0;
- screen = 2;
- } else if (ranNum == 3) { //set player to enemy screen 3 (5% chance per grass sprite) and disable movement and dash
- startBattle();
- up=false;
- right=false;
- down=false;
- left=false;
- dash=false;
- ranNum = 0;
- screen=3;
- }
- }
- }
- }
- }
-
-
- //draw tree\\
- void drawTree(float treeX,float treeY){
- //draw trunk
- fill(100,60,15);
- beginShape();
- vertex(treeX+16,treeY+50);
- vertex(treeX+15,treeY+70);
- vertex(treeX+6,treeY+86);
- vertex(treeX+16,treeY+84);
- vertex(treeX+16,treeY+94);
- vertex(treeX+28,treeY+86);
- vertex(treeX+40,treeY+90);
- vertex(treeX+33,treeY+70);
- vertex(treeX+31,treeY+50);
- endShape();
-
- //draw leaves
- fill(20,100,0);
- beginShape();
- vertex(treeX+1,treeY+65);
- vertex(treeX+12,treeY+45);
- vertex(treeX+7,treeY+48);
- vertex(treeX+13,treeY+33);
- vertex(treeX+9,treeY+36);
- vertex(treeX+14,treeY+22);
- vertex(treeX+11,treeY+25);
- vertex(treeX+25,treeY+1);
- vertex(treeX+39,treeY+25);
- vertex(treeX+36,treeY+22);
- vertex(treeX+41,treeY+36);
- vertex(treeX+37,treeY+33);
- vertex(treeX+43,treeY+48);
- vertex(treeX+38,treeY+45);
- vertex(treeX+49,treeY+65);
- vertex(treeX+33,treeY+60);
- vertex(treeX+35,treeY+63);
- vertex(treeX+27,treeY+58);
- vertex(treeX+22,treeY+64);
- vertex(treeX+17,treeY+59);
- vertex(treeX+1,treeY+65);
- endShape();
-
- //create bounding box to prevent player from walkign through rock
- if (playerX>treeX-18 && playerX<treeX+68 && playerY>treeY+31 && playerY<=treeY+50) {
- playerY=playerY-speed;
- if (dash) {
- playerY = playerY - dashSpd;
- }
- }
-
- if (playerY<treeY+113 && playerY>treeY+31 && playerX<treeX+64 && playerX>=treeX+45) {
- playerX=playerX+speed;
- if (dash) {
- playerX = playerX + dashSpd;
- }
- }
-
- if (playerX>treeX-18 && playerX<treeX+68 && playerY<treeY+114 && playerY>=treeY+95) {
- playerY=playerY+speed;
- if (dash) {
- playerY = playerY + dashSpd;
- }
- }
-
- if (playerY<treeY+113 && playerY>treeY+31 && playerX>treeX-17 && playerX<=treeX+2) {
- playerX=playerX-speed;
- if (dash) {
- playerX = playerX - dashSpd;
- }
- }
- }
-
- //draw guard\\
- void drawGuard(float guardX){
-
- //make guard follow player
- float guardY = groundY+400;
-
- if(playerY>=groundY+400 && playerY<=groundY+600){
- guardY = playerY;
- } else if (playerY<=groundY+400){
- guardY = groundY+400;
- } else if (playerY>=groundY+600){
- guardY = groundY+600;
- }
-
-
- //draw hands
- fill(243, 211, 174);
- ellipse(guardX+15,guardY-15,9,9);
- ellipse(guardX+15,guardY+15,9,9);
-
- //draw body
- fill(100,80,255);
- ellipse(guardX+8,guardY,12,36);
-
- //draw shoulder pads
- fill(180,160,20);
- ellipse(guardX+8,guardY-15,8,5);
- ellipse(guardX+8,guardY+15,8,5);
-
- //draw cap
- fill(20,0,140);
- ellipse(guardX+22,guardY,4,10);
- beginShape();
- vertex(guardX+22,guardY-5);
- vertex(guardX+10,guardY-5);
- vertex(guardX+10,guardY+5);
- vertex(guardX+22,guardY+5);
- endShape();
-
- //top of hat
- fill(40,0,140);
- ellipse(guardX+8,guardY,16,16);
-
- //create bounding box to prevent player from walking through guard
- if (playerX>guardX-18 && playerX<guardX+43 && playerY>guardY-39 && playerY<=guardY-15) {
- playerY=playerY-speed;
- if (dash) {
- playerY = playerY - dashSpd;
- }
- }
-
- if (playerY<guardY+58 && playerY>guardY-18 && playerX<guardX+44 && playerX>=guardX+25) {
- playerX=playerX+speed;
- if (dash) {
- playerX = playerX + dashSpd;
- }
- }
-
- if (playerX>guardX-18 && playerX<guardX+43 && playerY<guardY+39 && playerY>=guardY+15) {
- playerY=playerY+speed;
- if (dash) {
- playerY = playerY + dashSpd;
- }
- }
-
- if (playerY<guardY+58 && playerY>guardY-18 && playerX>guardX-19 && playerX<=guardX) {
- playerX=playerX-speed;
- if (dash) {
- playerX = playerX - dashSpd;
- }
- }
-
- //tell player he isn't allowed to pass when close to the guard
- if (playerX>guardX-10 && playerX<guardX+55 && playerY<guardY+40 && playerY>guardY-40) {
- fill(0);
- textSize(14);
- text("You cannot pass this point", guardX-30, guardY-30);
- }
- }
-
- /*/ BATTLE SPRITES /*/
-
- //draw spider monster\\
- void spider(float x, float y){
- //string of web
- fill(190);
- rect(x+44,y-300,5,330);
-
- //legs
- fill(170,170,140);
- beginShape(); //top left leg
- vertex(x+32,y+41);
- vertex(x+18,y+26);
- vertex(x+30,y+10);
- vertex(x+25,y+25);
- vertex(x+34,y+35);
- endShape();
- beginShape(); //middle left leg
- vertex(x+32,y+44);
- vertex(x+15,y+42);
- vertex(x+16,y+30);
- vertex(x+9,y+46);
- vertex(x+33,y+50);
- endShape();
- beginShape(); //bottom left leg
- vertex(x+34,y+53);
- vertex(x+13,y+61);
- vertex(x+21,y+80);
- vertex(x+20,y+64);
- vertex(x+36,y+58);
- endShape();
- beginShape(); //top right leg
- vertex(x+62,y+41);
- vertex(x+76,y+26);
- vertex(x+64,y+10);
- vertex(x+69,y+25);
- vertex(x+60,y+35);
- endShape();
- beginShape(); //middle right leg
- vertex(x+62,y+44);
- vertex(x+79,y+42);
- vertex(x+78,y+30);
- vertex(x+85,y+46);
- vertex(x+61,y+50);
- endShape();
- beginShape(); //bottom right leg
- vertex(x+60,y+53);
- vertex(x+81,y+61);
- vertex(x+73,y+80);
- vertex(x+74,y+64);
- vertex(x+58,y+58);
- endShape();
-
-
- //body
- fill(30,150,10);
- ellipse(x+47,y+43,30,40);
- line(x+33,y+35,x+47,y+30); //top left line
- line(x+60,y+35,x+47,y+30); //top right line
- line(x+32,y+45,x+47,y+40); //middle left line
- line(x+61,y+45,x+47,y+40); //middle right line
- line(x+35,y+55,x+47,y+50); //bottom left line
- line(x+59,y+55,x+47,y+50); //bottom right line
-
- //teeth
- fill(180,180,170);
- beginShape(); //left large tooth
- vertex(x+39,y+70);
- vertex(x+38,y+77);
- vertex(x+42,y+81);
- vertex(x+41,y+77);
- vertex(x+47,y+70);
- endShape();
- triangle(x+42,y+70,x+45,y+79,x+48,y+70); //left small tooth
- triangle(x+52,y+70,x+49,y+79,x+46,y+70); //right small tooth
- beginShape(); //right large tooth
- vertex(x+55,y+70);
- vertex(x+56,y+77);
- vertex(x+52,y+81);
- vertex(x+53,y+77);
- vertex(x+47,y+70);
- endShape();
-
- //head
- fill(30,150,10);
- ellipse(x+47,y+66,30,18);
-
- //eyes
- fill(200,0,0);
- ellipse(x+39,y+69,5,5); //bottom left
- ellipse(x+55,y+69,5,5); //bottom right
- ellipse(x+44,y+65,3,3); //top left
- ellipse(x+50,y+65,3,3); //top right
-
- }
-
-
- //draw bat monster\\
- void bat(float x, float y){
-
- //draw tail
- fill(120,60,180);
- beginShape(); //long tail that leads to stinger
- vertex(x+55,y+65);
- vertex(x+57,y+60);
- vertex(x+50,y+57);
- vertex(x+37,y+60);
- vertex(x+31,y+54);
- vertex(x+36,y+45);
- vertex(x+41,y+47);
- vertex(x+36,y+53);
- vertex(x+38,y+57);
- vertex(x+51,y+53);
- vertex(x+60,y+59);
- vertex(x+57,y+66);
- endShape();
- fill(100,40,160);
- ellipse(x+54,y+67,8,8); //circular part of stinger
- beginShape(); //pointed piece to stinger
- vertex(x+54,y+71);
- vertex(x+41,y+73);
- vertex(x+48,y+70);
- vertex(x+50,y+67);
- endShape();
-
- //left wing
- fill(90,20,150);
- beginShape(); //skin (flappy part) of wing
- vertex(x+35,y+34);
- vertex(x+22,y+29);
- vertex(x+6,y+38);
- vertex(x+10,y+56);
- vertex(x+14,y+48);
- vertex(x+19,y+51);
- vertex(x+23,y+45);
- vertex(x+26,y+47);
- vertex(x+35,y+42);
- endShape();
- fill(130,80,190);
- beginShape(); //arm (boney part) of wing
- vertex(x+33,y+37);
- vertex(x+23,y+32);
- vertex(x+26,y+47);
- vertex(x+21,y+32);
- vertex(x+16,y+35);
- vertex(x+19,y+51);
- vertex(x+14,y+36);
- vertex(x+9,y+39);
- vertex(x+10,y+56);
- vertex(x+6,y+38);
- vertex(x+22,y+29);
- vertex(x+35,y+34);
- endShape();
-
- //right wing
- fill(90,20,150);
- beginShape(); //skin (flappy part) of wing
- vertex(x+57,y+34);
- vertex(x+70,y+29);
- vertex(x+86,y+38);
- vertex(x+82,y+56);
- vertex(x+78,y+48);
- vertex(x+73,y+51);
- vertex(x+69,y+45);
- vertex(x+66,y+47);
- vertex(x+57,y+42);
- endShape();
- fill(130,80,190);
- beginShape(); //arm (boney part) of wing
- vertex(x+59,y+37);
- vertex(x+69,y+32);
- vertex(x+66,y+47);
- vertex(x+71,y+32);
- vertex(x+76,y+35);
- vertex(x+73,y+51);
- vertex(x+78,y+36);
- vertex(x+83,y+39);
- vertex(x+82,y+56);
- vertex(x+86,y+38);
- vertex(x+70,y+29);
- vertex(x+57,y+34);
- endShape();
-
- //ears
- fill(130,80,190);
- quad(x+37,y+24,x+33,y+29,x+35,y+37,x+40,y+40); //left ear
- quad(x+55,y+24,x+59,y+29,x+57,y+37,x+52,y+40); //right ear
-
- //head
- fill(140,90,200);
- ellipse(x+46,y+39,28,20);
-
- //eyes
- fill(255);
- quad(x+37,y+35,x+35,y+39,x+43,y+40,x+42,y+37); //left eye
- quad(x+55,y+35,x+57,y+39,x+49,y+40,x+50,y+37); //right eye
- fill(150,0,0);
- ellipse(x+39,y+38,2,4); //left iris
- ellipse(x+53,y+38,2,4); //right iris
-
- //mouth
- fill(0);
- beginShape();
- vertex(x+39,y+43);
- vertex(x+38,y+46);
- vertex(x+46,y+47);
- vertex(x+54,y+46);
- vertex(x+53,y+43);
- endShape();
-
- //teeth
- fill(255);
- stroke(255);
- strokeWeight(0.3);
- triangle(x+41,y+43,x+43,y+43,x+42,y+45);
- triangle(x+51,y+43,x+49,y+43,x+50,y+45);
- strokeWeight(1);
- stroke(0);
- }
-
-
- //draw fire monster\\
- void fireGuy(float x, float y){
-
- //draw outer fire
- fill(255,20,0);
- beginShape();
- vertex(x+26,y+79);
- vertex(x+12,y+55);
- vertex(x+22,y+63);
- vertex(x+20,y+45);
- vertex(x+27,y+27);
- vertex(x+27,y+41);
- vertex(x+32,y+44);
- vertex(x+36,y+30);
- vertex(x+42,y+25);
- vertex(x+37,y+14);
- vertex(x+41,y+4);
- vertex(x+40,y+11);
- vertex(x+51,y+24);
- vertex(x+49,y+30);
- vertex(x+56,y+31);
- vertex(x+62,y+25);
- vertex(x+62,y+19);
- vertex(x+66,y+26);
- vertex(x+63,y+40);
- vertex(x+67,y+46);
- vertex(x+76,y+35);
- vertex(x+68,y+58);
- vertex(x+70,y+64);
- vertex(x+74,y+60);
- vertex(x+72,y+72);
- vertex(x+60,y+84);
- endShape();
-
- //draw inner fire
- fill(245,200,0);
- ellipse(x+45,y+69,42,42); //draw inner circle
- beginShape(); //first spike
- vertex(x+25,y+74);
- vertex(x+21,y+65);
- vertex(x+24,y+67);
- endShape();
- beginShape(); //second spike
- vertex(x+26,y+62);
- vertex(x+26,y+47);
- vertex(x+33,y+53);
- endShape();
- beginShape(); //third spike
- vertex(x+37,y+51);
- vertex(x+44,y+30);
- vertex(x+48,y+49);
- endShape();
- beginShape(); //fourth spike
- vertex(x+51,y+50);
- vertex(x+59,y+36);
- vertex(x+57,y+53);
- endShape();
- beginShape(); //fifth spike
- vertex(x+60,y+56);
- vertex(x+68,y+48);
- vertex(x+64,y+62);
- endShape();
- beginShape(); //sixth spike
- vertex(x+66,y+70);
- vertex(x+70,y+68);
- vertex(x+65,y+75);
- endShape();
-
-
- //draw eye
- fill(240);
- ellipse(x+44,y+64,12,10); //draw white oval
- fill(0,230,255);
- ellipse(x+43,y+65,6,9); //draw iris
- noStroke();
- fill(255);
- ellipse(x+44,y+63,2,2); //draw two glares
- ellipse(x+42,y+67,2,2);
- stroke(0);
-
- //draw mouth
- fill(155,110,0,200);
- beginShape();
- vertex(x+35,y+75);
- vertex(x+42,y+78);
- vertex(x+50,y+75);
- vertex(x+57,y+65);
- vertex(x+56,y+78);
- vertex(x+44,y+84);
- vertex(x+35,y+75);
- endShape();
-
- //draw teeth
- strokeWeight(0.4);
- fill(220);
- triangle(x+42,y+79,x+44,y+78,x+44,y+80); //left tooth
- triangle(x+48,y+77,x+50,y+76,x+51,y+79); //right tooth
- strokeWeight(1);
- }
-
-
-
- //draw player when in battle\\
-
- void sprite(float x,float y){
-
- //swordblade
- fill(160);
- triangle(x+81,y,x+72,y+11,x+82,y+15); //top left quadrant
- fill(170);
- triangle(x+81,y,x+89,y+10,x+82,y+15); //top right quadrant
- quad(x+72,y+11,x+82,y+15,x+81,y+55,x+77,y+56); //bottom left quadrant
- fill(180);
- quad(x+89,y+10,x+82,y+15,x+81,y+55,x+85,y+56); //bottom right quadrant
-
- //sword handle
- fill(200,170,0);
- rect(x+78,y+54,6,21); //handle
- fill(195,165,0);
- ellipse(x+81,y+74,8,8); //pommel
- fill(180,120,0);
- beginShape(); //hand guard
- vertex(x+70,y+50);
- vertex(x+67,y+54);
- vertex(x+69,y+58);
- vertex(x+92,y+57);
- vertex(x+94,y+53);
- vertex(x+91,y+49);
- vertex(x+89,y+52);
- vertex(x+73,y+53);
- vertex(x+70,y+50);
- endShape();
-
- //hand
- fill(243, 211, 174);
- beginShape();
- vertex(x+73,y+64);
- vertex(x+78,y+60);
- vertex(x+78,y+64);
- vertex(x+84,y+63);
- vertex(x+84,y+58.5);
- vertex(x+88,y+65);
- vertex(x+88,y+70);
- vertex(x+84,y+74);
- vertex(x+77,y+74);
- vertex(x+73,y+70);
- vertex(x+73,y+64);
- endShape();
-
- //neck and head
- fill(243, 211, 174);
- rect(x+29,y+40,9,15);
- ellipse(x+35,y+31,28,30);
-
- //right leg
- fill(190,160,70);
- triangle(x+40,y+80,x+60,y+110,x+40,y+110);
-
- //cloak
- fill(10, 20, 190);
- beginShape(); //draw back
- vertex(x+48,y+49);
- vertex(x+24,y+50);
- vertex(x+10,y+66);
- vertex(x+9,y+88);
- vertex(x,y+110);
- vertex(x+50,y+110);
- vertex(x+50,y+70);
- endShape();
-
- line(x+50,y+70,x+38,y+88); //draw the creases in the cloak
- line(x+50,y+70,x+46,y+95);
-
- beginShape(); //draw right arm
- vertex(x+45,y+67);
- vertex(x+52,y+77);
- vertex(x+74,y+74);
- vertex(x+73,y+63);
- vertex(x+56,y+65);
- vertex(x+48,y+49);
- endShape();
- line(x,y+110,x+18,y+66); //draw line to separate left arm from the back
-
- //draw hair
- fill(255,255,0);
- beginShape();
- vertex(x+50,y+33);
- vertex(x+52,y+26);
- vertex(x+49,y+15);
- vertex(x+48,y+20);
- vertex(x+41,y+8);
- vertex(x+40,y+16);
- vertex(x+31,y+5);
- vertex(x+34,y+14);
- vertex(x+21,y+8);
- vertex(x+26,y+15);
- vertex(x+12,y+16);
- vertex(x+20,y+22);
- vertex(x+11,y+29);
- vertex(x+19,y+28);
- vertex(x+14,y+39);
- vertex(x+21,y+33);
- vertex(x+20,y+48);
- vertex(x+24,y+39);
- vertex(x+26,y+58);
- vertex(x+34,y+40);
- vertex(x+36,y+45);
- vertex(x+38,y+27);
- vertex(x+41,y+35);
- vertex(x+47,y+25);
- vertex(x+50,y+33);
- endShape();
- }
-
- /*/ PARTICLES /*/
-
- //snowflake particle\\
- void snowFlake(float x, float y){
- stroke(0,255,240);
- strokeWeight(0.85);
- noFill();
-
- ellipse(x+10,y+10,4,4); //main circle in centre of snowflake
-
- line(x+3,y+17,x+17,y+3); //main eight lines coming from centre of snowflake
- line(x+0,y+10,x+20,y+10);
- line(x+3,y+3,x+17,y+17);
- line(x+10,y+0,x+10,y+20);
-
- line(x+7,y+13,x+5,y+12); //ring of zig-zags around circle
- line(x+5,y+12,x+7,y+10);
- line(x+7,y+10,x+5,y+8);
- line(x+5,y+8,x+7,y+7);
- line(x+7,y+7,x+8,y+5);
- line(x+8,y+5,x+10,y+7);
- line(x+10,y+7,x+12,y+5);
- line(x+12,y+5,x+13,y+7);
- line(x+13,y+7,x+15,y+8);
- line(x+15,y+8,x+13,y+10);
- line(x+13,y+10,x+15,y+12);
- line(x+15,y+12,x+13,y+13);
- line(x+13,y+13,x+12,y+15);
- line(x+12,y+15,x+10,y+13);
- line(x+10,y+13,x+8,y+15);
- line(x+8,y+15,x+7,y+13);
-
- line(x+6,y+6,x+5,y+3); //small lines that branch off of main eight lines
- line(x+6,y+6,x+3,y+5);
- line(x+10,y+4,x+8,y+1);
- line(x+10,y+4,x+12,y+1);
- line(x+14,y+6,x+15,y+3);
- line(x+14,y+6,x+17,y+5);
- line(x+16,y+10,x+19,y+8);
- line(x+16,y+10,x+19,y+12);
- line(x+14,y+14,x+17,y+15);
- line(x+14,y+14,x+15,y+17);
- line(x+10,y+16,x+12,y+19);
- line(x+10,y+16,x+8,y+19);
- line(x+6,y+14,x+3,y+15);
- line(x+6,y+14,x+5,y+17);
- line(x+4,y+10,x+1,y+12);
- line(x+4,y+10,x+1,y+8);
-
- stroke(0);
- strokeWeight(1);
- }
-
- //fire particle\\
- void flame(float x, float y){
-
- //outer red flame
- strokeWeight(0);
- fill(255,0,0);
- ellipse(x+10,y+14,12,12);
- beginShape();
- vertex(x+4,y+14);
- vertex(x+6,y+6);
- vertex(x+7,y+8);
- vertex(x+10,y);
- vertex(x+13,y+8);
- vertex(x+14,y+6);
- vertex(x+16,y+14);
- endShape();
-
-
- //inner yellow flame
- fill(255,230,0);
- ellipse(x+10,y+16,6,6);
- beginShape();
- vertex(x+7,y+16);
- vertex(x+7,y+10);
- vertex(x+8,y+12);
- vertex(x+10,y+6);
- vertex(x+12,y+12);
- vertex(x+13,y+10);
- vertex(x+13,y+16);
- endShape();
-
- strokeWeight(1);
- }
-
- /*/ PLAYER SPRITES /*/
-
- //draw the player according to the direction the player is moving in\\
-
- void drawPlayer() {
- stroke(0);
-
- //draw player when facing up
- if (direction == 0) {
-
- //draw hands
- fill(243, 211, 174);
- ellipse(playerX+15, playerY-10, 9, 9);
- ellipse(playerX-15, playerY-10, 9, 9);
-
- //draw the body
- fill(10, 20, 190);
- ellipse(playerX, playerY-3, 38, 14);
-
- //draw the head
- fill(243, 211, 174);
- ellipse(playerX, playerY-5, 18, 18);
-
-
- //draw the hair
- fill(255, 255, 0);
- beginShape();
- vertex(playerX-12, playerY+12);
- vertex(playerX-4, playerY+6);
- vertex(playerX, playerY+20);
- vertex(playerX+4, playerY+6);
- vertex(playerX+12, playerY+12);
- vertex(playerX+8, playerY);
- vertex(playerX+20, playerY+4);
- vertex(playerX+8, playerY-12);
- vertex(playerX+6, playerY-8);
- vertex(playerX+2, playerY-14);
- vertex(playerX, playerY-10);
- vertex(playerX-2, playerY-14);
- vertex(playerX-6, playerY-8);
- vertex(playerX-8, playerY-12);
- vertex(playerX-20, playerY+4);
- vertex(playerX-8, playerY);
- endShape(CLOSE);
- }
-
- //draw player when facing right
- else if (direction == 1) {
-
- //draw hands
- fill(243, 211, 174);
- ellipse(playerX+10, playerY+15, 9, 9);
- ellipse(playerX+10, playerY-15, 9, 9);
-
- //draw the body
- fill(10, 20, 190);
- ellipse(playerX+3, playerY, 14, 38);
-
- //draw the head
- fill(243, 211, 174);
- ellipse(playerX+5, playerY, 18, 18);
-
- //draw the hair
- fill(255, 255, 0);
- beginShape();
- vertex(playerX-12, playerY-12);
- vertex(playerX-6, playerY-4);
- vertex(playerX-20, playerY);
- vertex(playerX-6, playerY+4);
- vertex(playerX-12, playerY+12);
- vertex(playerX, playerY+8);
- vertex(playerX-4, playerY+20);
- vertex(playerX+12, playerY+8);
- vertex(playerX+8, playerY+6);
- vertex(playerX+14, playerY+2);
- vertex(playerX+10, playerY);
- vertex(playerX+14, playerY-2);
- vertex(playerX+8, playerY-6);
- vertex(playerX+12, playerY-8);
- vertex(playerX-4, playerY-20);
- vertex(playerX, playerY-8);
- endShape(CLOSE);
- }
-
- //draw player when facing down
- else if (direction == 2) {
-
- //draw hands
- fill(243, 211, 174);
- ellipse(playerX+15, playerY+10, 9, 9);
- ellipse(playerX-15, playerY+10, 9, 9);
-
- //draw the body
- fill(10, 20, 190);
- ellipse(playerX, playerY+3, 38, 14);
-
- //draw the head
- fill(243, 211, 174);
- ellipse(playerX, playerY+5, 18, 18);
-
- //draw the hair
- fill(255, 255, 0);
- beginShape();
- vertex(playerX-12, playerY-12);
- vertex(playerX-4, playerY-6);
- vertex(playerX, playerY-20);
- vertex(playerX+4, playerY-6);
- vertex(playerX+12, playerY-12);
- vertex(playerX+8, playerY);
- vertex(playerX+20, playerY-4);
- vertex(playerX+8, playerY+12);
- vertex(playerX+6, playerY+8);
- vertex(playerX+2, playerY+14);
- vertex(playerX, playerY+10);
- vertex(playerX-2, playerY+14);
- vertex(playerX-6, playerY+8);
- vertex(playerX-8, playerY+12);
- vertex(playerX-20, playerY-4);
- vertex(playerX-8, playerY);
- endShape(CLOSE);
- }
-
- //draw player when facing left
- else if (direction == 3) {
-
- //draw hands
- fill(243, 211, 174);
- ellipse(playerX-10, playerY-15, 9, 9);
- ellipse(playerX-10, playerY+15, 9, 9);
-
- //draw the body
- fill(10, 20, 190);
- ellipse(playerX-3, playerY, 14, 38);
-
- //draw the head
- fill(243, 211, 174);
- ellipse(playerX-5, playerY, 18, 18);
-
- //draw the hair
- fill(255, 255, 0);
- beginShape();
- vertex(playerX+12, playerY+12);
- vertex(playerX+6, playerY+4);
- vertex(playerX+20, playerY);
- vertex(playerX+6, playerY-4);
- vertex(playerX+12, playerY-12);
- vertex(playerX, playerY-8);
- vertex(playerX+4, playerY-20);
- vertex(playerX-12, playerY-8);
- vertex(playerX-8, playerY-6);
- vertex(playerX-14, playerY-2);
- vertex(playerX-10, playerY);
- vertex(playerX-14, playerY+2);
- vertex(playerX-8, playerY+6);
- vertex(playerX-12, playerY+8);
- vertex(playerX+4, playerY+20);
- vertex(playerX, playerY+8);
- endShape(CLOSE);
- }
- }
-
-
- ///**\\\ S C R E E N 0 F U N C T I O N S ///**\\\
-
-
- /*/ BACKGROUND /*/
-
- //draw path\\
-
- void drawPath() {
- noStroke();
- fill(240, 220, 50);
- rect(groundX+75, groundY-500, 100, 1050);
- rect(groundX-500, groundY+450, 675, 100);
- rect(groundX+75, groundY+25, 338, 100);
- rect(groundX+313, groundY-50, 100, 175);
- }
-
-
- //draw house\\
-
- void drawHouse() {
- //draw main building
- stroke(0);
- fill(140, 0, 0);
- rect(groundX+275, groundY-300, 425, 250);
-
- //draw door step
- fill(200);
- rect(groundX+325, groundY-50, 75, 25);
-
- //draw door
- fill(255);
- ellipse(groundX+383, groundY-42, 5, 5);
- fill(150, 80, 0);
- rect(groundX+338, groundY-50, 50, 8);
-
- //tell player the door is locked if they are within range of door
- fill(255);
- textSize(14);
- if (playerX>groundX+300 && playerX<groundX+400 && playerY>groundY-50 && playerY<groundY+8) {
- text("The door is locked", groundX+300, groundY-75);
- }
-
- //prevent player from walking through walls of building
-
- if (playerX>groundX+256 && playerY<groundY-31 && playerY>=groundY-41) {
- playerY=playerY+speed;
- if (dash){
- playerY = playerY + dashSpd;
- }
- }
- if (playerY<groundY-31 && playerX>groundX+256 && playerX<=groundX+266) {
- playerX=playerX-speed;
- if (dash){
- playerX = playerX - dashSpd;
- }
- }
- }
-
-
-
- /*/ PLAYER CONTROLS /*/
-
- //when player presses a WASD key, the move variable (up,right,down,left) is activated\\
-
- void wasdPress() {
- if (key == 'w') {
- up = true;
- } else if (key == 'd') {
- right = true;
- } else if (key == 's') {
- down = true;
- } else if (key == 'a') {
- left = true;
- }
- if (key == ' '){
- dash = true;
- }
- }
-
-
-
- //when player releases WASD key, it disables the move variable (up,right,down,left)\\
-
- void wasdRelease() {
- if (key == 'w') {
- up = false;
- }
- if (key == 'd') {
- right = false;
- }
- if (key == 's') {
- down = false;
- }
- if (key == 'a') {
- left = false;
- }
- if (key == ' '){
- dash = false;
- }
- }
-
-
-
- //when a move variable (up,right,down,left) is activated, the player is moved in the correct direction and the direction of the sprite is set to the direction player moves in\\
-
- void wasdMove() {
- if (up) {
- playerY = playerY - speed;
- direction = 0;
- if (dash){
- playerY = playerY - dashSpd;
- }
- } else if (right) {
- playerX = playerX + speed;
- direction = 1;
- if (dash){
- playerX = playerX + dashSpd;
- }
- } else if (down) {
- playerY = playerY + speed;
- direction = 2;
- if (dash){
- playerY = playerY + dashSpd;
- }
- } else if (left) {
- playerX = playerX - speed;
- direction = 3;
- if (dash){
- playerX = playerX - dashSpd;
- }
- }
- }
-
-
- //when player moves 75 pixels away from border, translate board and player away from border to simulate scrolling screen
-
- void scroll(){
- if (playerY<100) {
- playerY = playerY + speed;
- groundY = groundY + speed;
- if (dash){
- playerY = playerY + dashSpd;
- groundY = groundY + dashSpd;
- }
- } if (playerX>300) {
- playerX = playerX - speed;
- groundX = groundX - speed;
- if (dash){
- playerX = playerX - dashSpd;
- groundX = groundX - dashSpd;
- }
- } if (playerY>300) {
- playerY = playerY - speed;
- groundY = groundY - speed;
- if (dash){
- playerY = playerY - dashSpd;
- groundY = groundY - dashSpd;
- }
- } if (playerX<100) {
- playerX = playerX + speed;
- groundX = groundX + speed;
- if (dash){
- playerX = playerX + dashSpd;
- groundX = groundX + dashSpd;
- }
- }
- }