Ikkunamoottori

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
Post Reply
Sami345
Advanced Member
Posts: 349
Joined: Fri Aug 31, 2007 4:52 pm
Contact:

Ikkunamoottori

Post by Sami345 »

Tein noin vuosi sitten ikkunamoottorin. Päätin nyt sitten eilen julkaista sen. Löin siihen kiinni vielä Marcoderin kuvanvenytysfunktion. Minkäänlaista dokumentaatiota en silloin ollut tähän kirjoittanut ja en kauheasti enää muistanut koodista, joten dokumentaatiossa saattaa olla virheitä.

README.txt

Code: Select all

- Tiedostot
   - Ikkunamoottori.cb: itse moottori
   - OletusUlkonako.cb: määrittelee ikkunoiden ulkonäön
   - testi.cb: Muokattu Esimerkki 19, joka esittelee käyttöä

- CB:n kuvaanpiirtobugi
  - Tämä kirjasto olettaa kyseisen bugin ilmenevän koneellasi, jos näin ei ole muuta seuraavat rivit
    - Rivit 71-78 testi.cb
    - Rivi 28 OletusUlkonako.cb

- Funktiot
  - CreateWindow(w, h): Luo ikkunan
    - w: Ikkunan leveys
    - h: Ikkunan korkeus
    - Palauttaa kahvan ikkunaan
    
  - MaskWindow(hWnd, r, g, b): Määrittää ikkunan maskivärin
    - hWnd: Kahva ikkunaan
    - r: Punainen komponentti RGB-väristä
    - g: Vihreä komponentti RGB-väristä
    - b: Sininen komponentti RGB-väristä
    
  - GetWindowX(hWnd): Palauttaa ikkunan sijainnin X-koordinaatin
    - hWnd: Kahva ikkunaan
    
  - GetWindowY(hWnd): Palauttaa ikkunan sijainnin Y-koordinaatin
    - hWnd: Kahva ikkunaan
    
  - GetWindowWidth(hWnd): Palauttaa ikkunan piirtoalueen leveyden, jonka kokoisena se piirretään
    - hWnd: Kahva ikkunaan
    
  - GetWindowHeight(hWnd): Palauttaa ikkunan piirtoalueen korkeuden, jonka kokoisena se piirretään
    - hWnd: Kahva ikkunaan
    
  - GetWindowRealWidth(hWnd): Palauttaa ikkunan piirtoalueen todellisen leveyden
    - hWnd: Kahva ikkunaan
    
  - GetWindowRealHeight(hWnd): Palauttaa ikkunan piirtoalueen todellisen korkeuden
    - hWnd: Kahva ikkunaan
    
  - WindowVisible(hWnd): Palauttaa onko ikkuna näkyvissä
    - hWnd: Kahva ikkunaan
  
  - SetStyle(hWnd, style As String): Asettaa ikkunan tyylin, tyylitiedosto saa käyttää miten haluaa
    - hWnd: Kahva ikkunaan
    - style: Tyyli

  - SetWindowPos(hWnd, x, y): Asettaa ikkunan sijainnin
    - hWnd: Kahva ikkunaan
    - x: Sijainti X-akselilla
    - y: Sijainti Y-akselilla
  
  - SetWindowSize(hWnd, w, h): Asettaa piirtoalueen koon
    - hWnd: Kahva ikkunaan
    - w: Ikkunan uusi leveys
    - h: Ikkunan uusi korkeus
    
  - SetWindowTitle(hWnd, title As String): Asettaa ikkunan otsikon
    - hWnd: Kahva ikkunaan
    - title: Ikkunan uusi otsikko

  - SetWindowResizable(hWnd, resizable, resizeType = 0): Asettaa ikkunan venytettäväksi / venymättömäksi
    - hWnd: Kahva ikkunaan
    - resizable: Voidaanko ikkunan kokoa muuttaa raahaamalla
      - 0: Ei
      - 1: Kyllä samassa kuvasuhteessa
      - 2: Vapaasti
    - resizeType: 
      - 0: Venytys
      - 1: Piirtoalueen koon muutos (tyhjennetään koon muutoksessa)
  
  - SetWindowClosable(hWnd, closable): Asettaa ikkunan suljettavaksi / suljettamattomaksi
    - hWnd: Kahva ikkunaan
    - closable: Onko ikkuna suljettavissa?
    - Suljettaessa ikkuna asetetaan näkymättömäksi
  
  - DestroyWindow(hWnd): Tuhoaa ikkunan ja sen sisältämän kuvan
    - hWnd: Kahva ikkunaan
    
  - ShowWindow(hWnd, show = 1): Näyttää / piilottaa ikkunan
    - hWnd: Kahva ikkunaan
    - show: Näytettäänkö ikkuna
    
  - HideWindow(hWnd): Piilottaa (sulkee) ikkunan - Vastaa ShowWindow(hWnd, 0)
    - hWnd: Kahva ikkunaan
    
  - DrawToWindow(hWnd): Aloittaa piirron ikkunaan
    - hWnd: Kahva ikkunaan
    
  - EndDrawingToWindow(hWnd): Lopettaa piirron ikkunaan - Vasta tämä päivittää kuvan sisällön venytettävillä ikkunoilla
    - hWnd: Kahva ikkunaan
    
  - ResizeWindow(hWnd, w, h): Muuttaa ikkunan piirrettävää kokoa
    - hWnd: Kahva ikkunaan
    - w: Ikkunan uusi leveys
    - h: Ikkunan uusi korkeus
    
  - DrawWindows(): Piirtää ikkunat
  
  - UpdateWindows(): Suorittaa ikkunoiden logiikan

- Kiitokset
  - Marcoderille ScaleImagesta
  - Zerolle CoolBasicin mukana tulevista grafiikoista
Lataus:
Ikkunamoottori.zip
(734.55 KiB) Downloaded 373 times
Projektit: Fiperus - Jäädytetty pidemmäksi aikaa.
Voitot: Viikkokisa XIII, Pikapelikisa 3, Pikapelikisa 13
http://www.sami345.tk/
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Ikkunamoottori

Post by MaGetzUb »

Ihan mukava mootori, itselläni on kanssa tuommoinen projekti kesken (hiukan jäissä), mutta varmaan käynnistelen sitä taas. :D
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
Post Reply