C# spil (del 1) - Kom i gang med et simpelt spil
|
|
- Andreas Groth
- 5 år siden
- Visninger:
Transkript
1 Denne guide er oprindeligt udgivet på Eksperten.dk C# spil (del 1) - Kom i gang med et simpelt spil Denne artikel starter helt fra grunden (med GDI). Den viser hvordan man undgår flimmer, og hvordan man opretter en meget simpel sprite klasse, samt en klasse til at håndtere sprite kollision. Artiklen kræver grundlæggende kendskab til C# og.net Skrevet den 12. Feb 2009 af sovsekoder I kategorien Programmering / C# Indledning Denne artikkel tager udgangspunkt i udviklingsmiljøet Visual studio VS2003 koster knapper. Jeg har derfor indsat denne indledning, der helst skulle hjælpe dem der bruger et gratis udviklings miljø (C# Developer). Opret et nyt projektet i File -> New combine. Vælg "windows application", og skriv "CollisionSample" i name. Tryk ok, og projektet er oprettet. Når jeg snakker om designview, mener jeg viewet, hvor man ser formens layout. Dette view finder du i C# developer ved siden af source-tabben. Når man dobbelt klikker på et event for en kontrol, genererer VS2003 en default metode for event handleren. Dette sker også i C# Developer, dog har C# Developer ikke "_" i metode navnet. Hvis du har VS2003, skal du starte med at lave et "windows application"-project i C#. I artiklen skal al kode inde i de "blå" bokse indtaste på den ene eller anden måde. Nogle steder er det kode, der kan pastes direkte ind, andre steder er det properties, der skal sættes på en given kontrol på formen. Første skridt består i at lave en timer. Timeren skal sørge for at spillet kører i et fast tempo. Der er flere måder hvorpå man kan lave en sådan timer. I denne artikel bliver det en forholdsvis simpel timer, nemlig en af dem man kan trække ind på formen - og så er den i vinkel! Step 1 - tilføj game timer. Opret et nyt VS2003 projekt - C# "windows application" Klik på designviewet for Form1 Find en timer i VS2003 toolboxen, og træk den ind på formen. Klik på timeren og indstil følgende properties: Enabled = true Interval = 10 Klik på event iconet (lynet) og dobbel klik på Tick for at få VS2003 til at generere en default timer event handler (timer1_tick). Inde i timer1_tick indtastes nu følgende linie: Invalidate(true); Vi har nu en timer, og en event handler (timer1_tick) der bliver kaldt hver gang der er gået 10 millisekunder. Styringen af spillet foregår i denne metode, timer1_tick, metoden kaldes også for gameloopet. Linien der er indsat i timer1_tick (Invalidate(true)), gør at vinduet bliver gentegnet, hver gang timer eventen bliver fyret. På denne måde er vinduet hele tiden opdateret. Næste skridt består i at læse
2 og vise mussemarkørens position. Step 2 - Vis musens position i en label på formen. Klik på designviewet af formen (Form1) Træk en label over på formen Klik på Formen, og klik på event ikonet i properties Find Paint eventen og dobbelklik på denne, default metoden Form1_Paint genereres af VS2003 Vi er nu inde i Form1 kilde koden for paint metoden. Følgende linier indtastes i Form1_Paint: // Hent musens position, og indskriv koordineterne // - i labelen. Graphics g = e.graphics; Point location = PointToClient(MousePosition); label1.text = string.format("0:0000,0:0000", location.x, location.y); Kør programmet og se at man nu kan se musens koordinater (i den label vi trak ind på formen). Paint eventen bliver fyret når Invalidate kaldes. Da vi har puttet invalidate ind i timer_tick funktionen, bliver paint eventen fyret hver gang der er gået 10 millisekunder. Dette betyder altså at vinduet bliver tegnet 100 gange i sekundet - også kaldet 100fps (100 frames pr. second). Næste skridt er at tilføje en simpel sprite klasse, kaldet BlockSprite. Denne klasse tegner et farvet rektangel som er vores "sprite". Step 3 - Tegn simple sprites Vælg Add Class i Project menuen. Skriv BlockSprite I klassens navn og tryk OK. Erstat al autogenereret kode inden for namespacet med følgende kode: public class BlockSprite // Variabler der giver spritens størrelse og position int x=0; int y=0; int width=0; int height = 0; // Spritens farveangives med variablen color. Color color = Color.Black; //BlockSprite konstruktør - opretter en ny sprite public BlockSprite(int x, int y, int width, int height) this.x = x; this.y = y; this.width = width; this.height = height; // Draw tegner spriten i et Grpahics-objekt (formen) public void Draw(Graphics g) g.fillrectangle(new SolidBrush(color), x,y, width, height); // Properties til at gamme og hente spritens:
3 // - position // - størrelse // - farve public int X get return this.x; set this.x = value; public int Y get return this.y; set this.y = value; public int Height get return this.height; set this.height = value; public int Width get return this.width; set this.width = value; public System.Drawing.Color Color get return this.color; set this.color = value; øverst i filen tilføjes : using System.Drawing; Denne linie gør os i stand til at bruge tegnefunktioner i.net Programmet bør nu kunne kompileres uden fejl. Den netop indtastede klasse, BlockSprite, er istand til at tegne sprites. I denne artikel er vores sprites meget simple, det er nemlig bare farvede kasser (det kræver ikke megen indsats at putte billeder ind istedet!). BlockSprite klassen har en række properties. 4 properties til at placere spriten på skærmen, samt at angive dens størrelse: x, y, width, height. 1 property til at sætte farven på vores sprite. Spriten bliver tegnet i funktionen Draw(Graphics g). Denne funktion skal kaldes når man ønsker at tegne spriten i vinduet. Vi skal nu oprette nogle sprites, og sørge for at de tegnes i vinduet. Følgende linie indsættes som variabel i Form1 klassen:
4 BlockSprite[] sprites; Et array af sprites. Vi indsætter nu 4 sprites i arrayet. Tilføj følgende kode i Form1's kunstruktør: // Tegn med double-buffering, undgå flimmer SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.AllPaintingInWmPaint, true); SetStyle(ControlStyles.DoubleBuffer, true); // Lav 4 nye sprites sprites = new BlockSprite[4]; sprites[0] = new BlockSprite(10,10,40,60); sprites[1] = new BlockSprite(300,100,60,20); sprites[2] = new BlockSprite(60,200,50,80); sprites[3] = new BlockSprite(0,0,50,50); BlockSprites konstruktør gør det muligt at sætte spritens properties med det samme. Bemærk de første linier (3 SetStyle kald). Disse kald sætte bestemte style-bits på formen. Den vigtigste style er DoubleBuffer. DoubleBuffer gør at formen tegnes uden at flimre. Dette er en vigtig ting, hvis man gerne vil ha' at folk bare gider, at kigge på det super-spil man nu engang har lavet. DoubleBuffer style kræver at de to andre styles sættes for at det virker (se evt. msdn dokumentationen for SetStyle). Tilføj følgende kode I Form1_Paint: // I sprite array'et, sættes sprite 3 til en position // - hvor spriten får centrum, der hvor musen peger sprites[3].x = location.x-sprites[3].width/2; sprites[3].y = location.y-sprites[3].height/2; // Tegn alle sprites i array'et for(int i=0; i<sprites.length; i++) sprites[i].draw(g); Koden laver 2 interessante ting. 1) sprite[3]'s position styres nu af musen. Dette gøres ved at sætte x og y property'en på sprite[3]. 2) Herefter tegnes alle sprites ved at løbe array'et af sprites igennem, og kalde Draw metoden for hver sprite. Vi har nu en form med 4 sorte kasser. Den ene kasse følger musens bevægelse, de andre kasser står bare stille. Vi har tilføjet BlockSprite klassen, som tegner disse kasser og holder styr på hvor og hvor store de er. Sidste skridt bliver at være i stand til at detektere sprite kollisioner. Step 4 - Check for kollisioner Tilføj en klasse med navnet, SpriteCollision (brug Add Class i project menuen). Kopier følgende kode ind i namespacet for projektet (og overskriv derfor den autogenererede kode inde i namespacet):
5 // Opret en delegate der kan bruges i forbindelse med // - Listener-eventen public delegate void CollisionDelegate(BlockSprite s1, BlockSprite s2); public class SpriteCollision ArrayList listeners = new ArrayList(); ) // AddListener - tilføjer en listener mellem sprite s1 og s2. // - metoden CollisionDelegate kaldes når s1 og s2 kolliderer. public void AddListener(BlockSprite s1, BlockSprite s2, CollisionDelegate d Listener l = new Listener(s1, s2, d); listeners.add(l); // Her tjekkes alle listeners for kollisioner public void Check() foreach(listener listener in listeners) if(listener.collide()) listener.firecollisionevent(); class Listener BlockSprite sprite1; BlockSprite sprite2; event CollisionDelegate CollisionEvent; public Listener(BlockSprite s1, BlockSprite s2, CollisionDelegate d) sprite1 = s1; sprite2 = s2; CollisionEvent += d; // Collide - tjekker om to rektangler overlapper. // - dvs. retanglet for sprite1 og sprite2 public bool Collide() if(sprite1.x < (sprite2.x+sprite2.width)) if((sprite1.x+sprite1.width) > sprite2.x) if(sprite1.y < (sprite2.y+sprite2.height)) if((sprite1.y+sprite1.height) > sprite2.y)
6 return true; return false; public void FireCollisionEvent() CollisionEvent(sprite1, sprite2); Tilføj et using statement i toppen af filen så ArrayList klassen kan bruges: using System.Collections; Programmet kan nu kompiles uden fejl. Denne klasse kræver noget forklaring. Øverst har vi en delegate denne delegate er basis for et event der defineres senere. Overordnet fungerer det således at når to sprites er stødt sammen, så fyres dette event. På denne måde kan man abonere på et event, og derfor få at vide hvornår to sprites er støt sammen. Den første variable der erklares i SpriteCollision klassen er en arraylist. Denne arraylist kommer til at bestå af "Listeners", altså lyttere. Disse lyttere, lytter på om to sprites er støt sammen. Hvis man harløst til at høre om sprite A og sprite B støder sammen, så tilføjer man en lytter på sprite A og B. Klassen har en metode, AddListener, der gør det muligt at tilføje en sådan lytter (Listener). Herudover har vi metoden Check. Denne metode kaldes når man ønsker at tjekke om der er sket nogle kollisioner. I vores tilfælde kommer vi til at kalde denne metode i timer1_tick (mere om det senere), hvilket så betyder at vi hele tiden beder denne klasse om at tjekke for sammenstødte sprites. Tilsidst har vi en Listener klasse. Denne klasse holder på 2 sprites (BlockSprites) og en event. Klassen har en metode, der tjekker om de 2 sprites er stødt sammen, hvis de er - ja, så fyres event'en. Eventen fyres af den sidste metode kaldet FireCollisionEvent. Nu til koden der bruger denne kollisions-dektektor-klasse. Det første skridt er at oprette en variabel i form1 klassen. Tilføj følgende kode øverst i form1 klassen: SpriteCollision collisions = new SpriteCollision(); Variablen collisions kan nu bruges til at oprette listeners, således at vi kan få en event når 2 (eller flere) sprites støder sammen. Tilføj følgende kode i Timer1_tick: // Sørg for at alle sprites farves sort inden vi // - tjekker for kollision for(int i=0; i<sprites.length; i++)
7 sprites[i].color = Color.Black; // Tjek for kollision - hvis to sprites kolliderer tegnes de røde collisions.check(); Her farves alle sprites sorte, og der tjekkes efterfølgende for kollisioner. Bagtanken er nu hvis to sprites er kollideret males de røde. Hvilket gøres med følgende metode (tilføj koden til form1): public void CollisionHandler(BlockSprite sprite1, BlockSprite sprite2) // Mal de to implicerede sprites røde sprite1.color = Color.Red; sprite2.color = Color.Red; Vi mangler nu at tilføje denne metode til vores Listener. Tilføj følgende kode sidst i form1 konstruktøren: collisions.addlistener(sprites[0], sprites[3], new CollisionDelegate(CollisionHandler)); collisions.addlistener(sprites[1], sprites[3], new CollisionDelegate(CollisionHandler)); collisions.addlistener(sprites[2], sprites[3], new CollisionDelegate(CollisionHandler)); Vi har således tilføjet en listener til: sprite3 og sprite0 sprite3 og sprite1 sprite3 og sprite2 Dette betyder at hvis sprite3 (som jo styres af musen) støder ind i en af de andre sprites, så farves de røde - dette sker da event handleren, CollisionHandler, forbindes ved AddListener kaldet (og som tidligere nævnt sørger denne metode for, at farve de implicerede sprites røde). Artiklen har givet et kort (og hurtigt) indblik i, hvad der skal til at sætte en simpel sprite klasse op, samt at lave en simpel detektion for sprite kollision. Herudover er linierne trukket op til gameloopet (som er Timer1_tick metoden), hvor spil logikken ligger. Tro det eller ej, du er ikke langt fra at lave et simpelt spil nu. De mest elementære ting er kridtet op. Er du (læseren) interesseret i at vide mere, vil jeg gerne skrive lidt mere om emnet (på samme "lave" niveau) - det vil så være: DEL 2: Hvordan tilstandsmaskinen styrer spillet DEL 3: Implementering af Space Invaders (med BlockSprites)!! DEL 4: grafik og effekter - hvordan grafik og effekter tilføjes DEL 5: musik og lyd i et spil - hvordan lyden kommer på Kritik (positiv og negativ) modtages genrne :)
8 Kommentar af mjense173 d. 30. Oct Super! Godt arbejde, jeg kan ikke se hvad visualdeveloper kan sætte fingre på. Mere af den slags! Kommentar af charly d. 20. Jan Kommentar af finger d. 01. Nov Jeg havde nu håbet på at den indeholdt noget Direct3D kode eller mere "spil" orienteret kode. Men dog en god introduktion til tankerne bag spil programmering. Kommentar af webcreator d. 30. Oct Faktisk en ganske god artikel. Jeg må indrømme, at det jeg bedst kunne bruge fra artiklen, var delen hvor man finder musens koordinater - det vil være mig behjælpelig i et andet projekt. --- Jeg håber meget, at du fortsætter med artiklerne, for pt. kan vi ikke bruge det til noget. Det kunne være sjovt, hvis du fik lavet en afsluttende artikel, der gennemgår, hvordan man faktisk får lavet et lille spil (og helst et rimeligt brugbart et). --- Godt arbejde :) Kommentar af henrikgn d. 26. Oct Super artikel, til os c# nørder... Fortsæt endeligt det gode arbejde - glæder mig til spillet bliver brugbart :) Kommentar af dustie d. 03. Dec Kommentar af kevinsk (nedlagt brugerprofil) d. 08. Oct Rigtig lækkert! sad nemlig og kiggede efter lidt hjælp til Collision Kommentar af plugin- d. 01. Jun En af de bedste artikler jeg har læst indtil videre... for nybegyndere som mig selv følger man virkelig at man kommer igang... og jeg er da også så småt ved at videreudvikle dette eksempel til noget større :D Kommentar af mmbn d. 11. Nov Super beskrivelse Kommentar af sorenbs d. 13. Jul Super spændende læsning. Jeg har aldrig beskæftiget mig mad andet end lidt php, og alligevel kom jeg hurtigt igang med dette "lille" projekt. Det bør nok lige nævnes at det gratis program "Visual C# Express Edition Beta 2" kan hentes hos Microsoft
9 her: Så skulle alle kunne komme i gang :) Kommentar af mogenhelge d. 25. Oct Godt pædagoisk beskrevet - det er lige til at forstå. Ser frem til næste afsnit! :) Kommentar af vigilante d. 25. Oct Det er en god start på at få noget viden om netop det at lave spil omend det naturligvis er meget simpelt. Hvis du kan komme så langt som til at vise hvordan man laver et simpelt space invaders som du skriver, ja så er det sgu meget godt gået. Ihvertfald klart de 5 point værd =) Jeg er dog ikke sikker på jeg forstår hele koden, så skulle dine kommentarer næsten have været på linieniveau, derfor har jeg givet den karakteren god og ikke meget god. Men jeg er jo også en c# noob! Kommentar af visualdeveloper d. 17. Oct Sådan! Kommentar af sorensen_123 d. 30. Sep Super fed artikel! Må hellere lige læse videre og se hvad der kommer ud af det! :D Og til dig, phil-profil, kan du ikke lige tage at slappe lidt af herinde? Artiklen er super god, så enten er det nok din hjerne der er noget galt med, at du overhovedet ikke har læst artiklen, eller måske bare er så dum at du ikke kan finde ud af det? Da utroligt hvordan folk opfører sig inde på forums i den her tid, hvad sker der inde i folks hoveder? Ja, jeg ved det ærligt talt ikke! Kommentar af phil-profil d. 02. Jul fucking dålig det værste der findes fuck det. og jeg har givet 5 point!!!! Kommentar af tobiasahlmo d. 24. Jan Nogenlunde Kommentar af sovsekoder d. 23. Feb kig evt. på mit codeplex projekt ang. XNA og platform spil:
C# spil (del 2) - Tilstandmaskiner i spil
Denne guide er oprindeligt udgivet på Eksperten.dk C# spil (del 2) - Tilstandmaskiner i spil Denne artikkel omhandler brugen af tilstandmaskiner i spil. Tilstandsmaskiner kan bruges til at styre logikken
Læs mereC# spil (del 3) - Space Invaders, sådan!
Denne guide er oprindeligt udgivet på Eksperten.dk C# spil (del 3) - Space Invaders, sådan! Artiklen indeholder implementeringen af spillet Space Invaders, og forklarer overordnet ideen bag. Sprite- og
Læs mereHvad er Objekter - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som
Læs mereSom sagt kræves der helst lidt viden om OOP hvis man virkelig vil lærer noget, og ikke bare lave copypaste
Denne guide er oprindeligt udgivet på Eksperten.dk Indkøbsvogn i PHP I denne artikel vil jeg prøve at lave en indkøbskurv som let kan udvides, og som ikke er svær at forstå. Det er bedst med viden om OOP(klasser),
Læs mereTagwall med Php & MySQL
Denne guide er oprindeligt udgivet på Eksperten.dk Tagwall med Php & MySQL Her laver vi en tagwall i Php & MySQL... jeg forklarer dog ikke så meget, men jeg håber du kan få det til at blive til en tagwall
Læs mereArrays i PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 04. Feb 2009 af taskmgr I kategorien Programmering / PHP
Denne guide er oprindeligt udgivet på Eksperten.dk Arrays i PHP De fleste som har skrevet omfattende scripts, er før eller siden stødt på problemet med at de bliver vanskelige at overskue hvis man bruger
Læs mereI denne artikel vil vi bruge en User klasse som vi så vil gruppere på forskellige måder.
Denne guide er oprindeligt udgivet på Eksperten.dk Collections i.net Når du kigger i namespacet System.Collections finder du over 10 forskellige klasser. At vælge den rigtige til netop din applikations
Læs mereAnvendelse af metoder - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Anvendelse af metoder - Programmering En forhåbentlig rigtig god forklaring på hvad metoder er og hvordan de anvendes. Lidt om private og public, retur
Læs mere//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!
Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for
Læs mereSingleton pattern i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i C# Denne artikel beskriver Singleton pattern og implementation i C#. Den forudsætter kendskab til C# men ikke til Singleton. Der er
Læs mereIndledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.
Indledning...2 Variabler...13 Eksempel: 1...13 Eksempel 2:...13 Eksempel 3:...15 Eksempel 4:...16 Metoder...17 Metode (intet ind og intet ud)...17 Metode (tekst ind)...18 Metode (tekst ind og tekst ud)...19
Læs mereKontrol-strukturer i PHP
Denne guide er oprindeligt udgivet på Eksperten.dk Kontrol-strukturer i PHP Denne artikel gennemgår kontrolstrukturer i PHP. 'if', 'switch', 'while' og 'for' bliver gennemgået. Den forudsætter lidt grundlæggende
Læs mereDynamisk PHP design OPDATERET
Denne guide er oprindeligt udgivet på Eksperten.dk Dynamisk PHP design OPDATERET I har måske undret jer over "http://bla.dk/?side=kontakt", her beskriver jeg hvordan, og hvorfor Skrevet den 03. Feb 2009
Læs mereSådan skriver du artikler til Eksperten!
Denne guide er oprindeligt udgivet på Eksperten.dk Sådan skriver du artikler til Eksperten! Når du skriver artikler handler det om at få den ud til de rigtige personer, og vise den frem så den er let forståelig.
Læs mereI denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal.
Denne guide er oprindeligt udgivet på Eksperten.dk Afrund til helt tal I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal. Skrevet den 03. Feb 2009 af tjomsen I kategorien
Læs mereUndtagelseshåndtering i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Undtagelseshåndtering i C# I modsætning til C++ kan man i C# ikke skrive et program uden undtagelseshåndtering, så derfor har jeg skrevet denne guide
Læs mereMed register_globals = On får du automatisk adgang til en række variabelnavne i dit script.
Denne guide er oprindeligt udgivet på Eksperten.dk Register Globals Off Lad os slå en ting fast med det samme - register_globals = Off er en god ting, i hvert fald set ud fra et sikkerhedsmæssigt synspunkt.
Læs mereSESSION med PHP. En let begynderguide som kan føre dig ind i en verden af muligheder. Denne guide er oprindeligt udgivet på Eksperten.
Denne guide er oprindeligt udgivet på Eksperten.dk SESSION med PHP En let begynderguide som kan føre dig ind i en verden af muligheder Skrevet den 03. Feb 2009 af mccookie I kategorien Programmering /
Læs mereAt klippe en streng over på det mest hensigtsmæssige sted
Denne guide er oprindeligt udgivet på Eksperten.dk At klippe en streng over på det mest hensigtsmæssige sted Formålet med denne artikel er at kaste lidt lys over, hvordan man klipper en streng over på
Læs mereRatingsystem i PHP og MySQL
Denne guide er oprindeligt udgivet på Eksperten.dk Ratingsystem i PHP og MySQL Lær at lave et system til at vise rating/bedømmelse på artikler og nyheder. Skrevet den 03. Feb 2009 af virtual1ty I kategorien
Læs mereLoginsystem (med MySQL)
Denne guide er oprindeligt udgivet på Eksperten.dk Loginsystem (med MySQL) Dette er en guide til, hvordan man kan lave et loginsystem med php og muligvis også med sessioner og MySQL Skrevet den 02. Feb
Læs mereDen forudsætter kendskab til XML og C# men ikke til brug af XML i C#.
Denne guide er oprindeligt udgivet på Eksperten.dk Brug af XML i C# Denne artikel vil vise lidt om hvordan man kan bruge XML i C#. Den forudsætter kendskab til XML og C# men ikke til brug af XML i C#.
Læs mereSend fra Java. Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende fra Java.
Denne guide er oprindeligt udgivet på Eksperten.dk Send email fra Java Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende email fra Java. Simple eksempler ikke noget vildt
Læs mereUpload af billeder/filer for nybegyndere Del. 2
Denne guide er oprindeligt udgivet på Eksperten.dk Upload af billeder/filer for nybegyndere Del. 2 I denne Del vil jeg ikke gaa saa dybt i fil upload som i sidste. Jeg vil i stedet forklare om funktioner
Læs mereVisual Basic for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Visual Basic for begyndere I denne artikel vil jeg gennemgå Visual Basic (IKKE.NET / Visual Basic 2005 Express Edition) på et begynder-niveau. fed kursiv
Læs mereParameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.
Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Der findes en tilsvarende artikel med
Læs mereOffset til terminalskærm i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Offset til terminalskærm i Java Ikke en atikkel - men en Classe til java der gør det nemt at skrive ud på avancerede måder når man kun opererer i dosvindue.
Læs mereBørn, unge og sundhed
Børn, unge og sundhed Automatisering Komm/IT Benjamin Andreas Olander Christiansen, Jens Werner Nielsen og Niclas Larsen Klasse 1.4 Roskilde Tekniske Gymnasium 30.4.2010 Indledning Som vores kommunikations-/informationsteknologis
Læs mereLektion 6. Grundlæggende programmering i VR
Lektion 6 Grundlæggende programmering i VR Plan for i dag Simpelt FPS Triggerzones og animationer C# og objekt orienteret programmering Interfaces Generics Google Cardboard Video om VRs fremtid App til
Læs mereForelæsning Uge 3 Torsdag
Forelæsning Uge 3 Torsdag Billedredigering (bl.a. brug af for-løkker) Gråtonebilleder (som er lidt simplere end farvebilleder) Arrays Kan "opbevare" et antal objekter (som ArrayList) Fast (på forhånd kendt)
Læs mereOprettelse af Titelblok i Capture og Capture CIS
e-service Titelblok i OrCAD Capture og Capture CIS Side 1 af 11 Oprettelse af Titelblok i Capture og Capture CIS Note skrevet af : Nordcad Systems Technical Support Revision : April 2003, Release 14.2/9.2.3,
Læs mereKapitel 6 Events i C#
Kapitel 6 i C# Når vi snakker programmering er en Event når der aktiveres specielt indbygget kode. Der sker en hændelse (event). Man siger at eventet bliver udført. De events vi skal gennemgå i dette kapitel
Læs mereSimpel upload af filer
Denne guide er oprindeligt udgivet på Eksperten.dk Simpel upload af filer Jeg ser tit brugere spørge til hvordan man uploader en fil via php. Nu vil jeg prøve ganske kort at lave lidt kode og forklare
Læs mereMS Visual Studio Basic 2010. En kort vejledning
Du kan hente programmet gratis her: MS Visual Studio Basic 2010 Express http://www.microsoft.com/visualstudio/eng/downloads#d-2010-express Tryk på Install Now og følg vejledningen. Indholdsfortegnelse
Læs mereI denne manual kan du finde en hurtig introduktion til hvordan du:
VORES NORDSJÆLLAND HURTIGT I GANG MANUAL 01: Bruger HVAD INDEHOLDER DENNE MANUAL? I denne manual kan du finde en hurtig introduktion til hvordan du: 1. Finder Vores Nordsjælland hjemmesiden 2. Opretter
Læs mereDelphi og Databaser for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Delphi og Databaser for begyndere Denne artikel handler om hvordan man udnytter noget af det bedste i Delphi: Dets gode muligheder for integrering med
Læs mereAfsending af s vha. ASP
Denne guide er oprindeligt udgivet på Eksperten.dk Afsending af emails vha. ASP Det kan ofte være praktisk at afsende emails fra sin hjemmeside. Denne artikel tager udgangspunkt i komponenten JMail fra
Læs mereBrugerdefineret menuer i Access
Denne guide er oprindeligt udgivet på Eksperten.dk Brugerdefineret menuer i Access Denne artikel henvender sig primært til let øvede brugere af Access, der ønsker at komme i gang med at tilpasse egne menuer
Læs mereForelæsning Uge 3 Torsdag
Forelæsning Uge 3 Torsdag Billedredigering Gråtonebilleder (som er lidt simplere end farvebilleder) Arrays Kan "opbevare" et antal objekter (som ArrayList) Fast (på forhånd kendt) antal elementer Afleveringsopgave:
Læs mereDMX styring med USB-interface
DMX styring med USB-interface Introduktion...2 DMX bibliotek...3 Programmering af kanaler...7 Sådan skabes et show/en lyssekvens...11 Introduktion DMX LightPlayer er en avanceret men meget brugervenlig
Læs mereTilfældige tal. Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge.
Denne guide er oprindeligt udgivet på Eksperten.dk Tilfældige tal Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge. Den forudsætter
Læs mereBeskriver WOW Ik 100% godt men gør mit bedste + alle stavefejl er gratis men dog er der ikke mange
Denne guide er oprindeligt udgivet på Eksperten.dk Start på WOW Beskriver WOW Ik 100% godt men gør mit bedste + alle stavefejl er gratis men dog er der ikke mange Skrevet den 07. Feb 2009 af tobiasahlmo
Læs mereWorkshop G8 Tasks og Templates
Workshop G8 Tasks og Templates FØR I BEGYNDER...... 2-1 TEMPLATES... 2-2 Øvelse template til alm. attributter... 2-2 Øvelse Skraverings template... 2-4 VED ELEMENTET HVAD DET ER FOR ÉN?... 2-4 Øvelse ændre
Læs mereTech College Aalborg. ASP.NET Hjemmeside. Projekt Smart Zenior Home - Guide til ASP.NET hjemmeside med Visual Studio
Tech College Aalborg ASP.NET Hjemmeside Projekt Smart Zenior Home - Guide til ASP.NET hjemmeside med Visual Studio Isabella Sihm Ziersen Indhold ASP.Net hjemmeside... 2 Visual Studio... 2 Brug af templates
Læs mereI denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.
Denne guide er oprindeligt udgivet på Eksperten.dk Grundlæggende PHP I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.
Læs mereMichael Jokil 11-05-2012
HTX, RTG Det skrå kast Informationsteknologi B Michael Jokil 11-05-2012 Indholdsfortegnelse Indledning... 3 Teori... 3 Kravspecifikationer... 4 Design... 4 Funktionalitet... 4 Brugerflade... 4 Implementering...
Læs mereDenne artikel er en detaljeret gennemgag af det fundamentale i batchfiler til hjemmebrug :-) FEEL THE POWER! ;-)
Denne guide er oprindeligt udgivet på Eksperten.dk Batch genopfriskning Denne artikel er en detaljeret gennemgag af det fundamentale i batchfiler til hjemmebrug :-) FEEL THE POWER! ;-) Skrevet den 03.
Læs mereEkstra hastighed med array's i Excel-VBA
Denne guide er oprindeligt udgivet på Eksperten.dk Ekstra hastighed med array's i Excel-VBA Brugen af arrays til indlæsning af og skrivning til celler i Excel kan give betragtelige hastighedsforøgelser
Læs mereRedaktørvejledning for www.bredstrup-pjedsted.dk Skriv en artikel
Arbejdsgang - Skriv artiklens tekst - Gør billeder klar - Log-in på hjemmesiden - Opret ny artikel - Vælg kategori - Skriv overskrift - Indsæt tekst - Tilføj billeder - Gennemgå artiklens indstillinger
Læs mereProgrammering I Java/C#
Programmering I Java/C# Dit første projekt Datatekniker Intro to C# C# (C Sharp) Et enkelt, moderne, generelt anvendeligt, objektorienteret programmeringssprog Udviklet af Microsoft, ledet af danskeren
Læs mereIntroduktion til ActionScript, fortsat
Introduktion til ActionScript, fortsat Kaspar Rosengreen Nielsen kaspar@interactivespaces.net i n t e r a c t i v e s p a c e s. n e t Kaspar Nielsen, kaspar@interactivespaces.net 1 Dagens program Opsamling
Læs mereDen forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API.
Denne guide er oprindeligt udgivet på Eksperten.dk Brug af MySQL i C++ Denne artikel bygger ovenpå artiklen "MySQL C API" og forklarer hvordan man kan programmere mere objekt orienteret. Den forudsætter
Læs mereArbejde med 3D track motion
Arbejde med 3D track motion Gary Rebholz I sidste måneds Tech Tip artikel gennemgik jeg det grundlæggende i track motion. Selv om vi ikke gennemgår alle værktøjer i Track Motion dialog box vil du alligevel
Læs mereAdvanced Word Template Brugermanual
Advanced Word Template Brugermanual Forord: Advanced Word Template er et værktøj, der anvendes sammen med Microsoft Word til at opbygge ensartet beskrivelser på en mere intelligent måde end Copy and Paste
Læs mereAFSLUTTENDE PROJEKT KOM/IT
5/5-2017 AFSLUTTENDE PROJEKT KOM/IT Daniel & Frederik Klasse 1.1 Indledning Vi startede med at få valget stillet om vi ville lave noget med e-learning, databehandling og præsentation eller vi kunne lave
Læs mereIntroduction til.net remoting i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Introduction til.net remoting i C# Denne artikel beskriver teorien bag.net remoting og viser nogle simple kode eksempler i C#. Den forudsætter kendskab
Læs mereI mit script tager jeg højde for det problem ved, at gemme et unikt tal mellem 0-9 på 6 cifre og derved vil de så blive vist som 2 online.
Denne guide er oprindeligt udgivet på Eksperten.dk Hvem er online? Online script, som tager højde for at der kan være flere personer, som har den samme IP-adresse. Scriptet viser hvor lang tid brugeren
Læs mereKoden i denne guide vil kun virke i Flash MX 2003 og MX ikke ældre versioner!
Denne guide er oprindeligt udgivet på Eksperten.dk Slideshow - Guide Denne guide gennemgår grundigt og forklarende hvordan man i Flash laver et slideshow med simpel fade-effekt med billeder hentet dynamisk.
Læs mereJava Klasse nedarvninger
Denne guide er oprindeligt udgivet på Eksperten.dk Java Klasse nedarvninger Et let lille overblik i hvordan klasse nedarvning virker i java Skrevet den 07. dec 2011 af mochners I kategorien Programmering
Læs mereUdvikling af DOTNET applikationer til MicroStation i C#
Udvikling af DOTNET applikationer til MicroStation i C# Praktiske tips for at komme i gang. Gunnar Jul Jensen, Cowi Hvorfor nu det? Mdl og Vba kan det hele Fordelene er : udviklingsmiljøet er eksternt
Læs mereI gang med dit Gamer: bit Arkade Kit Denne guide er oversat og en smule forenklet fra Sparkfuns Hook-Up guide
I gang med dit Gamer: bit Arkade Kit Denne guide er oversat og en smule forenklet fra Sparkfuns Hook-Up guide Gamer: Bit Carrier Board er en docking-station til micro:bit, som gør det nemt at anvende alle
Læs mereKapitel 4 Løkker i C#
Kapitel 4 Løkker i C# Løkker en vigtig del af alle programmeringssprog, og C# er ikke andeles. En løkke er en måde at udføre en del af koden gentagne gange. Ideen er at du fortsætter med at udføre en opgave
Læs mereDenne artikel er til dem der ønsker at vide mere om hvad CSS er og hvad CSS kan bruges til hvad angår WWW.
Denne guide er oprindeligt udgivet på Eksperten.dk CSS - en gennemgang Denne artikel er til dem der ønsker at vide mere om hvad CSS er og hvad CSS kan bruges til hvad angår WWW. Der er lidt CSS historie
Læs mereTrin for trin guide til Google Analytics
Trin for trin guide til Google Analytics Introduktion #1 Opret bruger #2 Link Google Analytics til din side #3 Opret konto #4 Udfyld informationer #5 Gem sporings id #6 Download WordPress plugin #7 Vent
Læs mereKapitel 1 I gang med C#
Kapitel 1 I gang med C# Vi skal starte med at oprette et meget simpelt program, så du kan se hvad der ligger bag et C# projekt. Når du er færdig med dette kapitel vil du have lært: Hvordan du opretter
Læs mereGæstebog med validering opbygget med MySQL
Denne guide er oprindeligt udgivet på Eksperten.dk Gæstebog med validering opbygget med MySQL Dette er en simpel gæstebog, som kan hjælpe folk med at lave en velfungerende gæstebog uden alt for meget arbejde.
Læs mereFelix & Herbert. Introduktion: Vi skal lave et spil, der hedder fangeleg med Felix katten og Herbert musen. Du styrer Herbert med musen og
Introduktion: Vi skal lave et spil, der hedder fangeleg med Felix katten og Herbert musen. Du styrer Herbert med musen og skal forsøge, at undgå at blive fanget af Felix. Jo længere du undgår ham, jo flere
Læs mereManual til Wordpress. 1. Log ind på din Wordpress-side. Indhold: Sådan opdaterer du din hjemmeside i Wordpress.
Manual til Wordpress Sådan opdaterer du din hjemmeside i Wordpress. Dette er en manual til de mest grundlæggende ting, så du selv kan redigere indholdet og lægge nyt på din hjemmeside. Guiden er skrevet
Læs mereRMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).
Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer
Læs merePlugin-arkitektur med.net
Denne guide er oprindeligt udgivet på Eksperten.dk Plugin-arkitektur med.net Denne artikel viser hvordan du kan lave en plugin-arkitektur i dit program. Gør det muligt for andre at skrive udvidelser til
Læs mereJSP, Tomcat. Tutorial lavet af Jákup W. Hansen TSU semester 10.october 2007
JSP, Tomcat Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 10.october 2007 Hvad er JSP(Java Server Pages): Det er en teknik som er bygget ovenover Servlets teknikken, men fidusen er at det skal
Læs merePROGRAM. using System; using System.Collections.Generic; using System.Text; using System.Collections;
PROGRAM using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace EventManager class Program static void Main(string[] args) string hovedmenu = ""; string svar;
Læs mereTest med JUnit 3. Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det.
Denne guide er oprindeligt udgivet på Eksperten.dk Test med JUnit 3 Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det. Den forudsætter kendskab
Læs mereIde med Diff. Mål. Tidsplan. 1.uge: 2.uge:
Side 1 af 5 Ide med Diff. Min ide med differenertierings modulet er at lave et program som kan vise 3d objekter, og få lavede en konverter som kan konventer 3ds filer over til noget som flash kan bruge.
Læs mereVejledning til Photofiltre nr.204 Side 1 Opsætning af sang hvor der bruges både Libre Office Draw og Photofiltre
Side 1 Denne vejledning er om hvordan man sætter en sang op i Draw og tilpasser et billede i Photofiltre 7 så det passer til forsiden. Der bruges en skabelon i Draw som du henter på min hjemmeside Så vi
Læs mereDen forudsætter kendskab til XML og VB.NET men ikke til brug af XML i VB.NET.
Denne guide er oprindeligt udgivet på Eksperten.dk Brug af XML i VB.NET Denne artikel vil vise lidt om hvordan man kan bruge XML i VB.NET. Den forudsætter kendskab til XML og VB.NET men ikke til brug af
Læs mereIFC Egenskaber. Mohammad Hussain Parsianfar s102951 BYG DTU
Mohammad Hussain Parsianfar s102951 Indholdsfortegnelse 1 Introduktion... 3 1.1 Hvorfor er det interessant... 3 1.2 Formål... 4 2 Simplebim... 5 2.1 Præsentation af softwaren... 5 2.1.1 Brugergrænseflade...
Læs mereIntroduktion til funktioner, moduler og scopes i Python
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til funktioner, moduler og scopes i Python Denne artikel er fortsættelsen af "I gang med Python", som blevet publiceret her på sitet for
Læs mereRegion Syddanmark Guide til oprettelse og udsendelse af nyhedsbreve i Peytz Mail
Region Syddanmark Guide til oprettelse og udsendelse af nyhedsbreve i Peytz Mail 10. august 2018 1 Nyhedsbreve i Peytz Mail Sådan opretter du et nyt nyhedsbrev 1. Log på Peytz Mail med dit brugernavn og
Læs mereHold kontakten med dit netværk!
Hold kontakten med dit netværk! - Outlook er dit netværksprogram Outlook er mere end blot et mailprogram Du kan bruge Outlook til meget mere end blot at sende og modtage mails med. Eksempelvis, så er Outlook
Læs mereWINDOWS FORMS EVENTS INTERAGEREN MED FIL SYSTEMET. Grundlæggende programmering Lektion 9
EVENTS INTERAGEREN MED FIL SYSTEMET WINDOWS FORMS Grundlæggende programmering Lektion 9 1 EVENTS Der sker ting når der sker ting 2 EVENTS Events er brugerhandlinger såsom tastetryk, klik, musebevægelser,
Læs mereLynkursus i Stencyl. Lynkursus: Lad os lave et spil! (del 1 af 5) Introduktion download programmet. Download kittet til lynkurset
Lynkursus i Stencyl Lynkursus: Lad os lave et spil! (del 1 af 5) Introduktion download programmet Den korte tutorial gennemgår trin for trin, hvad du skal gøre for at kreere en simple platform med brug
Læs mereGreenfoot En kort introduktion til Programmering og Objekt-Orientering
Greenfoot En kort introduktion til Programmering og Objekt-Orientering Greenfoot er et computer-program, som kan benyttes til at skrive andre computer-programmer, i et programmeringssprog kaldet Java.
Læs mereTracking af YouTube i Google Tag Manager og Universal Analytics (Seneste version)
Tracking af YouTube i Google Tag Manager og Universal Analytics (Seneste version) Introduktion til Google Tag Manager og Youtube... 1 Opsæt Tags, Variabler og Triggers... 4 A) Variabler (variables)...
Læs mereFable Kom godt i gang
Fable Kom godt i gang Vers. 1.3.1 Opdateret: 29-08-2018 Indholdsfortegnelse 1. Installer programmet 3 2. Pak robotten ud 5 3. I gang med at programmere 6 4. Programmér Fable til at køre fra 90 til -90
Læs mereAbstrakte datatyper C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype
Læs mereDatabase for udviklere. Jan Lund Madsen PBS10107
Database for udviklere Jan Lund Madsen PBS10107 Indhold LINQ... 3 LINQ to SQL og Arkitektur... 3 O/R designere... 5 LINQ Den store introduktion med.net 3.5 er uden tvivl LINQ(udtales link): Language-INtegrated
Læs merePå min hjemmeside under Libre Draw finder du nederst en skabelon Skabelon med 2 spalter. Det er den vi skal bruge i dette eksempel.
Side 1 Mange kender programmet Microsoft Publisher hvor man sætte forskellige ting op i, blade, skrivelser, sange m.m. Libre Office Draw der er en del af den gratis LibreOffice pakke kan noget i samme
Læs mereIT Support Guide. Installation af netværksprinter (direkte IP print)
IT Support Guide Denne guide er hentet på www.spelling.dk Program: Microsoft Windows Vista Program sprog version: ENG (US) Guide emne: Installation af netværksprinter (direkte IP print) Publikationsnr.:
Læs mereBegrynder til at lave log ind system
Denne guide er oprindeligt udgivet på Eksperten.dk Begrynder til at lave log ind system Hej Vil jeg gerne lave en lille programmering forklare til hvordan du laver din helt egen lille start på at log ind
Læs mereTest med NUnit. Denne artikel introducerer NUnit. Den forklarer ideen med NUnit. Og den viser hvordan man konkret bruger det.
Denne guide er oprindeligt udgivet på Eksperten.dk Test med NUnit Denne artikel introducerer NUnit. Den forklarer ideen med NUnit. Og den viser hvordan man konkret bruger det. Den forudsætter kendskab
Læs mereSWC eksamens-spørgsmål. Oversigt
SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition
Læs mereVejledning til Forum på Foreningens Hjemmeside. Skrevet af Carl Andersen Vemmelev Webdesign
Vejledning til Forum på Foreningens Hjemmeside Skrevet af Carl Andersen Vemmelev Webdesign 1 Anvendelse af vejledning: Vejledningen fortæller hvordan du bruger og formaterer indlæg på Korsør Roklubs Forum.
Læs mereSPSS introduktion Om at komme igang 1
SPSS introduktion Om at komme igang 1 af Henrik Lolle, oktober 2003 Indhold Indledning 1 Indgang til SPSS 2 Frekvenstabeller 3 Deskriptive statistikker gennemsnit, standardafvigelse, median osv. 4 Søjlediagrammer
Læs mereTips til siden Slægtstræ
Tips til siden Slægtstræ Indholdsfortegnelse Indledning 1 Kom godt i gang 1 Kildecitater og links til online arkivalier: 5 Familier 9 Export, import og backup: 10 Folketællinger: 10 Om noter og rapporter
Læs mereVejledning til opbygning af hjemmesider
Side 1 af 9 Vejledning til opbygning af hjemmesider Hvis du er inde på din klubs hjemmeside, fx på forsiden, kan du nu gå i gang med at redigere. For at få redigeringsværktøjet frem, skal du klikke på
Læs mereI denne arktikle går jeg gennem Slet, Ret og Opret data i en MySQL database. der er også en lille del i den hvor den postere datanen ud i en løkke
Denne guide er oprindeligt udgivet på Eksperten.dk MySQL for nybegynder I denne arktikle går jeg gennem Slet, Ret og Opret data i en MySQL database. der er også en lille del i den hvor den postere datanen
Læs mereOpret en formular i Dreamweaver
Opret en formular i Dreamweaver. Åben det html-dokument hvor du vil have din formular skal være på. 2. Klik i det felt (DIV eller tabel) hvor du vil have din formular skal være. Du kan se du er i feltet
Læs mereSingleton pattern i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.
Læs mereDet er primært relevant for dem hvor der arbejdes på en gammel bærbar computer, som ikke har en stærk processer og nok ram, at gøre godt med.
Denne guide er oprindeligt udgivet på Eksperten.dk Optimer XP manuelt! Jeg beskriver 9 skridt man kan udføre hvis man er interesseret i, at gøre XP hurtigere ved start, nedlukning og generelt! Hvis du
Læs mere