Vraag mbt Processing

Status
Niet open voor verdere reacties.

Mac86

Nieuwe gebruiker
Lid geworden
24 jun 2015
Berichten
1
Hoi mensen,
Ik zit met een probleem ik ben met een Processing project bezig wat ik met commands moet leveren.
Nu weet ik niet zeker of ik het goed gedaan heb.
Mijn vraag is kan er iemand mij helpen.
Alvast bedankt.

Code:
color col=color(0,56,100);//kleur van de slang + kleur van de tekst
color foodColor = color(100,0,4);//kleur van de voedsel
float speed = 100;//aanmaken van de waarde speed
int a, b;//aanmaken maken van 2 variable

int moveA = 0;//aanmaken variable beweeg
int moveB = 0;//aanmaken variable beweeg
int snakeA = 0;//aanmaken variable snake
int snakeB = 0;//aanmaken variable snake
int foodA = -1;//aanmken variable voedsel
int foodB = -1;//aanmaken variable voedsel
boolean check = true;//Een boolean is een variabele die twee waarden kan hebben, true/false
int []slangA;//aanmaken variable
int []slangB;//aanmaken variable
int snakeSize = 1;//snake maat aan het begin 1px
int windowSize = 200;//canvas afmeting
boolean gameOver = false;////Een boolean is een variabele die twee waarden kan hebben, true/false GAME OVER
PFont Font = createFont("Arial",20, true);//laat font zien Arial 20px maakt font

void setup(){//setup
  size(int(windowSize), int(windowSize),P3D);//effectiver omgaan met de hardware. https://processing.org/tutorials/p3d/
  
  speed = 100;//snelheid
  speed=speed/frameRate;//het aantal frames wat per seconde wordt aangegeven
  slangA = new int[30];//aanmaken variable hoeveel voedsel
  slangB = new int[30];//aanmaken variable hoeveel voedsel
 
  a = width/1;//de manier waarop de slang het voedsel op eet verhoog je dit wordt dit minder precies en gaat hij daar d pixel heen
  b = height/1;//de manier waarop de slang het voedsel op eet verhoog je dit wordt dit minder precies en gaat hij daar d pixel heen
  
  snakeA = a-5;//laat slang beginnen en maak de pixels goed dat de slang niet over de pixel gaat en dat hij hem niet kan pakken
  snakeB = b-5;//laat slang beginnen en maak de pixels goed dat de slang niet over de pixel gaat en dat hij hem niet kan pakken
  foodA = -1;//food gaat niet uit het scherm
  foodB = -1;//food gaat niet uit het scherm
  gameOver = false;//gameover
  check = true;//controleer of het klopt
  snakeSize =1;//maat van de slang
}
 
void draw(){
  
  if(speed%8 == 0){//snelheid van de slan 1 is zeer snel 100 heel langzaam
    background(120);//achtergrond kleur
    runGame();//start spel
  }
  else {//else statements
  }

  speed++;//snelheid
}

void runGame(){//run game
  if(gameOver== false){//game over 
  
    drawfood();//teken food
    drawSnake();//teken slang
    snakeMove();//beweeg slang
    eetFood();//eet voedsel
    checkHitSelf();//zelf aanraking
  }else{
      String modelString = "game over loser";//melding bij game over
      textAlign (CENTER);//tekst uitgelijnd in het midden 
      textFont(Font);//lettertype
      text(modelString,100,100,40); //grote en afstand van letters
  }
}
void checkHitSelf(){//kijk of je geraakt ben
   for(int i = 9; i < snakeSize; i++){
       if(snakeA == slangA[i] && snakeB== slangB[i]){//komt voor en achterkant met elkaar in aanraking
          gameOver = true; //gameover
      }
   }  
}
void eetFood(){//eet voedsel
  if(foodA == snakeA && foodB == snakeB){//als slang voedsel eet lang wordt groter en voedsel verdwijnt
     check = true;//kijk of het waar is
     snakeSize++; //lang wordt grote bij het eten
  }
}
void drawfood(){
  fill(foodColor);//food color
  while(check){
    int x = (int)random(1,windowSize/10);//scherm waar het voedsel zichtbaar is voedsel gaat niet buiten het beeld   
    int y =  (int)random(1,windowSize/10);//scherm waar het voedsel zichtbaar is voedsel gaat niet buiten het beeld
    foodA = 5+x*10;//wegzetten van voedsel
    foodB = 5+y*10;//wegzetten van voedsel
    
    for(int i = 0; i < snakeSize; i++){
       if(x == slangA[i] && y == slangB[i]){
         check = true;
         i = snakeSize;
       }else{
         check = false; 
       }
    }
    
  }
  
  rect(foodA-5, foodB-5, 10, 10);
    
}
void drawSnake(){
  fill(col);

  for(int i = 0; i < snakeSize; i++) {
    int X = slangA[i];
    int Y = slangB[i];
    rect(X-5,Y-5,10,10);//slang maat in px
  }
  
  for(int i = snakeSize; i > 0; i--){
    slangA[i] = slangA[i-1];
    slangB[i] = slangB[i-1];
  }
}

void snakeMove(){
  snakeA += moveA;
  snakeB += moveB;
  if(snakeA > windowSize-2 || snakeA < 2||snakeB > windowSize-2||snakeB < 2){ 
     gameOver = true; 
  }
  slangA[0] = snakeA;
  slangB[0] = snakeB;
  
}
 
void keyPressed() {//toetsen up down rechts links
  if(keyCode == UP) {  if(slangB[1] != slangB[0]-10){moveB = -10; moveA = 0;}}//toetsen aanroepen omhoog getallen in voor de smooth heid
  if(keyCode == DOWN) {  if(slangB[1] != slangB[0]+10){moveB = 10; moveA = 0;}}//toetsen aanroepen omlaag getallen in voor de smooth heid
  if(keyCode == LEFT) { if(slangA[1] != slangA[0]-10){moveA = -10; moveB = 0;}}//toetsen aanroepen links getallen in voor de smooth heid
  if(keyCode == RIGHT) { if(slangA[1] != slangA[0]+10){moveA = 10; moveB = 0;}}//toetsen aanroepen rechts
}
 
Wil je misschien het volgende aangeven. Wat is je verwachting, waar verwacht je het en wat denk je dat er fout gaat?
 
Gezien het bericht van 24 juni is wil ik alleen even de tip meegeven om commentaar niet te misbruiken.

Leer ook javadoc te gebruiken. Zeker voor grotere projecten is het een zegen.

Daar komt overigens toch nog bij dat er niet gedeclareerde variabelen gebruikt worden, variabelen meerdere malen dezelfde waarden (onnodig) toegekend krijgen en OO ver te zoeken is.

Al met al een rommeltje dat mij doet afvragen welke lesstof je gebruikt.

Voorbeelden (ik heb er maar even twee die direct opvielen uitgelicht):
Dezelfde waarde wordt 2 keer toegekend aan een variabele:
Code:
float speed = 100;//aanmaken van de waarde speed
Code:
speed = 100;//snelheid
Wat betekent frameRate in deze context?
Code:
speed=speed/frameRate;//het aantal frames wat per seconde wordt aangegeven
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan