Gå til innhold

Anbefalte innlegg

Nå har jeg en litt oppdatert versjon av framework/spill hvor jeg har lagt til flere modeller (men ikke rettet på stjernene enda :p), samt at tekstur-filnavnet blir lest fra .3ds filen, istedet for at den var hardkodet.

Det er også lagt til en lite vellykket kollidering, og at du kan skyte prosjektiler.

 

Er det noen som har en litt mer velfungerende metode å få til kollidering på?

 

edit:

 

Jeg vil legge til at jeg nå også har fått til OpenAL og skal til å legge til dekoding av Ogg Vorbis for musikk, foreløpig leser den bare ukompimert wav (siden wav er et helvetes drittformat vil ikke alle wav filer du finner på harddisken eller nettet være støttet, rekkefølgen må være RIFF, WAVE "fmt " "data " og wFormatTag må være 1, og støtter 8 eller 16 bit, stereo eller mono)

Men jeg har ikke uploaded dette, siden det er noen bugs og slikt enda.

Kommer etterhvert.

Void2.zip

Endret av GeirGrusom
Lenke til kommentar
  • 2 måneder senere...
Videoannonse
Annonse

For de som måtte ønske å bruke SHA1-hashing andre steder enn i en WebForm, så har jeg skrevet en liten morsom sak som tar inn dataene som skal hashes og returnerer SHA1-hashen:

 

public string SHA1(string data)
{
   return System.BitConverter.ToString((new System.Security.Cryptography.SHA1CryptoServiceProvider()).ComputeHash((new System.Text.UnicodeEncoding()).GetBytes(data))).Replace("-", "");
}

Lenke til kommentar
public string SHA1(string data)
{
   return System.BitConverter.ToString((new System.Security.Cryptography.SHA1CryptoServiceProvider()).ComputeHash((new System.Text.UnicodeEncoding()).GetBytes(data))).Replace("-", "");
}

8136049[/snapback]

 

Sikker på at du ikke klarer å få til ENDA mer funksjonalitet inn i den ENE linjen med kode da? ;)

 

 

Sånn ser min ut:

public static string PasswordHash(string password, string salt)
{
  System.Security.Cryptography.SHA512Managed sha = new System.Security.Cryptography.SHA512Managed();
  byte[] PassAndSalt = new byte[password.Length + salt.Length];
  for(int i = 0; i < password.Length; i++)
     PassAndSalt[i] = (byte)password[i];
  for(int i = 0; i < salt.Length; i++)
     PassAndSalt[i + password.Length] = (byte)salt[i];

  byte[] hash = sha.ComputeHash(PassAndSalt);
  return Convert.ToBase64String(hash);
}

Lenke til kommentar

Hah! Min ser overlegent mye morsommere ut :D

 

Og så gjør den akkurat det den skal; Den tar inn en string og returnerer SHA1-hashen. En-linje-funksjoner som gjør masse jobb er festelige. Spesielt med "anonyme objekter" og slikt, av typen "(new System.Security.Cryptography.SHA1CryptoServiceProvider()).ComputeHash()"

Lenke til kommentar
  • 2 måneder senere...

Vel, jeg har laget en litt fancy hex editor, foreløpig kan den bare endre verdier i selve hex editoren, og trykker du på save så lagres den, greit nok.

Men det jeg ble litt stolt av, er "Layout view" som leser en XML fil som beskriver dataoppsettet på en binærfil (foreløpig har jeg bare laget en XML fil for BMP-er, men EXE filer er på vei)

Og den vil vise hvordan alle strukturer og slikt blir fyllt inn i dokumentet.

det finnes en rekke datatyper som støttes:

byte, sbyte, short, ushort, int, uint, long, ulong, float, double, string, array og struct

 

attributter:

name - gjelder alle felt og datatyper

unikt navn for datatypen eller feltet.

Pass på at det ikke blir gjort noen sjekk for å sjekke at navnet er unikt.

 

conidition - gjelder alle felt og datatyper

Et uttrykk som gir tilbake "1" eller "0" for å definere om dette feltet skal bli tatt med. Uttrykket kan inneholde paraneteser, og kan være så komplisert som nødvendig, den støtter alle normale regneoperasjoner, men jobber på integer nivå (dvs. ingen flyttall!) den støtter også de logiske operajonene =, !=, <, <=, >, >=, & (logisk og), | (logisk eller)

Uttrykket kan også inneholde verdier fra felt i filstrukturen, f.eks:

condition="my_struct.my_field=1"

Men: et uttrykk kan ikke inneholde mellomrom.

 

length - gjelder string og array

Kan være et uttrykk, eller en verdi.

Uttrykkets regler er likt som for condition.

 

type - gjelder struct og array

definerer hva slags datatype en struct eller array skal ha, for struct gjelder dette hvis du ikke skal definere en ny struct, men bruke en gammel.

f.eks:

<struct name="PointStruct">
 <uint name="x" />
 <uint name="y />
</struct>
<struct name="Window">
 <struct type="PointStruct" name="position" />
 <struct type="PointStruct" name="size" />
 <string name="window_name" format="unicode" />
</struct>

 

description - Ikke i bruk ;)

 

Se mer på bmpstruct.xml som et eksempel.

HexEdition.zip

Lenke til kommentar
Men det jeg ble litt stolt av, er "Layout view" som leser en XML fil som beskriver dataoppsettet på en binærfil (foreløpig har jeg bare laget en XML fil for BMP-er, men EXE filer er på vei)

 

Hmmm... Jeg testet programmet ved å velge en 5 megabyte stor bmp-fil. Hex-presentasjonen fungerte greit, men når jeg valgte Layout og bmplayout.xml så slukte programmet ditt alt minne pluss litt til :whistle:

 

Det samme skjer når jeg velger en tilfeldig zip-fil (~100Kb) og velger pe.xml i layout view. Bye bye minne...

 

Ellers så har du en uhåndtert exception hvis en velger en fil som er i bruk.

 

Nå er det sjelden jeg har brukt hex-editorer i det siste, men jeg mener at editering av hexverdiene må vært mye enklere. Må innrømme at hex-editoren i min Action Replay cartridge til C64 var bedre pga. hvor enkel redigeringen var. ;)

Lenke til kommentar

Hehe, jeg laget dette som en test av en idé, det finnes overhode ingen exception testing i den, og jeg vet at tegning er treg.

Men PE er for exe filer, og ikke Zip filer, og jeg har ikke skrevet noen tester i XML filen (men man kan legge til det med condition)

Den sluker minne, grunnen er at den dobler++ minne for hvert byte

så pass på :)

 

Edit:

Hex editor delen laget jeg på ti minutter, men den funker utmerket.

Du kan endre filer opp til 4 GB i størrelse, uten at det går utover ytelsen, grunnen er at den leser rett fra filen, istedet for å lagre hele filen i RAM (den lagrer selvsagt bare det man kan se i RAM)

Når du endrer, blir dette registrert i en liste over byte[] med offsets, som deretter lagres i filen når man trykker på disketten.

Dobbeltklikk på et felt for å endre det.

Endret av GeirGrusom
Lenke til kommentar
  • 2 uker senere...

Etter ønske: Her er nyeste versjon av Glorg

 

Hvis man lurer på hvordan den brukes, spør meg på irc.hdsoftware.no

 

Glorg er Open Source grafikk motor skrevet i 100% C#

Audio delen er ikke ferdig enda, og resten kan være offer for endringer, men den skal kunne brukes.

Er det noe som mangler, så ligger heler OpenGL(1.1 +litt) og OpenAL bibliotekene med.

Shaders er støttet, men utestet.

 

Glorg

Endret av GeirGrusom
Lenke til kommentar
  • 4 uker senere...

Ok, fra 3D-biblioteker over til Sudoku :p

 

Er det noen interesse for å utvikle en sudokuløser? Jeg hadde en noenlunde fungerende løsning før, men klarte å slette all koden i forbindelse med formatering, glemte alt å ta backup av prosjektene mine :blush:

 

Kunne vært kult å gjøre den sånn at den både tok 9x9 og 16x16 ruter.

 

Noen som har lyst?

Lenke til kommentar
Ok, fra 3D-biblioteker over til Sudoku :p

 

Er det noen interesse for å utvikle en sudokuløser? Jeg hadde en noenlunde fungerende løsning før, men klarte å slette all koden i forbindelse med formatering, glemte alt å ta backup av prosjektene mine :blush:

 

Kunne vært kult å gjøre den sånn at den både tok 9x9 og 16x16 ruter.

 

Noen som har lyst?

9007134[/snapback]

 

Jeg har allerede en :)

 

Og sudoku generator.

 

Og tablet PC versjon hvor man bruke "penn" for å løse brettet ...

 

Kan laste opp litt senere...

Lenke til kommentar

Starter det opp, trykker new game, men får servert en "Unhandeled Exception" :p

Prøvde den på WinXP Pro, sikkert derfor.

 

Klikk for å se/fjerne innholdet nedenfor
See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {65D00646-CDE3-4A88-9163-6769F0F1A97D} failed due to the following error: 80040154.
  at Microsoft.Ink.InkOverlay..ctor()
  at TabletSudoku.Sudoku.btNew_Click(Object sender, EventArgs e)
  at System.Windows.Forms.Control.OnClick(EventArgs e)
  at System.Windows.Forms.Button.OnClick(EventArgs e)
  at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
  at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
  at System.Windows.Forms.Control.WndProc(Message& m)
  at System.Windows.Forms.ButtonBase.WndProc(Message& m)
  at System.Windows.Forms.Button.WndProc(Message& m)
  at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
  at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
  at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
   Assembly Version: 2.0.0.0
   Win32 Version: 2.0.50727.42 (RTM.050727-4200)
   CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
TabletSudoku
   Assembly Version: 1.0.0.0
   Win32 Version: 1.0.0.0
   CodeBase: file:///C:/Programfiler/j0rn/TabletSudoku/TabletSudoku.exe
----------------------------------------
System.Windows.Forms
   Assembly Version: 2.0.0.0
   Win32 Version: 2.0.50727.42 (RTM.050727-4200)
   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
   Assembly Version: 2.0.0.0
   Win32 Version: 2.0.50727.42 (RTM.050727-4200)
   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
   Assembly Version: 2.0.0.0
   Win32 Version: 2.0.50727.42 (RTM.050727-4200)
   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
Microsoft.Ink
   Assembly Version: 1.0.2201.2
   Win32 Version: 1.0.2201.2
   CodeBase: file:///C:/Programfiler/j0rn/TabletSudoku/Microsoft.Ink.DLL
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
   <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

post-47756-1183632360_thumb.png

Lenke til kommentar
  • 5 uker senere...

Hihi, har jobbet litte granne med et flyt diagramsprogram i dag, ikke det at det i seg selv er så spesielt, det jeg synes ble litt genialt, er at den støtter på GDI+ og OpenGL, så man kan velge hvilken renderer den skal bruke :)

OpenGL er selvsagt endel raskere, men har ikke fått alle features inn der enda, så tekstjustering er fullstendig fraværende, og teksten blir heller ikke anti-aliased.

Samt at Linear gradient og slikt er litt køddent å få til, siden jeg må bruke stencil buffer og sånt tøys.

 

Edit: Lagt til funksjoner, og fjernet en del av innlegget som sa at disse funksjonene ikke er der.

 

Ja, bare File->New er det eneste menyalternativet som gjør noe :)

 

For å legge til nye "Conditional" som er den eneste typen objekt som er støttet enda, så finner du den i Toolbox helt til høyere, den i midten er for å kople ting til hverandre, og den til venstre er vanlig select.

 

Have phun

WinFlow.zip

Endret av GeirGrusom
Lenke til kommentar
  • 1 måned senere...

Hai!

 

Jeg har laget et wave synthesizer program.

 

Den fungerer ved at man har en stack med forskjellige matematiske uttryk, som blir utført i rekkefølge og lager til slutt en lyd, som man kan spille av ved å trykke på knappen.

 

Den bruker OpenAL for lyd, så det må installeres for at programmet skal fungere, i tillegg til selvsagt .NET Framework 2.0

 

OpenAL kan lastes ned fra OpenAL.org/downloads.html

 

Jeg har skrudd av at den kan skrive wav filer, men det er implementert :)

 

Det ligger bare med én eksempelfil, men det burde være ganske selvsagt.

 

Man legger til uttrykk ved å velge høyere museknapp på stack listen til høyere, og velge New->Expression

 

Deretter velger du det nye uttrykket i listen, og du får opp alle egenskapene på den i vanlig propertygriden som er under.

 

Hvert uttrykk kan bruke to variabler: x og y.

Hvis dette er det første uttrykket i stacken, vil y alltid være null.

 

Noen triks i programmet:

For å lage en stødig tone, må man bruke sinus.

for å få en sinus i frekvensen 20 000 Hz, må du skrive sin(x * 2 * pi * 20000)

Grunnen til dette, er at sinus regner i radianer, og én full svingning går fra 0 ti 2pi.

 

Man kan velge forskjellige addisjonsmetodet i Function egenskapen.

Jeg har funnet ut at de eneste man egentlig trenger er Add og Multiply.

 

Have phun!

WaveStudio.zip

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...