http://www.youtube.com/watch?v=MXS3xKV-UM0&fmt=18
A Wolfenstein like maze theme was chosen because of ease of implementation, you could of course embed a widget onto any 3d surface. The trick is to create a 3d transform mapping from a 2d plane (where the widget or other Qt drawn graphics resides) onto any quad in 3d space, and then do a perspective projection, before converting the 3d transform to a QTransform. Now, by making all the widgets and wall segments graphics items, you only need to use QGraphicsItem::setTransform() with the custom created transform and QGraphicsView will handle all event translation for you. The way the camera movement works is by recomputing and resetting every item’s transform on each frame. To avoid having to continuously redraw all the widgets if they’re not being updated, QGraphicsItem::setCacheMode(QGraphicsItem::ItemCoordinateCache) is the way to go.
I’ve embedded Qt’s media player demo to show the ability to embed videos in a QGraphicsView as tbastian blogged about just recently: Videos get pimped
I’ve also embedded the 3d .obj model viewer I blogged about earlier to show how to mix in OpenGL content by setting up the correct projection and modelview matrices. Note that except from this 3d model everything else is drawn using QPainter with QTransform, both the walls, sprites, and widgets.
Now, this example might not be the most useful thing in the world, but it’s meant as a demonstration of how you can stretch the Qt API in new directions.
Want to play with the source? It’s available through our gitweb at http://labs.trolltech.com/gitweb?p=WolfenQt;a=summary
Note that the performance against Qt 4.5 is better than against Qt 4.4, so if you try it out you might want to use the 4.5 snapshots at the moment. For the very best performance run with the “-graphicssystem raster” option (So long and thanks for the blit!). Also, there sees to be some bugs regarding certain widgets not being shown on Windows/Mac. Left-clicking links in embedded QWebViews is also broken at the moment.
- szotsaki blogja
- A hozzászóláshoz be kell jelentkezni
- 1451 megtekintés
Hozzászólások
Ötletes!
- A hozzászóláshoz be kell jelentkezni
Hat lehet dobom a gtk -t es qt-re valtok :)
kiprobalasnak mindenkepp megnezem ...
szep demo.
szép napokat
zsömi
- A hozzászóláshoz be kell jelentkezni
meg jo, hogy en elobb a qt-t kezdtem. Most nem kell eldobnom semelyik masik gagyit :)
- A hozzászóláshoz be kell jelentkezni
ja, csak az a baj, hogy nekem a gnome felulete meg mindig jobban tetszik mint a kde.
szép napokat
zsömi
- A hozzászóláshoz be kell jelentkezni
csak az a baj, hogy itt senki nem beszelt errol.
csak az a baj, hogy qt-hez van gtk motorral megjelenitett tema.
csak az a baj, hogy regen tulmutat a qt a gnome-kde nyalakodason, es lehet benne Vistatol OSX-en at s60-ra, mindenre fejleszteni a nativ lookandfeelnek megfelelo alkalmazasokat.
es az a jo, hogy a legtobben ezt nem tudjak, decsakagnomajo!1!!!1
Na de a temahoz visszaterve, te talan azert preferalod fejleszteshez a gtk-t, mert a kde csunya...?
- A hozzászóláshoz be kell jelentkezni
Az az igazsag, hogy a Gtk sem rossz annak, aki inkabb a pure C-t kedveli. Arrol nem beszelve, hogy a Gtk telleg csak GUI lib, a Qt meg... halozat, xml, webbrowser... es meg ki tudja mi. Hozzatennem, hogy a Gtk != Gnome, noha ez utobbi az elobbire epit.
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
GUI-t OOP nélküli nyelvben fejleszteni, ez valami mazochizmus vagy elmebetegség?
"a Qt meg... halozat, xml, webbrowser..."
Ez a portolhatóság szempontjából előnyös. Ha mindenre Qt libet használsz, akkor biztosan nem fogsz szívni, ha más oprendszerre vagy fordítóra kell portolni a programot.
- A hozzászóláshoz be kell jelentkezni
+1
nincs husznotfele threadezesre felkeszites, a qt majd megcsinalja helyetted. Na mindjart jonnek a javasok, hogy ugye nemcsak az o segguk van kinyalva :)
- A hozzászóláshoz be kell jelentkezni
1) Szep az, ami erdek nelkul tetszik. Ha valakinek az tetszik, hogy nem hasznal OO-t, az neked miert faj?
2) En nem allitottam, hogy ez rossz dolog, csak a Qt kornyezet ennek kovetkezteben meretben nagy, hiszen komplett alrendszereket hordoz. Van, ahol szamit a footprint a lemezen is.
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
1. Nem fáj, csak nem értem.
2. Qt 4.x moduláris, lehet pl. csak a core és a gui komponenst használni.
- A hozzászóláshoz be kell jelentkezni
Ja, de telepiteni csak komplett lehet mint runtime-t.
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Valóban, egy csomagban vannak. Amúgy nem tudom, nem lehet-e/miért nem lehet szétszedni.
- A hozzászóláshoz be kell jelentkezni
"This is the Qt4 dance!.." :D
- A hozzászóláshoz be kell jelentkezni
Állati, kíváncsi leszek, mikor jelenik meg az első full 3D-s desktop ;)!
<= Powered By Ubuntu & Gentoo Linux =>
'Software is like sex: It's better when it's free!'
By Linus Torvalds
- A hozzászóláshoz be kell jelentkezni
em sokkal azután, hogy kitalálták a jó felbontású használható "full 3D"-s megjelenítőt.
- A hozzászóláshoz be kell jelentkezni