QuietKillah
Legacy Member
hoi, ik maak blokken en zit in de problemen met het tetris gedeelte.
namelijk het vallen, en stoppen als hij naar links en rechts gaat (het blokje) lukt niet naar behoren. Ook het rotaten weet ik niet goed hoe aan te beginnen.
ziehier wat ik al heb:
voor het vallen:
na het tweede blokje dat gevallen is, komt er een nieuwe vraag, maar dan blijft het 2e blokje doorvallen, en blijft hij de trace(field) dus tonen.
stoppen aan zijkanten:
en voor rotaten
:
namelijk het vallen, en stoppen als hij naar links en rechts gaat (het blokje) lukt niet naar behoren. Ook het rotaten weet ik niet goed hoe aan te beginnen.
ziehier wat ik al heb:
voor het vallen:
na het tweede blokje dat gevallen is, komt er een nieuwe vraag, maar dan blijft het 2e blokje doorvallen, en blijft hij de trace(field) dus tonen.
Code:
private function drop(event:TimerEvent):void
{
var tempField= new Array();
var hit:Boolean = checkHit(tempField);
if (hit == false)
{
field = tempField;
Shape.y += 23;
}
else
{
trace("done");
for(var iii=0;iii<20;iii++)
{
for(var jjj=0;jjj<10;jjj++)
{
if (field[iii][jjj] == 2)
{
field[iii][jjj] = 1;
}
}
}
trace(field);
aantalBlokken++;
//stelvraag();
trace(aantalBlokken);
if (aantalBlokken<2){
getBlok();}
else{
if(vraag<5){
vraag++;
stelvraag();
aantalBlokken=0;}
else{
trace("ronde 2");
}
}
}
}
stoppen aan zijkanten:
Code:
private function move(direction:String):void{
var tempField= new Array();
var hit:Boolean;
if (direction=="left"){
hit = checkSides(tempField,"left");
if (hit == false){
field = tempField;
Shape.x -= 23;}
}else if(direction=="right"){
hit = checkSides(tempField,"right");
if (hit == false){
field = tempField;
Shape.x += 23;}
}else if(direction=="rotate"){
}
}
private function checkSides(tempField:Array,direction:String):Boolean{
var side:Boolean = false;
for(var i = 0; i < 20; i++)
{
tempField.push(new Array());
for(var j = 0; j < 10; j++)
{
tempField[i][j] = 0;
}
}
for(var ii = 0; ii < 20; ii++)
{
for(var jj = 0; jj < 10; jj++)
{
if (field[ii][jj] == 2)
{
if (jj < 10 && jj>0)
{
if(direction=="right"){
if (field[ii][jj+1] != 1)
{
//trace(field);
tempField[ii][jj+1] = 2;
}
else
{
trace("hier");
side = true;
}}else if(direction=="left"){
if (field[ii][jj-1] != 1)
{
//trace(field);
tempField[ii][jj-1] = 2;
}
else
{
trace("hier");
side = true;
}
}
}
else
{
side = true;
}
}
else if (field[ii][jj]==1)
{
tempField[ii][jj] = 1;
}
}
}
return side;
}
en voor rotaten
:
Code:
//geen idee hoe te beginnen