Advertising
- Nasty tracing code 2
- Friday, June 1st, 2012 at 10:02:17am MDT
- /*
- ---------------------------------------------------
- Variabler for mouseDown(), mouseUp(), trackMouse() og traceComplete()
- */
- /*
- var xList = new Array(); //DETTE ARRAYET SKAL FYLLES MED X-KOORDINATENE FRA KOORDINATFILENE
- var yList = new Array(); //DETTE ARRAYET SKAL FYLLES MED Y-KOORDINATENE FRA KOORDINATFILENE
- */
- var xPos;
- var yPos;
- var i = 0;
- var iBreak = 0;
- var isMouseDown = false;
- var points = 0;
- var pointCountdown = 100;
- var pointsTotal = 0;
- var canvas = document.getElementById("content");
- var ctx = canvas.getContext("2d");
- ctx.font="12px Tahoma";
- ctx.fillStyle="#FF0000";
- ctx.shadowBlur=10;
- ctx.shadowOffsetX=10;
- ctx.shadowOffsetY=10;
- complete = false;
- /*
- ---------------------------------------------------
- Variabler for loadImage()
- */
- var arrST = new Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "Æ", "Ø", "Å", "Ferdig");
- var arrSM = new Array("a1", "b1", "c1", "d1", "e1", "f1", "g1", "h1", "i1", "j1", "k1", "l1", "m1", "n1", "o1", "p1", "q1", "r1", "s1", "t1", "u1", "v1", "w1", "x1", "y1", "z1", "æ1", "ø1", "å1", "Ferdig");
- var counterST = 0;
- var counterSM = 0;
- var counter = 0;
- var sel;
- /*
- ---------------------------------------------------
- MIDLERTIDIGE ARRAYS KUN FOR DEMOVERSJONEN
- Holder koordinatene til A, B, C for enkel fylling av xList og yList
- */
- var arrayAX = new Array("64","85","106","123","144","163","185","202","225","244","265","285","310","332","348","-","164","203","243","F");
- var arrayAY = new Array("427","382","337","294","248","201","153","121","171","211","255","305","347","399","435","-","283","283","283","F");
- var arrayBX = new Array("118","118","118","118","118","118","118","118","118","118","118","-","117","161","215","250","270","272","251","220", "171","143","193","237","271","283","280","262","230","187","146","118","F");
- var arrayBY = new Array("77","111","141","175","208","246","282","313","345","377","408","-","77","75","78","97","133","171","203","230","238","237","239","250","277","313","343","378","400","407","408","408","F");
- var arrayCX = new Array("327","285","237","185","139","101","79","73","85","114","157","217","288","342","F");
- var arrayCY = new Array("98","82","76","83","104","144","191","244","301","345","381","404","407","389","F");
- //TESTVARIABLER
- var xList = arrayAX;
- var yList = arrayAY;
- //DE TO FØLGENDE FUNKSJONER KALLES AV onmousedown OG onmouseup I HTML'EN ( <body onmouseup = mouseUp() onmousedown = mouseDown()> <img onmousemove = trackMouse() /> </body> )
- function mouseDown(){
- isMouseDown = true;
- }
- function mouseUp(){
- isMouseDown = false;
- if(!complete){
- i = iBreak;
- points = 0;
- ctx.clearRect(0,0,400,500);
- ctx.fillText(pointsTotal,130,11);
- }
- }
- function trackMouse(){
- if(isMouseDown){
- complete = false;
- xPos = event.pageX;
- yPos = event.pageY;
- if(pointCountdown>0){
- pointCountdown--;
- }else{
- isMouseDown = false;
- i = iBreak;
- }
- /*
- //Kode for å tegne streker med musepeker
- //VIRKER IKKE :(
- ctx.strokeStyle = "black";
- ctx.lineWidth = 3;
- ctx.lineCap = "round";
- ctx.beginPath();
- ctx.moveTo(xPos,yPos);
- ctx.lineTo(xPos+1,yPos+1);
- ctx.stroke();
- */
- //Sjekk at både xPos og yPos er i nærheten av neste koordinat i rekkken
- //"I nærheten" betyr her at det gis en margin på pluss/minus 20 piksler (strekene i bokstavene er ca 50 piksler brede; pluss/minus 20 piksler fra midt i tar deg nesten ut til kanten)
- if(xPos<=(xList[i]+5) && xPos>=(xList[i]-5)){
- //xPos er i nærheten, da tester vi yPos - begge må være nært for å passere!
- if(yPos<=(yList[i]+5) && yPos>=(yList[i]-5)){
- //HVIS DU NÅR INN HIT HAR MUSEPEKEREN PASSERT ET CHECKPOINT
- i++;
- points += pointCountdown; //Gi poeng
- pointCountdown = 100; //Nullstill pointCountdown
- ctx.clearRect(0,0,400,500);
- ctx.fillText(pointsTotal + points,130,11);
- //Vi må også sjekke om neste koordinat er et brytningspunkt (at bruker må løfte fingeren av skjermen/musen for å begynne på en ny strek)
- //Disse indikeres i koordinatfilene og dermed også i xList og yList som en dash (bindestrek; "-")
- if(xList[i] == "-" && yList[i] == "-"){
- isMouseDown = false; //Ved å sette isMouseDown til false sørger vi for at trackMouse() ikke gjør noe inntil museknappen slippes og trykkes ned på nytt
- i++; //Vi går videre i koordinatene og er klare for ny strek
- iBreak = i; //Lagre hvor break'en er...
- complete = true; //Første strek er complete, vi setter den til false ved neste klikk...
- }else if(xList[i] == "F" && yList[i] == "F"){
- traceComplete(); //Hvis bokstaven "F" dukker opp i koordinatarray'et har vi passert siste punkt og trace'en er ferdig. Da kjøres traceComplete()
- }
- //DU BØR OGSÅ GI VISUELL TILBAKEMELDING PÅ FREMGANG, DETTE GJØR FUNKSJONEN traceProgress()
- //traceProgress();
- }
- }
- }
- }
- function traceComplete(){
- pointsTotal += points;
- complete = true;
- ctx.clearRect(0,0,400,500);
- i = 0;
- iBreak = 0;
- pointCountdown = 100;
- document.getElementById('content').style.background = "url('./images/finish.png')";
- if(xList == arrayAX){
- xList = arrayBX;
- yList = arrayBY;
- }else if(xList == arrayBX){
- xList = arrayCX;
- yList = arrayCY;
- }
- setTimeout(function() {loadImage(sel);},5000);
- }
- function loadImage(){
- sel = arguments[0];
- menu = arguments[1];
- if(!complete && pointsTotal > 0 && menu == "m"){
- pointsTotal = 0;
- }
- complete = false;
- ctx.clearRect(0,0,400,500);
- ctx.fillText(pointsTotal,130,11);
- if (sel=="cap"){
- if(counterST < arrST.length){
- var imag = './images/' +arrST[counterST]+'.png';
- document.getElementById('content').style.background = 'url('+imag+')';
- /*
- //Her skal funksjon for å hente tilsvarende koordinater være
- loadCoordinates(arrST[counterST]);
- */
- }else if(counterST == arrST.length){
- counterST = 0;
- }
- counterST++;
- counterSM = 0;
- counter = 0;
- }else if (sel=="small"){
- if(counterSM < arrSM.length){
- var imag = 'images/' +arrSM[counterSM]+'.png';
- document.getElementById('content').style.background = 'url('+imag+')';
- /*
- //Her skal funksjon for å hente tilsvarende koordinater være
- loadCoordinates(arrSM[counterSM]);
- */
- }else if(counterSM == arrSM.length){
- counterST = 0;
- }
- counterSM++;
- counterST = 0;
- counter = 0;
- }else if (sel=="num"){
- if(counter < 10){
- var imag = 'images/' +counter+'.png';
- document.getElementById('content').style.background = 'url('+imag+')';
- /*
- //Her skal funksjon for å hente tilsvarende koordinater være
- loadCoordinates(arrST[counter]);
- */
- }else if(counter == 10 && sel == "num"){
- counter = 0;
- var imag = 'images/' +counter+'.png';
- document.getElementById('content').style.background = 'url('+imag+')';
- }
- counter++;
- counterSM = 0;
- counterST = 0;
- }else{
- alert("Invalid command! How did you do that? Naughty, naughty...");
- }
- }
advertising
Update the Post
Either update this post and resubmit it with changes, or make a new post.
You may also comment on this post.
Please note that information posted here will expire by default in one month. If you do not want it to expire, please set the expiry time above. If it is set to expire, web search engines will not be allowed to index it prior to it expiring. Items that are not marked to expire will be indexable by search engines. Be careful with your passwords. All illegal activities will be reported and any information will be handed over to the authorities, so be good.