játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5509
FZoli:    4894
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2529

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2198
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1654
syam:    1491
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] > 8 < [9] [10] [15]
glezmen - Törzstag | 381 hsz       Online status #174753   2012.02.14 23:34 GMT+1 óra  
van valakinek tapasztala az NDK-val?
mennyire maceras/munkaigenyes mar meglevo C++ projectet (semmi grafika meg ilyen, csak tiszta C++) belerantani?
   
DMG - Szerkesztő | 3172 hsz       Online status #174743   2012.02.14 21:01 GMT+1 óra  
a 8-as api már elég elterjedt (a legtöbb főzött rom ilyen, vagy jobb), de ettől függetlenül lehet olyan készülék, ami nem támogatja a 2.0-át szóval érdemes kétféle rendert írni, és vizsgálni a támogatottságot az elején.
-----------------------------------------
Dont Listen to the Naysayers
   
zeller - Törzstag | 490 hsz       Online status #174737   2012.02.14 20:41 GMT+1 óra  
Ha tomegre akarok targetelni, akkor valaszthatom a 8as apit (aka ogles2.0) vagy maradjak a 7esnel es a regebbi oglnel?

   
DMG - Szerkesztő | 3172 hsz       Online status #173986   2012.02.01 07:16 GMT+1 óra  
-----------------------------------------
Dont Listen to the Naysayers
   
bit.0x8000 - Törzstag | 574 hsz       Online status #173984   2012.02.01 06:51 GMT+1 óra  
Idézet
DMG :
Valami linkkel megbobhatnátok.


   
DMG - Szerkesztő | 3172 hsz       Online status #173951   2012.01.31 17:45 GMT+1 óra  
Idézet
Mort :
egész véletlenül nem ez az amit leszedtél?


http://btjunkie.org/torrent/Android-development-ebooks-2011/5960b33dda3015cd36a07fd412d70c9c88c641f57fc4



baszki, ez csak most tűnt fel.

Megnéztem ez az, szóval akkor fel sem töltöm, ha kell valakinek azért jelezze.
-----------------------------------------
Dont Listen to the Naysayers
   
DMG - Szerkesztő | 3172 hsz       Online status #173917   2012.01.31 10:37 GMT+1 óra  
Na visszatérve arra az 500 MB-os e-book gyűjteményre, lekapom ma a telefonra, aztán otthon fel tudom talán tölteni, mi az amit meghagyott erre a célra az FBI?

Valami linkkel megbobhatnátok.


Aztán mostmár talán sikerült visszarázódnom itt a angy átrendezések meg költözés után, és végre megint belevethetem magam a fejlesztésbe.
-----------------------------------------
Dont Listen to the Naysayers
   
bit.0x8000 - Törzstag | 574 hsz       Online status #173128   2012.01.21 22:20 GMT+1 óra  
Idézet
bit.0x8000 :
Sikerült belefutnom két problémába, az egyik, hogy ha kilépek a játékból, akkor újbóli indításkor csak egy fehér képernyő látható.


Végül is megvan a probléma oka: az android-os activity-kből nem lehet (érdemes) a hagyományos módon kilépni, az os "eltakarítja" az alkalmazást, ha kellenek az erőforrások. Viszont amikor az activity elveszti, majd újra visszanyeri a fókuszt, akkor újra létrejön a surface, és így a textúrák is. Ez nem túl hatékony dolog, de mivel maga a játék is egyszerű, egy gyengébb készüléken is kevesebb, mint egy másodperc alatt betöltődnek a textúrák, szóval elméletileg nem gond. Gyakorlatilag viszont a játék gyakran kilép mindenféle timeout üzenettel, ráadásul amikor újra létre akarom hozni a textúrákat, akkor nem jönnek létre.
Valaki esetleg tud egy jó leírást, hogy hogyan kéne megoldani ezt?
   
Joderida - Tag | 55 hsz       Online status #172872   2012.01.18 01:04 GMT+1 óra  
Ezen a kérdésen még én sem gondolkoztam, de gondolom egyszerű a megoldás. Ha csak megszakítás történik akkor meghívódik az onPause(), ott lemented az aktuális állapotot nálam pl.:
Kód:
protected void onPause() {
super.onPause();
_gameView.onPause();
}
...
gameviewban:
public void onPause() {
super.onPause();
if (my_manager.isSupported()) {
my_manager.stopListening();
}
}

tehát én leállítom a rotation managerem, különben futna tovább a háttérben.
Aztán onResume-ra újra elindítom, tehát igen elviekben manuálisan kell leállítanod, mentened stb. Legalábbis én így teszem .
-----
Ha itt tartunk nekem is lenne 1 kérdésem, remélem tudtok segíteni.
Ray Intersection-t írok éppen, és egy gondom van:
Egy háromszöget vizsgálok, ha ez álló helyzetben történik gl.gltranslatef() nélkül, akkor működik.

Ha viszont használom, akkor elviekben a ModellView matrixomnak változnia kéne, és a háromszög poziciójának változnia kéne, ehelyett ott marad ahol volt(azaz folyamatosan a képernyőm közepén marad és keresztül tudom metszeni a vonallal).

Mivel 1.0-t használok ezért beimportáltam egy neten is megtalálható osztályhalmazt, (MatrixStack.java, MatrixTrackingGL.java)
A gameview-ban megmondom, hogy én ezt akarom használni :
Kód:
setGLWrapper(new GLSurfaceView.GLWrapper() {
@Override
public GL wrap(GL gl) {
return new MatrixTrackingGL(gl);
}
});

Ezeket a fgvenyeket használom belőle.
Kód:
public float[] getCurrentModelView(GL10 gl) {
float[] mModelView = new float[16];
getMatrix(gl, GL10.GL_MODELVIEW, mModelView);
return mModelView;
}

public float[] getCurrentProjection(GL10 gl) {
float[] mProjection = new float[16];
getMatrix(gl, GL10.GL_PROJECTION, mProjection);
return mProjection;
}

private void getMatrix(GL10 gl, int mode, float[] mat) {
MatrixTrackingGL gl2 = (MatrixTrackingGL) gl;
gl2.glMatrixMode(mode);
gl2.getMatrix(mat, 0);
}

Végül így szerzem meg a far,near plane-es koordinátákat.
Kód:
public Vec3[] GetWorldCoords(Vec2 touch, Camera cam) {
float[] xyzw = { 0, 0, 0, 0 };
Vec3[] world_Pos = new Vec3[2];
int viewport[] = { 0, 0, (int) cam.getScreenWidth(),
(int) cam.getScreenHeigth() };

GLU.gluUnProject(touch.getX(), viewport[3] - touch.getY(), 0,
getCurrentModelView(gl), 0, getCurrentProjection(gl), 0,
viewport, 0, xyzw, 0);
xyzw[0] /= xyzw[3];
xyzw[1] /= xyzw[3];
xyzw[2] /= xyzw[3];
// xyzw[3] /= xyzw[3];
// xyzw[3] = 1;
world_Pos[0] = new Vec3(xyzw[0], xyzw[1], xyzw[2]);

GLU.gluUnProject(touch.getX(), viewport[3] - touch.getY(), 1,
getCurrentModelView(gl), 0, getCurrentProjection(gl), 0,
viewport, 0, xyzw, 0);

xyzw[0] /= xyzw[3];
xyzw[1] /= xyzw[3];
xyzw[2] /= xyzw[3];
// xyzw[3] /= xyzw[3];
// xyzw[3] = 1;
world_Pos[1] = new Vec3(xyzw[0], xyzw[1], xyzw[2]);
return world_Pos;
}

és ez a draw:
Kód:
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
//kamera, pálya stb. kirajzolása...
gl.glTranslatef(0.0f + bogie_path.current_x, 0f,
0f + bogie_path.current_z);//itt az eltolás
                 (Ha képernyőkatt)
                    akkor: GetWorldCoords-et hívom meg. S ez mindíg mást ad near/far plane-re, viszont a 3szögem mintha ezzel együtt mozogna.
                    sugár metszi-e az adott 3szöget.... stb stb

Remélem tudtok segíteni és, azt is, hogy én is segítettem annak aki esetleg érdeklődne ezután.
-* Ui.: *-
Nem fogjátok elhinni . Próbálgattam a különböző megoldásokat, s végül a legutolsó gl.glPopMatrix(); után beszúrtam ezt a sort(elötte minden kirajzolás, transformáció megtörtént):
gl.glTranslatef(0.0f - bogie_path.current_x, 0f,0f - bogie_path.current_z);
Ezután csináltam a ray intersection-t, és működött
Tehát nem hozzáadtam a Z-t, X-et hanem kivontam. S voálá a 3szög ott maradt ahol kellett. S minden redesen mükődik, a kérdésem még mindíg fent áll, hogy, "-"-al hogyan működik?

Logikusan, ha valamit eltolok hátra, akkor az összes többi objektum ott marad a helyén, miért kéne előre tolni a jelen esetben vizsgálandó objektumokat?

Ezt a hozzászólást Joderida módosította (2012.01.18 15:06 GMT+1 óra, ---)

   
DMG - Szerkesztő | 3172 hsz       Online status #172644   2012.01.13 09:34 GMT+1 óra  
Ezzel a problémával én még nem találkoztam, de amint lesz egy szussznyi időm utánanézek, mert engem is érdekel.
-----------------------------------------
Dont Listen to the Naysayers
   
bit.0x8000 - Törzstag | 574 hsz       Online status #172636   2012.01.12 22:38 GMT+1 óra  
Idézet
DMG :
Fehér képernyőre nincs tippem sajnos, viszont a main.xml-ben be lehet állítani( azt hiszem, hogy ott), hogy ne kapcsolja ki a képernyőt a teló játék közben.


A képernyő kikapcsolását sikerült orvosolni, a GLSurfaceView-ből származtatott View osztályom konstruktorába kellett elhelyezni a "setKeepScreenOn(true);" sort. (Bár nem volt mindegy, hogy hol szerepel!)

Egy másik dolog: ahogy én kivettem a leírásokból, a telefon bármikor "ürítheti" az alkalmazás erőforrásait, és manuálisan kell megoldani ezek visszatöltését, amikor az alkalmazás újra aktívvá válik (meghívódik a megfelelő metódus) - vagy én értettem félre a dolgot?
   
DMG - Szerkesztő | 3172 hsz       Online status #172631   2012.01.12 21:40 GMT+1 óra  
Fehér képernyőre nincs tippem sajnos, viszont a main.xml-ben be lehet állítani( azt hiszem, hogy ott), hogy ne kapcsolja ki a képernyőt a teló játék közben.
-----------------------------------------
Dont Listen to the Naysayers
   
bit.0x8000 - Törzstag | 574 hsz       Online status #172615   2012.01.12 20:31 GMT+1 óra  
Sikerült belefutnom két problémába, az egyik, hogy ha kilépek a játékból, akkor újbóli indításkor csak egy fehér képernyő látható. Itt az activity:
Kód:
package niche.android;

import android.os.Bundle;

public class Activity extends android.app.Activity implements Runnable
{   private Graphics.View view;
    private Thread thread;     
   

    public void onCreate(Bundle savedInstanceState)
    {         
        super.onCreate(savedInstanceState);
        Standard.initialize(getResources());       
        setContentView(view = new Graphics.View(this));
    } 
   
    public void onStart()
    {         
        super.onStart();       
if (thread == null) (thread = new Thread(this)).start();
    }
   
    public void onDestroy()
    {         
        super.onDestroy();       
thread.stop();
    }
   
    protected void onPause()
    {
        super.onPause();
        view.onPause();
        thread.suspend();
    }
   
    protected void onResume()
    {
        super.onResume();
        Standard.Timer.INSTANCE.resume();
        view.onResume();
        thread.resume();
    }   
   
    public void run()
    {
        Control.loop();
        finish();
    }
}


A másik, hogy játék közben (ha nincs bemenet) egy idő után kikapcsol a képernyő, ilyenkor a home gombbal visszalépve ugyanúgy a fehér képernyő fogad.

Valakinek van ötlete, hogy milyen típusú hiba okozhat ilyeneket?
(A fehér képernyő gondolom lehet OpenGL eredetű.)
   
Omega - Tag | 70 hsz       Online status #171559   2011.12.29 13:23 GMT+1 óra  
Ingyeneset felrakhatsz , checkouton keresztüli kifizetés magyarországra nem elérhető, legközelebbi ausztria. Vagyis kimész, nyitsz kint egy bankszámlát, meg biztosítasz egy kamú címet és mehet ki google-s fizetéssel. Itthon az Oberbanknak van szolgáltatása , hogy magánemberként segítenek ausztriában folyószámlát nyitni.

   
krees - Törzstag | 732 hsz       Online status #171556   2011.12.29 12:27 GMT+1 óra  
Mi még 3D Magicen keresztül adtuk ki a Balloon Aviatort (Amit valószínűleg meg is őrzünk) , de már lehet közvetlenül is. (Legalábbis úgy tudom)
   
Joderida - Tag | 55 hsz       Online status #171555   2011.12.29 12:22 GMT+1 óra  
Ha lejjebb mész fel vannak sorolva azok az országok ahol el lehet adni ingyen, fizetősért appokat: http://support.google.com/androidmarket/developer/bin/answer.py?hl=en&answer=138294

   
H.István - Törzstag | 304 hsz       Online status #171553   2011.12.29 11:48 GMT+1 óra  
Joderida: Nem tudom, hogy milyen formában lehetséges fizetős appokat árulni innét androidra, légyszives ha találsz valami releváns cikket linkeld be ide is, és remélem a nagyon közeli jövőben tervezik Magyarországot is bevenni a támogatott országok listájára.
   
Joderida - Tag | 55 hsz       Online status #171527   2011.12.29 00:42 GMT+1 óra  
Szia!
Az adó szabályok, vagy mi miatt nem lehetett eddig megvalósítani a történetet, de szeptemberben olvastam egy cikket/hírt, hogy Magyarországról is lehet már feltenni fizetős appokat. De délután utána nézek ennek.

   
H.István - Törzstag | 304 hsz       Online status #171455   2011.12.28 10:53 GMT+1 óra  
Köszi a válaszokat! Nézegettem még olyan megoldásokat is, hogy külföldi rokonon keresztül hogyan lehetne.
Hát azért elég nagy sóherság a google részéről az ilyesmi, hogy beregisztrál az ember fejlesztőnek, kipengeti a 25dolcsit, és a következő oldalon kapja a pofont, hogy szarra sem ment vele, max ingyé lehet túrni fel az appokat...
Van olyan ember itt aki készitett fizetős appot, játékot androidra és el is adta?
   
DMG - Szerkesztő | 3172 hsz       Online status #171429   2011.12.27 21:27 GMT+1 óra  
Van, de itthonról közvetlenül nem lehet, teszem azt a 3D Magic-en keresztül, mint kiadón keresztül lehet.
-----------------------------------------
Dont Listen to the Naysayers
   
Bukta - Tag | 308 hsz       Online status #171427   2011.12.27 21:12 GMT+1 óra  
De én egyszer voltam, ilyen androidos tanfolyam 1-2 óráin és akik tartották az előadást azoknak volt/van egy cégük és telefonokra fejlesztenek. Szóval azért mégis van megoldás,,,
ArgumenException: A megadott DependencyObject nem ehhez a Freezable elemhez tartozó környezet. Paraméter neve: context
:oO Mi a???
   
DMG - Szerkesztő | 3172 hsz       Online status #171425   2011.12.27 20:17 GMT+1 óra  
Magyarországról sehogy. Hacsak nem maradtam le valamiről az elmult egy hónapban.
-----------------------------------------
Dont Listen to the Naysayers
   
H.István - Törzstag | 304 hsz       Online status #171423   2011.12.27 18:15 GMT+1 óra  
Egy jó kérdés annak aki Magyarországról van és árul is androidos cuccokat. Hogyan sikerült kereskedőként felregisztrálni?
   
bit.0x8000 - Törzstag | 574 hsz       Online status #171401   2011.12.26 21:18 GMT+1 óra  
Összedobtam egy kis androidos java-opengl tesztprogramot, akinek esetleg van androidos telefonja, meg néhány szabad perce, az kipróbálhatná...
   
DMG - Szerkesztő | 3172 hsz       Online status #171154   2011.12.22 07:17 GMT+1 óra  
A játszhatóság az teszt kérdése, én a landscape elrendezést preferálom, de vannak játékstílusok ahol a portrait módban egyszerűbb az irányítás. A landscape általában kétkezes, még akkor is ha nem multi touch az irányítás.

Ami az elrendezés illeti, szerintem az általad utolsónak említett megoldás a szerencsésebb.
-----------------------------------------
Dont Listen to the Naysayers
   
bit.0x8000 - Törzstag | 574 hsz       Online status #171095   2011.12.21 15:08 GMT+1 óra  
Felmerült bennem két inkább ergonómiai, mintsem technikai jellegű kérdés:
Az egyik, ha egy match3 szerű játékban landscape módban a képernyő jobb szélén lévő sávból lehet az elemeket "ráhúzkodni" a táblára, akkor egy átlagos felhasználó kényelmesen meg tudja-e fogni és tartani a telefont? Vagy jobb megoldás lenne portrait módban a képernyő aljára tenni ezt a sávot?
A másik, hogy egy "egyképernyős" (nem szkrollozó) játéknál (landscape módban) vajon mi a legjobb módja a különböző képarányok kezelésének? Eleve csak a "szélesebbeken" indul el, a natív képarányt rányújtja az aktuálisra, alapból a keskenyebbekre van méretezve, és a széleket valami grafikával tölti ki, illetve a gui elemek "lebegnek" (a szélesebb kijelzőkön szellősebb az elrendezés)?

Ezt a hozzászólást bit.0x8000 módosította (2011.12.21 17:03 GMT+1 óra, ---)
   
LugaidVandroiy - Törzstag | 504 hsz       Online status #170968   2011.12.18 17:26 GMT+1 óra  
Idézet
bit.0x8000 :
Egy kérdés, hátha valaki tudja a választ: amikor kilépünk az Activity-ből, az opengl textúrák eltakarítását rá lehet bízni a VM-re, vagy érdemes manuálisan tisztogatni?



Én eddig amit olvastam az Androidos OpenGL ES-ről, mindenképpen érdemes. Sőt, ha jobban belegondolok, canvasnál is ki kellett ürítenem az összes bitmapet.

   
bit.0x8000 - Törzstag | 574 hsz       Online status #170966   2011.12.18 17:19 GMT+1 óra  
Egy kérdés, hátha valaki tudja a választ: amikor kilépünk az Activity-ből, az opengl textúrák eltakarítását rá lehet bízni a VM-re, vagy érdemes manuálisan tisztogatni?
   
LugaidVandroiy - Törzstag | 504 hsz       Online status #170433   2011.12.11 08:51 GMT+1 óra  
Idézet
bit.0x8000 :
Idézet
LugaidVandroiy :
A tableten tesztelve nagyobb.... Mi a halál van itt? Hogy adhat vissza ugyanaz a függvény ugyanarról a fájlról két különböző értéket?


Nem lehet, hogy stream-eli, és ezért különböző? A két metódus leírásában nincs erről semmi?


Az egészet bebufferelem lejátszás elött, tehát nem hinném, hogy ez a probléma. Doksit még nem néztem, de majd ha lesz egy szabad 10 percem...

   
bit.0x8000 - Törzstag | 574 hsz       Online status #170397   2011.12.10 11:39 GMT+1 óra  
Idézet
LugaidVandroiy :
A tableten tesztelve nagyobb.... Mi a halál van itt? Hogy adhat vissza ugyanaz a függvény ugyanarról a fájlról két különböző értéket?


Nem lehet, hogy stream-eli, és ezért különböző? A két metódus leírásában nincs erről semmi?
   
LugaidVandroiy - Törzstag | 504 hsz       Online status #170391   2011.12.10 10:00 GMT+1 óra  
Idézet
LugaidVandroiy :
Azt magyarázza meg nekem valaki, hogy a MediaPlayer osztályban a getDuration() függvény miért ad közel egy másodperccel kisebb értéket, mint a getCurrentPosition() ha a fájlt lejátszottam végig egy ~ 12 másodperces hangfájl esetén?



A tableten tesztelve nagyobb.... Mi a halál van itt? Hogy adhat vissza ugyanaz a függvény ugyanarról a fájlról két különböző értéket?

   
matthew3r - Tag | 14 hsz       Online status #170364   2011.12.09 20:27 GMT+1 óra  
Ha valakit érdekel néhány képet csatolok a játékból. Bocs a méretek miatt, de voda845 az nem egy erőmű, emulator meg nem akar képet készíteni, print screenhez meg nincs kedvem Illetve sikerült végre a collisiont megoldani!





A bal alsó gomb nem újrahasznosítás, hanem azzal választhat a játékos, hogy forogni akar, vagy előre hátra menni. Ma talán ki tudom próbálni jobb telón is, remélem jól fog menni

   
LugaidVandroiy - Törzstag | 504 hsz       Online status #170314   2011.12.09 12:20 GMT+1 óra  
Azt magyarázza meg nekem valaki, hogy a MediaPlayer osztályban a getDuration() függvény miért ad közel egy másodperccel kisebb értéket, mint a getCurrentPosition() ha a fájlt lejátszottam végig egy ~ 12 másodperces hangfájl esetén?

   
matthew3r - Tag | 14 hsz       Online status #170288   2011.12.08 17:28 GMT+1 óra  
Idézet
matthew3r :

Kód:
GLU.gluPerspective(gl, 65.0f, (float)width / (float)height, [b]1.0f[/b], 100.0f);



Közben rájöttem, hogy a Near miatt van az egész, mivel 1 egységnyire van attól a ponttól, ahol a kamera van, így nyilván belelóg a falba. Átváltottam 0.1--re és mindjárt más

   
matthew3r - Tag | 14 hsz       Online status #170276   2011.12.08 15:20 GMT+1 óra  
Idézet
Joderida :
matthew3r kérdésére:


Köszi, azóta igazából kikerültem a problémát A map máshol lesz benne, és ahova kell ott meghívom. A collision-nél pedig úgy döntöttem, hogy csak a kamera körüli 16 fal koordinátát vizsgálom (alapból 9-re akartam leszűkíteni, de az nem lett volna megoldható). Most már viszonylag jó sebességgel megy, csak számítási gondok vannak még, de azon már csak idő kérdése, hogy túllendüljek
Getter/Settert egyébként használok, bár, ahogy hallottam, meg olvastam az nem a legpraktikusabb, de pont azt csinálja, amit szeretnék, tehát nem különösebben érdekel
Logolás is van, néha kicsit bele is kavarodok, hogy egy-egy log honnan jön, meg mit ír ki, de ezeket csak akkor pucolom ki, ha nagyjából kész van a cucc, mert bármikor jól jöhet.

Amúgy a kódodban láttam, hogy csak a map egy részét jeleníted meg. Ez nekem is megfordult a fejemben, de most úgy áll a játék maga, hogy túl hosszú lenne beleírni, meg sürget az idő, de majd, ha leadtam, akkor utána talán szépítgetek rajta.

Ui, kérdés: azt, hogy a kamera például fordulásnál úgymond ne lógjon bele a falba, tehát, hogy ne lássak bele egy bizonyos közelségnél azt leginkább a FOV-val tudom állítani? Próbálnám elérni, hogy a lehető legközelebb tudjak menni, de 65-ös FOV-val is kb 1.4 távolság kell a faltól, hogy a kamerát bármerre forgatva ne lógjon bele.

Kód:
GLU.gluPerspective(gl, 65.0f, (float)width / (float)height, 1.0f, 100.0f);

Ezt a hozzászólást matthew3r módosította (2011.12.08 15:30 GMT+1 óra, ---)

   
Joderida - Tag | 55 hsz       Online status #170240   2011.12.07 21:27 GMT+1 óra  
matthew3r kérdésére:
Sajnos nem látom át a kódodat kód nélkül . De, egy-két probléma ami nálam is felmerült, hátha köztük van:
Statikus úton nem tudod elérni a renderer-t (általában ezért üvölt az eclipse)
értsd:
Kód:
public void contact_by_rotation(final float roll) { //static nem lehet és az ezt meghívó fgv. sem lehet statikus
queueEvent(new Runnable() {
@Override
public void run() {
                        //amit át szeretnél adni
}
});
}

Használj settert/gettert, esetleges debugolást/logolást megkönnyíti.

S nem tudom ez segít-e/segíthet-e még, de én a game rendererem elejét használom ilyenekre, tehát az enyém így néz ki:
Kód:
public void onDrawFrame(GL10 gl) {
Joe.rotate_arm(gl); //a modellem mozgatja a karját, azaz csak egy változót növelek
bogie_path.use_path(_speed); //útvonalat deffiniáltam a _speed az aktuális sebessége a mozgó tárgyamnak, és kiszámolom, hogy mennyit menjen(toljam el)az adott görbén.
map.use_map(bogie_path.current_x, bogie_path.current_y,
bogie_path.current_z); //Map-et részekre szedtem, és csak egy bizonyos részig jelenítem meg
bogie.Collusion(current_x,current_y,current_z) // Neked ez a rész kell szerintem, én majd másra fogom használom a Collusiont.
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
                //Aztán jöhet a csoda.
                //Draw()...

Lehet, hogy nem így kéne mindezt csinálni, de, ha DMG, vagy LugaidVandroiy jobb megoldást tud biztos megmondják.

ui.: Hm valamiért nem húzgálja be a kódot, áh már nincs időm megnézni mi a gond elnézést, majd holnap updatelem . Jó8

   
bit.0x8000 - Törzstag | 574 hsz       Online status #170226   2011.12.07 18:27 GMT+1 óra  
Felmerült egy érdekes probléma: egy android Activity-ben ugyebár alapból van egy UI szál, és általában érdemes írni egy Gameloop szálat is. (Egyébként alapból a GLSurfaceView frissítése is saját szálon fut, de ezt ki lehet kapcsolni és requestRender()-rel manuálisan is rajzolni. Hmm, ilyenkor maga a rajzolás vajon azért külön szálon fut?) Szóval, van az alábbi osztályom, ahol az onTouch metódus az UI szálból, a poll metódus pedig a Gameloop szálból hívódik. A kérdés, hogy vajon ez így a várt eredményt (feldolgozás közben ne íródhassanak át a változók) adja-e? (A kódot kicsit vágtam, hogy egyértelműbb legyen.)
Kód:
public abstract class Input
{   
    static public class Listener implements View.OnTouchListener
    {       
        public boolean onTouch(View view, MotionEvent event)
        {
            try {semaphore.acquire();} catch (Exception exception) { }           
            eventX = event.getX();
            eventY = event.getY();
            semaphore.release();
            return true;           
        }
    }

    static protected float x, y;
    static private Semaphore semaphore = new Semaphore(1);
    static private float eventX, eventY;

   
    static protected void poll()
    {
        try {semaphore.acquire();} catch (Exception exception) { }
        x = eventX;
        y = eventY;
        semaphore.release();
    }
}
   
matthew3r - Tag | 14 hsz       Online status #170162   2011.12.06 19:24 GMT+1 óra  
Idézet
Joderida :

Nekem ez sokat segített:
http://nehe.gamedev.net/tutorial/collision_detection/17005/
Ajánlom a bouding(vagy hasonló) boxok használatát amúgy, tehát ne minden pontját vizsgáld az objektumodnak, hanem azt tedd bele egy kockába(kiolvasásnál min-max kiválasztásokkal megnézed a széleket, sarkokat), én is így oldottam meg, jelentősen gyorsabb, mint az objektumod minden pontját megvizsgálni.


Kicsit később megnézem, de most szét vagyok esve
A dolog egyébként úgy néz ki, hogy van a pálya, ami nagyjából így néz ki:

Kód:
int palya[][] = {{1,1,1,1,1}, {1,0,0,0,1}, {1,0,1,0,1}, {1,0,0,0,1}, {1,1,1,1,1}};


Természetesen sokkal nagyobb, csak itt rövidítek (konkrétan 236 1-es van). Szépen végigmegyek soronként, és, ahol 1-es oda falat rakok, ahol 0, oda talajt a megfelelő koordinátára (for ciklus stb). Ez megy. Ezt úgy képzeltem el aztán, hogy ugye szépen átadom az X,Z koordinátát, és az átadott kamera koordinátával összehasonlítom. Ugye a pálya koordinátája az onDrawFrame-ben vannak (csak elvileg, mert a pálya konkrét kirajzolása másik osztályban van, itt csak a metódus van meghívva, a kamera viszont ott adódik, ahol az irányítás, majd a koordináták átadódnak az onDrawFrame-be természetesen. A pálya kirajzolásánál viszont nem tudtam kivenni az adatokat, mivel ahhoz úgy kellett volna meghívnom a Collision-höz a metódust, hogy ezen a vezérlő osztályon keresztül,
Csak, hogy érteni lehessen:
GameController(vezérlő,/irányítás) osztály -> setRenderer(main) -> Mainben van a kiíratás.
A pályánál pedig meg kellett volna hívnom a GameController-t, de mikor azt megpróbáltam a program összeomlott, tehát egyáltalán el sem indult, és elég cifra üzenetet dobott ki.
Emiatt az int palya[][] dolgot beleraktam a vezérlő osztályba is. Ott végigmentem rajta forral, és küldtem az adatokat a Collision-nek, viszont első próbálkozásra (mivel a for-ok után raktam a kamerával való vizsgálatot) így természetesen csak az utolsó koordinátával néztem, ezért oda, ahol a fal adatait küldtem beraktam az egész mozgást, illetve a vizsgálatot, ami viszont embertelenül lelassította (konkrétan a hudon kívül a játék elfeketedett), mivel ugye 236-szor kellett vizsgálni minden Move TouchEvent-nél.
Ha ezt valamennyire meg lehetett érteni, amit leírtam, akkor a linktől függetlenül kérdezném, hogy az én pályaelrendezésemre is rá lehet húzni, illetve hogyan tudnám normálisan kezelni a dolgokat? Ha úgy van esetleg készítek egy átláthatóbb uml-t, vagy valamit, csak, hogy látszódjon mi mivel, meg hogyan kapcsolódik (azok közül, ami fontos).

   
Joderida - Tag | 55 hsz       Online status #170068   2011.12.05 23:48 GMT+1 óra  
Idézet
matthew3r :
Közben a kérdésemre meglett a válasz. Az volt a gond, hogy ahol átadtam az értéket az egy másik osztály volt, mint, ahol megpróbáltam ellenőrizni, így gyakorlatilag elszeparálódtak egymástól, viszont miután a metódus elé odaraktam a meghívott osztályt úgy már tökéletesen működött. Leírva kicsit nehezen érthető, de lényeg, hogy megvan, most már lassan talán még a falakkal való ütközés is összeáll


Nekem ez sokat segített:
http://nehe.gamedev.net/tutorial/collision_detection/17005/
Ajánlom a bouding(vagy hasonló) boxok használatát amúgy, tehát ne minden pontját vizsgáld az objektumodnak, hanem azt tedd bele egy kockába(kiolvasásnál min-max kiválasztásokkal megnézed a széleket, sarkokat), én is így oldottam meg, jelentősen gyorsabb, mint az objektumod minden pontját megvizsgálni.

ui.:
Ha landscape módban nézitek az orentation managger adatait akkor a pitch értékét válasszátok a roll helyett, mert a roll csak portrait módhoz van, mert az csak +/- 90 fokot tud kimutatni, bár gondolkodtam rajta, hogy lehetne mégis használni a roll-t, de sajnos nem lehet kizárni egy-két dolgot. például, hogy rángatja a felhasználó a mobilt, az meg nem folyamatosan küldi az adatokat.

   
matthew3r - Tag | 14 hsz       Online status #170027   2011.12.05 14:50 GMT+1 óra  
Közben a kérdésemre meglett a válasz. Az volt a gond, hogy ahol átadtam az értéket az egy másik osztály volt, mint, ahol megpróbáltam ellenőrizni, így gyakorlatilag elszeparálódtak egymástól, viszont miután a metódus elé odaraktam a meghívott osztályt úgy már tökéletesen működött. Leírva kicsit nehezen érthető, de lényeg, hogy megvan, most már lassan talán még a falakkal való ütközés is összeáll

   
M4 - Tag | 187 hsz       Online status #170023   2011.12.05 13:37 GMT+1 óra  
Nem tudom ez mennyire használható erre:
http://developer.android.com/guide/publishing/licensing.html
Csak market-en működik, fizetős app-okra.

   
BlueDeath - Törzstag | 1035 hsz       Online status #170020   2011.12.05 13:02 GMT+1 óra  
Itt is felteszem a kérdést, hátha tudja valaki. Szeretnénk megadni néhány konkrét telefont amivel incompatibily-s a játékunk. Nem hardware szinten szeretnénk ezt beállítani a manifestben, hanem pl. telefon ID alapján. Ha tudtok valami megoldást szóljatok
   
krees - Törzstag | 732 hsz       Online status #169946   2011.12.04 18:09 GMT+1 óra  
https://monitor.distimo.com/app-developer-signup

Minden fejlesztőnek kötelező! Az összes marketet tudja, szépen elkülöníthető adatokat szolgáltat!
   
matthew3r - Tag | 14 hsz       Online status #169945   2011.12.04 18:06 GMT+1 óra  
Lenne egy új kérdésem. A játék, amit csinálok egy labirintus játék, éppen a collision vagyok rajta, és elég furcsa dolgok történnek
Tehát először tulajdonképpen realtime akartam csinálni, nézi, hogy hol vagyok, meg megnézi a kocka fal közepét (alapvetően csak az x, z tengely van bevonva, tehát 2d collision van csak), és a távolságot. Viszont a falaknál folyamatosan a 0,0 pontra nézte a távolságot. Mivel nem akart működni így úgy döntöttem, hogy inkább a pálya létrehozásánál egy 2d-s listába belerakom a koordinátákat, és ahhoz képest nézem a collisiont. Úgy csinálom, hogy pálya létrehozásánál az elején belerakom egyszer a koordinátákat, és utána egyből megnézem a méretét. Ekkor ez jó értéket ad, azonban rajzolásnál is megnéztem, és ott viszont már 0-t ír lista méretre. Tehát a kérdésem az lenne, hogy ezt miért csinálhatja? Hova tűnnek az adatok? Nem 0-zom sehol, semmi olyan esemény nem következik.

   
Mort - Tag | 53 hsz       Online status #169702   2011.11.30 18:15 GMT+1 óra  
Im back, baby!
   
Joderida - Tag | 55 hsz       Online status #169692   2011.11.30 15:46 GMT+1 óra  
Engem is érdekelne , akkor senkinek nem votl dolga még az OrientationManager használatával?

   
DMG - Szerkesztő | 3172 hsz       Online status #169683   2011.11.30 10:39 GMT+1 óra  
A hét végén költözöm, addig nem hiszem hogy fel tudom tölteni, kis türelmet kérek, amint bevackoltam magam a kecóba, megkapjátok.
-----------------------------------------
Dont Listen to the Naysayers
   
bit.0x8000 - Törzstag | 574 hsz       Online status #169678   2011.11.30 09:28 GMT+1 óra  
Én az Ubuntu One-t használom ilyen célra, egész jól beintegrálódik az Ubuntu alá (pl. a DejaDup-pal biztonsági mentések is készíthetők)...
   
DMG - Szerkesztő | 3172 hsz       Online status #169675   2011.11.30 07:24 GMT+1 óra  
Már megkaptam a tippet PM-ben amint tudom feltöltöm..
-----------------------------------------
Dont Listen to the Naysayers
   
LugaidVandroiy - Törzstag | 504 hsz       Online status #169673   2011.11.30 06:32 GMT+1 óra  
Dropbox? Es engem is erdekelne.

   
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] > 8 < [9] [10] [15]