Avatar billede jacob_m Nybegynder
04. december 2002 - 21:27 Der er 60 kommentarer og
1 løsning

Hjælp til bilspil..

Jeg har altid drømt om at lave et bilspil, og er nu så endeligt gået igang. Men jeg har endel begynder problemer..

Jeg er ved at programmere banen, så når man støder ind i en bande, så rykker bilen baglæns. Det har jeg også lavet, men hvis man bliver ved med at trykke køre bilen bare langtsomt igennem. Jeg bruger variablan HitTest. Er der nogle der har en teori om hvordan man kan lave det. Og i det hele taget viden om hvordan man udvikler spil i flash ?

/Jacob..
Avatar billede hoejrup Nybegynder
04. december 2002 - 22:59 #1
Så skal du bare lave din bande bredere.

/per
Avatar billede hoejrup Nybegynder
04. december 2002 - 23:00 #2
Mit firma udvikler spil i Flash, men du laver det sikkert kun for sjovt.

/per
Avatar billede baitianlong Nybegynder
05. december 2002 - 07:42 #3
Det er nok fordi du kører if(Key.isDown...) i enterFrame, derfor "ophæver" dens script det andet. Du kan evt. skrive noget hen ad dette i din hitTest

frame++;
if(frame > 20) {
  if(bil.hitTest(bande)) {
      bil.speed =- speed;
      frame = 0;
}

Så går der jo 20 frames før den virker igen...

Eller du kan...

if(bil.hitTest(_root.bande)) {
  speed = -Math.abs(speed);
}

Så risikerer du ikke at den skifter fra fremad til bagud hele tiden (måske er det det der sker) - ellers må du kopiere din kode på bilen ind her (o;
Avatar billede jacob_m Nybegynder
05. december 2002 - 16:26 #4
ja.... Den kommer her.. Men jeg eftersøgte sider der omhandler at lave Flash-SPil..

Alt kodning er lagt på bilens MC

----------------------- Kode -----------------------------

onClipEvent (enterFrame) {
    // This code will advance the car forward.
    if (Key.isDown(Key.UP)) {
        speed += 1;
    }
    // This will make the car go backwards
    if (Key.isDown(Key.DOWN)) {
        speed -= 2;
    }
    // The car will start to slow down after the speed of 25
    if (Math.abs(speed)>25) {
        speed = 24;
    }
    // This will change the angle of the car
    if (Key.isDown(Key.LEFT)) {
        _rotation -= 10;
    }
    if (Key.isDown(Key.RIGHT)) {
        _rotation += 10;
    }
    // This will make the car move
    speed *= .98;
    x = Math.sin(_rotation*(Math.PI/180))*speed;
    y = Math.cos(_rotation*(Math.PI/180))*speed*-1;
    if (!_root.move.hitTest(_x+x, _y+y, true)) {
        _x += x;
        _y += y;
    } else {
        speed *= -.6;
    }
    // This is the collision test
    if (this.hitTest(_root.bane)) {
        speed *=-.50;
    }
    if (this.hitTest(_root.bane1)) {
        speed *=-.50;
    }
    if (this.hitTest(_root.bane2)) {
        speed *=-.50;
    }
    if (this.hitTest(_root.bane3)) {
        speed *=-.50;
    }
    if (this.hitTest(_root.bane4)) {
        speed *=-.50;
    }
    if (this.hitTest(_root.bane5)) {
        speed *=-.50;
    }
    if (this.hitTest(_root.bane6)) {
        speed *=-.50;
    }
    if (this.hitTest(_root.bane7)) {
        speed *=-.50;
    }
}

-------------------------------------------------------------
Avatar billede jacob_m Nybegynder
05. december 2002 - 16:31 #5
Her kan man prøve spillet:

http://aero.greyz.dk/spil.swf
Avatar billede pyroman Nybegynder
10. december 2002 - 11:46 #6
Jeg har lavet et lignende spil, men her har jeg gjort det sådan at man bliver forhindret i at gå enten forlæns eller baglæns efter hvilken vej du peger mod muren. Nu kan jeg godt nok ikke se din .swf fil, da jeg sidder ved en åndsvag Imac, men jeg tro du kan lave banderne på en nemmere måde:
Du laver et stor MC hvor du tegner banderne - kun banderne. Du ændre så bare lidt på dit script:

if (_root.bandeMC.hitTest (_x, _y-_height/2, true) (
  speed *= -.50;
)
if (_root.bandeMC.hitTest (_x, _y+_height/2, true) (
  speed *= -.50;
)
if (_root.bandeMC.hitTest (_x-_width/2, _Y, true) (
  speed *= -.50;
)
if (_root.bandeMC.hitTest (_x+_width/2, _Y, true) (
  speed *= -.50;
)
Jeg kan prøve at kigge på det script jeg har lavet til mit spil, men de bliver ikke lige nu.
Ang det med udvikling af spil, så prøv klassikeren:
htttp://www.flashkit.com - under tutorials

/Filip
Avatar billede jacob_m Nybegynder
10. december 2002 - 21:25 #7
Det har jeg.. Men mange tak for forslaget.. Vil prøve..
Avatar billede jacob_m Nybegynder
10. december 2002 - 22:21 #8
Skal Actionen ligge på bilens MC eller bandens MC?
Avatar billede pyroman Nybegynder
11. december 2002 - 11:57 #9
bilens...
Avatar billede jacob_m Nybegynder
11. december 2002 - 17:01 #10
ok..
Avatar billede jacob_m Nybegynder
15. december 2002 - 19:15 #11
Det fungere stadig ikke..
Avatar billede barklund Nybegynder
15. december 2002 - 19:20 #12
Det sikre måde er at lave fire punkter på bilen og lave hittest for hver af dem - hvis forenden kører ind i banden, skal den tilbage - hvis bagenden skal den frem...
Avatar billede jacob_m Nybegynder
15. december 2002 - 19:48 #13
BARKLUND>> Er det noget du har erfarning med...
Avatar billede barklund Nybegynder
15. december 2002 - 20:06 #14
Yup...

Se for eksempel http://games.cr-v.dk -> "Rival Survival"...

Her består hver bil af noget grafik og inde i dette er der 6 movieclips, og der bliver så hele tiden kørt hittest på alle disse, for at se om bilerne er kørt ind i hinanden eller ind i banden... Tre af bilerne kører noget med noget dummy-"intelligens", mens den sidste styres af brugeren - de har alle samme engine for at se om de rammer hinanden...
Avatar billede barklund Nybegynder
15. december 2002 - 20:07 #15
Der er selvfølgelig 6 punkter, da en bil kan køre direkte ind i siden på en anden uden at røre hjørnerne, så de to sidste punkter ligger midt på hver langside...
Avatar billede jacob_m Nybegynder
15. december 2002 - 20:12 #16
OKay..... Er det sådan at du vil hjælpe mig lidt.. Med sådan en "motor"?..
Avatar billede barklund Nybegynder
15. december 2002 - 20:19 #17
Nope :o)

Men det er jo ikke noget problem - blot en enterFrame der laver hitTest mellem alle bilens punkter og banden og bestemmer hvor mange punkter der er over banden og hvis den er, hvor bilen skal hoppe hen...
Avatar billede jacob_m Nybegynder
15. december 2002 - 20:22 #18
Jeg har fundet ud af hvordan man stopper bilen osv. Men når man så blvier hved med at trykke fremad, så køre den langsomt igennem?.. Hvorfor det i teorien?
Avatar billede barklund Nybegynder
15. december 2002 - 20:32 #19
Det skrev jeg engang en lang smøre om i dette spørgsmål, men så kom der en fejl, og jeg gad ikke igen, men okay:

Forestil dig at bilen holder stille lige foran banden, der er 0px derhen. Bruger trykker hele tiden fra nu af. Bilen bevæger sig på enterFrame som nedenfor:

1:
speed+=1 => speed = 1;
_x += speed => _x = bande+1;
hittest => speed = -0.5

2:
speed+=1 0> speed = 0.5
_x += speed => _x = bande+1.5
hittest => speed = -0.25

3:
speed+=1 0> speed = 0.75
_x += speed => _x = bande+2.25
hittest => speed = -0.375

Ser du, at bilen kommer længere og længere ind over banden, da du kun trækker halvdelen af hastigheden fra hver gang, men lægger "1" til alligevel?

Ideen er, at du først skal lave hittest, og hvis den ikke rammer banden, så lægger du en til speed og tilføjer speed, men hvis den gør, så skal du ikke tilføje speed... Fejl kan dog alligevel opstå:

Bilen er lige foran banden og har en hastighed på 20, der er 0px hen til banden, brugeren holder fremad nede, men der påvirker ikke, da der er hittest:

1:
_x += speed => _x = bande+20
hittest => speed *= -0.5 => speed = -10

2:
_x += speed => _x = bande+10
hittest => speed *= -0.5 => speed = 5

3:
_x += speed => _x = bande+15
hittest => speed *= -0.5 => speed = -2.5

Kan du stadig se, at den nu kommer til at sidde fast inde over banden? Derfor ksal du også som foreslået af legende kun gøre speed negativ, hvis man er over banden:

hittest => speed = -0.5*Math.abs(speed)

Men så giver det fejl hvis man bakker ind i en bande... Derfor skal du vide, hvilken ende af bilen, der rammer banden...

/Barklund
Avatar billede jacob_m Nybegynder
15. december 2002 - 20:35 #20
Noget alla dette her:

--------------- Prøve på fremad kørende-----------------

    if (Key.isDown(Key.UP)) {
            if (this.hitTest(_root.bane)) {
        speed = -Math.abs(speed);
    }else{
        speed += 1;
    }

----------------------------------------------------
Avatar billede barklund Nybegynder
15. december 2002 - 20:38 #21
Narj... heller putte en if(hittest) hele vejen udenom alle if (Key)-statements... og så ingenting i else...

Altså de fem if-udtryk efter de hinanden, der sætte hastigheden og rotationen... Og så ellers lade resten være ned til din speed *= -.6, som skal være speed = -.6*Math.abs(speed)
Avatar billede jacob_m Nybegynder
15. december 2002 - 20:46 #22
OKay... min HITTEST ser jo således ud:

if(this.hitTest(_root.band))

Hvordan ændre jeg den til at hvis den IKKE rør?
Avatar billede barklund Nybegynder
15. december 2002 - 20:48 #23
"!" er logisk NOT, som laver true til false og omvendt:

if(!this.hitTest(_root.band))
Avatar billede jacob_m Nybegynder
15. december 2002 - 20:49 #24
Sefølig.. Jeg satte bare ! forkert.. Jeg satte det foran _root.bande--
Avatar billede jacob_m Nybegynder
15. december 2002 - 20:51 #25
YEARH.. Det fungere.... FEDT...Kan jeg lave alle "stregerne" i ét MC eller skal det være forskellige?
Avatar billede barklund Nybegynder
15. december 2002 - 20:54 #26
Banden? Når flash sammenligner to movieclips for hittest, så bruger den deres bounding box - altså de rektangel som de hver især udspænder... Den kigger ikke efter, om der rent faktisk er noget grafik inden under, så nej...
Avatar billede jacob_m Nybegynder
15. december 2002 - 20:56 #27
Det var lige det.. Det er den blå streg ik.. Så jeg skal bare lave en masse MC med samme INSTANCE navn
Avatar billede barklund Nybegynder
15. december 2002 - 20:58 #28
næ... Det vil heller ikke virke... Du skal lave en løkke, der tjekker et movieclip af gangen og til sidst finder ud af, om du regner nogen af dem:

hitBande = false;
for (i = 0; i < antalBander && !hitBande; i++) {
    hitBande = this.hitTest(_root["bande"+i]);
}
if (hitBande) {
    // blabla
}

Okay?
Avatar billede jacob_m Nybegynder
15. december 2002 - 21:17 #29
Jeg er ikke sikker.. Men skal den forstås sådan=

antalbadner = et tal f.eks. 2 eller hvad

hitBande = false;
for (i = 0; i < antalBander && !hitBande; i++) {
    hitBande = this.hitTest(_root["bande"+i]);
}
if (hitBande) {
    // blabla
}
Avatar billede barklund Nybegynder
15. december 2002 - 21:21 #30
ja, selvfølgelig... hvad ellers? :o)
Avatar billede barklund Nybegynder
15. december 2002 - 21:22 #31
Og dine bander hedder bande0, bande1, bande2 og så videre
Avatar billede jacob_m Nybegynder
15. december 2002 - 21:23 #32
aha...

og navnet bande0, bande1... Skal det være et instance navn eller navnet på hele MC?
Avatar billede barklund Nybegynder
15. december 2002 - 21:26 #33
det er kun en slags navne i al programmering og det er instance navne... Hvad objektet hedder i dit Library og fuldstændigt lige gyldigt!
Avatar billede jacob_m Nybegynder
15. december 2002 - 21:28 #34
okay...

Det eksempel ser således ud:

hitBande = false;
for (i = 0; i < antalBander && !hitBande; i++) {
    hitBande = this.hitTest(_root["bande"+i]);

men i:

hitBande = this.hitTest(_root["bande"+i]);  Skal der ikke være et . mellem _root og ["bande"+!]); så det bliver til (_root.["bande"+i]);  ?
Avatar billede barklund Nybegynder
15. december 2002 - 21:32 #35
NEJ! :o)

_root["bande"] er det samme som _root.bande. Det er en anden måde at bruge de her associative arrays på med dynamiske navne...
Avatar billede jacob_m Nybegynder
15. december 2002 - 21:35 #36
Fair Nok...

Så nu mangler jeg kun at putte ændringen af hastigheden ind..
For jeg kan ikke gøre:


hitBande = false;
    for(i = 0; i < 2 && !hitBande; i++) {
    hitBande = this.hitTest(_root["bane"+i]) {
      speed = -Math.abs(speed);
}
}

Kan jeg?
Avatar billede barklund Nybegynder
15. december 2002 - 21:40 #37
Nope... Du skal bare bruge dit script, som det er nu:


onClipEvent (enterFrame) {
    var i, hitBande = false;

    for(i = 0; i < 2 && !hitBande; i++) {
        hitBande = this.hitTest(_root["bane"+i]);
    }

    if (!hitBande) {
        // fem if'er til at ændre retning og hastighed)
   

    } else {
        speed = -.6*Math.abs(speed);
    }
   
    _x += Math.sin(_rotation*(Math.PI/180))*speed;
    _y += -Math.cos(_rotation*(Math.PI/180))*speed*;
}

Men det virker som nævnt ikke, hvis du bakker ind i en bande...
Avatar billede jacob_m Nybegynder
15. december 2002 - 21:49 #38
Nu ser det således ud:

------------------------ ActionScript ------------------

onClipEvent (enterFrame) {
    var i, hitBande = false;
    for(i = 0; i < 2 && !hitBande; i++) {
        hitBande = this.hitTest(_root["bane"+i]);
    }
   
    if (!hitBande) {

    if (Key.isDown(Key.UP)) {
        speed += 1;
    }
    if (Key.isDown(Key.DOWN)) {
        speed -= 2;
    }
    if (Math.abs(speed)>25) {
        speed = 24;
    }
    if (Key.isDown(Key.LEFT)) {
        _rotation -= 10;
    }
    if (Key.isDown(Key.RIGHT)) {
        _rotation += 10;
      }else
      {
        speed = -.6*Math.abs(speed);
    }
    }
    // This will make the car move
    speed *= .98;
    x = Math.sin(_rotation*(Math.PI/180))*speed;
    y = Math.cos(_rotation*(Math.PI/180))*speed*-1;
    if (!_root.move.hitTest(_x+x, _y+y, true)) {
        _x += x;
        _y += y;
    } else {
        speed *= -.6;
    }

}
---------------------------------------------------

Men bilen bevæger sig ikke..
Avatar billede barklund Nybegynder
15. december 2002 - 21:52 #39
Hedder dine bander "bane0" og "bane1" og har du præcis de to bander?
Avatar billede barklund Nybegynder
15. december 2002 - 21:55 #40
Og dit script er IKKE magen til det, som jeg har lavet. Det i bunden skal også være magen til mit...!
Avatar billede jacob_m Nybegynder
15. december 2002 - 21:55 #41
Yes...... præcist.. se her

http://aero.greyz.dk/flash/spil2.swf
Avatar billede barklund Nybegynder
15. december 2002 - 21:56 #42
Og du har sat din else det forkerte sted... Den skal sidde efter den } der matcher if (!hitBande) og ikke efter den if der tester om højre-tasten er trykket ned som du har gjort...
Avatar billede barklund Nybegynder
15. december 2002 - 21:57 #43
(og pak helst din flash film ind i en html - ellers kan jeg ikke se det...)
Avatar billede jacob_m Nybegynder
15. december 2002 - 21:58 #44
Okay.. Så kom fejlen:

Scene=Scene 1, Layer=bil, Frame=1: Line 30: Operator '*' must be followed by an operand
        _y += -Math.cos(_rotation*(Math.PI/180))*speed*;
Avatar billede jacob_m Nybegynder
15. december 2002 - 22:01 #45
ok... her er den i HTML...

http://aero.greyz.dk/flash/spil2.html
Avatar billede barklund Nybegynder
15. december 2002 - 22:03 #46
ah... fjern * til sidst i linien...
Avatar billede jacob_m Nybegynder
15. december 2002 - 22:05 #47
den er stadig underlig... Se linket overfor..
Avatar billede jacob_m Nybegynder
15. december 2002 - 22:06 #48
Jeg har liger sat pointen op til 200... Fordi du er en kanon stor hjælp..
Avatar billede barklund Nybegynder
15. december 2002 - 22:10 #49
Prøv at vis mig hele dit script... Og der er intet andet script overhovedet i din film? Og dine bander har KUN den størrelse, som hver enkelt streg udgør? Og din bil har også kun den størrelse, den er?
Avatar billede jacob_m Nybegynder
15. december 2002 - 22:12 #50
jep...

Du kan download .fla filen her http://aero.greyz.dk/flash2.fla

og mit script ser således ud:

--------------------------------------------------------------
onClipEvent (enterFrame) {
    var i, hitBande = false;
    for(i = 0; i < 2 && !hitBande; i++) {
        hitBande = this.hitTest(_root["bane"+i]);
    }
   
    if (!hitBande) {

    if (Key.isDown(Key.UP)) {
        speed += 1;
    }
    if (Key.isDown(Key.DOWN)) {
        speed -= 2;
    }
    if (Math.abs(speed)>25) {
        speed = 24;
    }
    if (Key.isDown(Key.LEFT)) {
        _rotation -= 10;
    }
    if (Key.isDown(Key.RIGHT)) {
        _rotation += 10;
      }else
      {
        speed = -.6*Math.abs(speed);
    }
    }
    // This will make the car move
    _x += Math.sin(_rotation*(Math.PI/180))*speed;
    _y += -Math.cos(_rotation*(Math.PI/180))*speed;
}

--------------------------------------------------------------
Avatar billede barklund Nybegynder
15. december 2002 - 22:15 #51
Din else ligger stadig forkert...

onClipEvent (enterFrame) {
    var i, hitBande = false;
    for(i = 0; i < 2 && !hitBande; i++) {
        hitBande = this.hitTest(_root["bane"+i]);
    }
 
    if (!hitBande) {

        if (Key.isDown(Key.UP)) {
            speed += 1;
        }
        if (Key.isDown(Key.DOWN)) {
            speed -= 2;
        }
        if (Math.abs(speed)>25) {
            speed = 24;
        }
        if (Key.isDown(Key.LEFT)) {
            _rotation -= 10;
        }
        if (Key.isDown(Key.RIGHT)) {
            _rotation += 10;
        }
    }else
        speed = -.6*Math.abs(speed);
    }

    _x += Math.sin(_rotation*(Math.PI/180))*speed;
    _y += -Math.cos(_rotation*(Math.PI/180))*speed;
}
Avatar billede barklund Nybegynder
15. december 2002 - 22:17 #52
Hov:

onClipEvent (enterFrame) {
    var i, hitBande = false;
    for(i = 0; i < 2 && !hitBande; i++) {
        hitBande = this.hitTest(_root["bane"+i]);
    }

    if (!hitBande) {

        if (Key.isDown(Key.UP)) {
            speed += 1;
        }
        if (Key.isDown(Key.DOWN)) {
            speed -= 2;
        }
        if (Math.abs(speed)>25) {
            speed = 24;
        }
        if (Key.isDown(Key.LEFT)) {
            _rotation -= 10;
        }
        if (Key.isDown(Key.RIGHT)) {
            _rotation += 10;
        }
    } else {
        speed = -.6*Math.abs(speed);
    }

    _x += Math.sin(_rotation*(Math.PI/180))*speed;
    _y += -Math.cos(_rotation*(Math.PI/180))*speed;
}
Avatar billede jacob_m Nybegynder
15. december 2002 - 22:23 #53
okay.... Så skal jeg "vende" den om så den passer på bagenden og siderne ik..
Avatar billede barklund Nybegynder
15. december 2002 - 22:39 #54
Næ... ikke helt... Og hvad mener du med siderne - kan man køre sidelænds ind i en bande?

Man kunne sige, at hvis man kører fremad (har en positiv speed), så er det nok forenden, der rammer en bande, og hvis speed er negativ, så er det bagenden... Men så opstår problemet jo, hvis man ryger ind over en bande og speed sættes til begativ, for at man ryger tilbage igen, men ikke kommer langt nok tilbage, til at man er uden for banden, så vil næste løkke jo igen opdage, at man er over banden samtidig med at speed er negativ og så tror scriptet, at det er bagenden, selvom det er en fejl...

Derfor er det smartere at køre som følger: I starten af scriptet beregnes den nye hastighed i forhold til forrige hastighed og hvilke knapper, der er trykket ned. Så undersøges det, om den nye hastighed vil medføre, at man er over banden. Hvis den gør, så skal bilen flyttes tilbage igen, og hastigheden sættes til negativt eller stopper vi:

onClipEvent (enterFrame) {
    if (Key.isDown(Key.UP) && speed < 25) {
        speed++;
    }
    if (Key.isDown(Key.DOWN) && speed > -25) {
        speed -= 2;
    }
    if (Key.isDown(Key.LEFT)) {
        _rotation -= 10;
    }
    else if (Key.isDown(Key.RIGHT)) {
        _rotation += 10;
    }

    _x += Math.sin(_rotation*(Math.PI/180))*speed;
    _y -= Math.cos(_rotation*(Math.PI/180))*speed;

    var i, hitBande = false;
    for(i = 0; i < 2 && !hitBande; i++) {
        hitBande = this.hitTest(_root["bane"+i]);
    }

    if (hitBande) {
        _x -= Math.sin(_rotation*(Math.PI/180))*speed;
        _y += Math.cos(_rotation*(Math.PI/180))*speed;

        speed *= -.6;
    }
}

Det skulle vist virke...
Avatar billede barklund Nybegynder
15. december 2002 - 22:41 #55
Vi er faktisk næsten helt tilbage til dit oprindelige script, forskellen er blot at hvis man er over banden, så annuleres positions-ændringen øjeblikkeligt...
Avatar billede barklund Nybegynder
15. december 2002 - 22:42 #56
Du bør endda nok tilføje den nye positions-ændring med det samme:

onClipEvent (enterFrame) {
    if (Key.isDown(Key.UP) && speed < 25) {
        speed++;
    }
    if (Key.isDown(Key.DOWN) && speed > -25) {
        speed -= 2;
    }
    if (Key.isDown(Key.LEFT)) {
        _rotation -= 10;
    }
    else if (Key.isDown(Key.RIGHT)) {
        _rotation += 10;
    }

    _x += Math.sin(_rotation*(Math.PI/180))*speed;
    _y -= Math.cos(_rotation*(Math.PI/180))*speed;

    var i, hitBande = false;
    for(i = 0; i < 2 && !hitBande; i++) {
        hitBande = this.hitTest(_root["bane"+i]);
    }

    if (hitBande) {
        _x -= Math.sin(_rotation*(Math.PI/180))*speed;
        _y += Math.cos(_rotation*(Math.PI/180))*speed;

        speed *= -.6;

        _x += Math.sin(_rotation*(Math.PI/180))*speed;
        _y -= Math.cos(_rotation*(Math.PI/180))*speed;
    }
Avatar billede barklund Nybegynder
15. december 2002 - 22:45 #57
Er du der?
Avatar billede jacob_m Nybegynder
16. december 2002 - 17:12 #58
Det virker.. FINT.... mange tak.. Vil du lige et SVAR..
Avatar billede barklund Nybegynder
16. december 2002 - 17:22 #59
Så det hele spiller... Eller?
Avatar billede jacob_m Nybegynder
16. december 2002 - 17:26 #60
Ja.. Nu fungere det.. Nu er jeg ved at designe banerne, så ka det jo altud være der kommer nogel fejl.. Men det går nok.. Og så har jeg et fedt eksempel, jeg kan gå udfra.. Mange tak....
Avatar billede barklund Nybegynder
16. december 2002 - 17:41 #61
tark for point... det blev også en lang proces... :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester