Új hozzászólás Aktív témák
-
caindwan
tag
Sikerült megoldani, a probléma abban volt hogy a value-s dolgot az onClick metódus alatt kellett megoldani és nem ott ahol volt
-
negyedes
addikt
Cursor mCursor = mDb.query(true, SQLITE_TABLE_INBOX, new String[] {
KEY_SENDER, KEY_DATE, KEY_SUBJECT, KEY_TEXT }, KEY_SENDER + "=" + sender, null, KEY_DATE + "=" + date, KEY_SUBJECT + "=" + subject,
null, null, null);erre a sorra ezt a hibat dobja az app-om
01-24 08:03:16.676: E/AndroidRuntime(6136): java.lang.NoSuchMethodError: android.database.sqlite.SQLiteDatabase.query
ez mit jelent? nem elegendo az api level?
Három dolog biztos az életben: az adó, a halál és az adatvesztés. - Baráth Gábor
-
Karma
félisten
válasz negyedes #1002 üzenetére
Eggyel több nullt írtál a szükségesnél, így szerintem a CancellationSignallal végződő, 16-os API-t hívod meg véletlen.
Megszámoltam, tényleg. (10 paraméter vs. 7-9).
[ Szerkesztve ]
“All nothings are not equal.”
-
negyedes
addikt
igen ez volt a hiba. koszonom, de mar is egy ujat dobott:
1: sqlite returned: error code = 1, msg = near "@yahoo": syntax error, db=/data/data/com.example.firstmail/databases/Emailapp
2: android.database.sqlite.SQLiteException: near "@yahoo": syntax error: , while compiling: SELECT DISTINCT sender, date, subject, text FROM InboxEmails WHERE sender=tesztkuldo@yahoo.com GROUP BY date=2013.07.16 16:18pm HAVING subject=Tema
Három dolog biztos az életben: az adó, a halál és az adatvesztés. - Baráth Gábor
-
Karma
félisten
válasz negyedes #1004 üzenetére
Amikor rakod össze a WHERE feltételt, az egyenlőségjel jobb oldalát aposztrófok közé kell tenni. Ez okozza az egészet.
Pl. az idézett querynél: KEY_SENDER + "=" + sender helyett KEY_SENDER + "= '" + sender + "'".
Vagy az egyébként jóval bonyolultabb SQLiteProgram osztályokkal meg tudod oldani, amit hunfatal mond.
[ Szerkesztve ]
“All nothings are not equal.”
-
caindwan
tag
tudom, hogy nem rég felmerült a kérdés, de valahogy sehogy se megy ez.. Grafikus fejlesztő programot keresek játékokra, lehetőleg ami windowson fut. Eddig mind csak linuxra volt.
-
caindwan
tag
válasz PandaMonium #1008 üzenetére
köszönet! Saját, fuhh az talán még nem igazán menne, még azt sem tudom, hogy kellene egy ilyennek kinéznie
-
PandaMonium
őstag
válasz caindwan #1010 üzenetére
Igen, ez minden féle platformon való játékok készítésére remek eszköz. Az ingyenes verzióban van pár korlátozás, de igazából semmi olyan ami meggátolna a játékfejlesztésben, a hiányzó feature-ök nagyrészét pedig ha kicsit belejössz letudod majd magadnak is programozni. Töltsd le és keress Youtube-on tutorial videókat hozzá, nagyon sok van, elég könnyen tanulható.
What I cannot create, I do not understand
-
caindwan
tag
válasz PandaMonium #1011 üzenetére
köszi, szerintem is tutorialok lesznek az elején, na meg van pár ötlet mit lehetne alkotni, aztán remélem marketen fog kikötni
-
fatal`
titán
válasz trisztan94 #1013 üzenetére
AndEngine is opensource, csak doksi nemnagyon van, inkább csak példakódok meg a fórum. Viszont 2D only.
-
RexpecT
addikt
Van egy Activity amiből indítok egy másik Activityt, úgy hogy az nem jelenik meg a képernyőn(android:theme="@android:style/Theme.NoDisplay").
Viszont mikor elindítom a másik Activityt és megnyomom a vissza gombot akkor kifagy az alkalmazás.
Hiába írom fel az onBackPressed() metódust, ugyanúgy kifagy -
trisztan94
őstag
Hát akkor már inkább libgdx Igaz, AndEngine-nek sosem néztem utána, de sokkal "mature"-ebbnek néz ki a libgdx. Meg azért ott van dokumentáció.
Más:
Lehet rá tudom venni magam és az ügyfelem, hogy átlálljunk unity3d-re. A free version miben korlátoz? Nem kellenek nekem bele unity-t reklámozó dolgok, tudjam deploy-olni droidra, stbstb.. Vagy ehhez mindenképp a pro kell? (arra meg nincs keret)
[ Szerkesztve ]
https://heureka-kreativ.hu
-
PandaMonium
őstag
válasz trisztan94 #1018 üzenetére
Sajnos linkelni nem lehet mert valami nagyon hülye javascriptes módon van megoldva az oldaluk de így tudod megnézni, hogy mivel tud többet a Unity Pro mint a free verziója:
Felmész a Unity oldalára, jobb felső sarokban "Buy", itt pedig a Unity Pro résznél "Compare". Szerintem amúgy jobban jársz ha LibGDX-et használsz, sokkal szabadabban tudsz dolgozni minden korlát nélkül, ráadásul nagyon sokat tudnál tanulni belőle.What I cannot create, I do not understand
-
fatal`
titán
válasz trisztan94 #1018 üzenetére
2D-hez szerintem jobb az AndEngine, igaz, a LibGDX gyorsabb, de sokkal több szop*ssal jár.
-
trisztan94
őstag
Lehet megnézem majd ezután a projekt után, köszi
Más:
A universal tween engine-t szeretném belerakni utólag a libgdx-es projektembe. Ugye ez az, amit a setup ui felajánl a projekt létrehozásakor egy checkbox formájában. (csak akkor úgy gondoltam, hogy ez nekem nem kell)
Letöltöttem a két .jar fájlt az oldalukról . Hogy tudom most ezt hozzáadni a projektemhez?
https://heureka-kreativ.hu
-
WonderCSabo
félisten
válasz trisztan94 #1021 üzenetére
Belemásolod a .jar fájlt a libs mappába. A forráskódot tartalmazó másik jart semmiképpen ne másold be közvetlenül a lib mappába, mert ekkor az APK belerakja feleslegesen. Be lehet csatolni azért a forrást, de picit szarakodni kell.
[ Szerkesztve ]
-
thon73
tag
Sziasztok!
Tudja valaki:
1. hogyan lehet arról tudomást szerezni, hogy a rendszer (pl. memóriaigény miatt) kilőtte a hátterben álló programot/activity-t?
2. hogyan lehet ezt kikényszeríteni; vagyis, h. a rendszer lője ki a programot, mintha csak további erőforrásra lenne igénye? (A TaskKiller ugyanúgy csinálja?)
Mindkettő kizárólag teszteléshez kellene, tehát root, eclipse-es pc kapcsolat, stb. nem probléma. Köszönöm! -
WonderCSabo
félisten
1. Ha már kilőtte az Activityt, akkor vagy az egész processzt, akkor nyilván már mindegy. A kilövés előtt lefutnak metódusok, pl. az Activity onStop, onDestroy fv-e, illetve az Application onTerminate fv-e.
Ha még nem lövi ki, de már érzi, hogy kevés a memória, akkor az onLowMemory, illetve az onTrimMemory meghívódhat. Nézd meg az Activity és az Application életciklus doksiban, hogy pontosabban mikor is hívódnak meg ezek. -
thon73
tag
válasz WonderCSabo #1024 üzenetére
Köszi, ez jó ötlet. De kicsit félreérthető voltam, én nem az Activity-n BELÜL szeretném megtudni, hogy eltűnt, hanem KÍVÜLRŐL szeretném látni, hogy most már eltűnt/újraindult. Csak olyan ötleteim vannak, hogy megnézem a futó task-ok között stb., de nincs erre valami fejlettebb fejlesztői megoldás?
Pl. az onActivityResult más módon (az on...-ok között más sorrendben) kerül meghívásra a két esetben; és szerettem volna kicsit körüljárni, hogy mi történik. De csak nagyon körülményes megoldásokat találtam. -
trisztan94
őstag
válasz WonderCSabo #1022 üzenetére
Ja csak ennyi? És akkor tudom használni? (gondolom clean kell, nem?)
https://heureka-kreativ.hu
-
WonderCSabo
félisten
-
trisztan94
őstag
Sziasztok!
Van egy touchDragged figyelőm libgdx játék alatt, ami így néz ki:
@Override
public boolean touchDragged(int screenX, int screenY, int pointer) {
karika = world.getKarika();
Vector2 pos = new Vector2(screenX, screenY);
karika.setPosition(pos);
return false;
}Na most itt ugye annyit csinálunk, hogy a karika mindig arra a pozícióra menjen ahová az ujjunkat húzzuk.. Balra és jobbra szépen megy, de valamiért a fel-le felcserélődik, tehát amikor felfele húzom az ujjam, akkor lefele megy, amikor lefele húzom az ujjam, akkor felfele. Miért van ez? Mivel lehet megoldani?
Köszi!
Szerk:
Más: Azt hogyan lehet megoldani, hogy egy objektum ne tudjon "kimenni a pályáról"? (tehát mintha fal lenne ott v nemtom)
[ Szerkesztve ]
https://heureka-kreativ.hu
-
WonderCSabo
félisten
válasz trisztan94 #1028 üzenetére
-
trisztan94
őstag
-
PandaMonium
őstag
válasz trisztan94 #1030 üzenetére
Nem bántás, de ha ennyire nem vagy még képben a játékfejlesztéssel érdemes lenne fellapozni valami könyvet a témával kapcsolatban mielőtt "nagy fába vágod a fejszédet".
What I cannot create, I do not understand
-
WonderCSabo
félisten
válasz PandaMonium #1031 üzenetére
Én is akartam mondani, de nem akartam udvariatlan lenni, szóval örülök, hogy megelőztél.
-
trisztan94
őstag
válasz PandaMonium #1031 üzenetére
Valóban nem vagyok képben, de egyszer meg kell tanulni
Sajnos én csak magamtól tanulok, könyvekből nagyon nem megy, max videókból. Kell nekem 1-2 hét mire belerázódok, megismerem a környezetet, stbstb, de addig bombázlak majd titeket a hasonló kérdéseimmel, előre is bocsi
Eddig nem hogy játék fejlesztéssel, de még java-val sem foglalkoztam, így kicsit nehezebb az az indulás, de érzem, hogy menni fog
Ui: szerintem esti brainstorm-olásom következménye lett az eddigi legrondább kód amit írtam, és amit valszeg holnap rögtön ki is javítok. De legalább működik. Akár meg is leshetitek itt.
Meg ne kérdezzétek, hogy mi mit jelent, fogalmam sincs, működik de mondom, ez majd valamelyik tisztább pillanatomban el fog tűnniEzt generálom vele amúgy tök random (a "csövet")
https://heureka-kreativ.hu
-
negyedes
addikt
azt hogy tudom megoldani hogy egy listview-ben ha egy adott eleme a listanak null ne jelenjen meg?
[ Szerkesztve ]
Három dolog biztos az életben: az adó, a halál és az adatvesztés. - Baráth Gábor
-
trisztan94
őstag
Üdv néktek!
Egy collision detection-ös gyorskérdésem lenne:
Van ez a karika:
Szerk: úgy néz ki valami hiba történt a képpel, a következő képen látni, hogy ez egy "átlátszó" karikaErre szeretnék egy olyan collision detection-t írni, hogy csak a karika fenti és lenti részén érzékelje, valahogy így: (a zöld részeken érzékelje)
A másik dolog az, hogy egy "csövön lenne áthúzva", most így néz ki:
Itt ugye nyílván az a cél, hogy a baloldalán a cső "fölött" legyen, tehát ne fedje le a cső, viszont a jobb oldalán fedje le, létrehozván egy olyan illúziót, hogy a karikát áthúzzuk a csövön.
Eddig érthető?
Én ezt úgy gondoltam ki, hogy 4 felé vágom a képet, "összerakom" őket kódban, hogy egy képnek nézzen ki, és a különböző darabokra kötöm a collision detection-t.. ez így hülyeség?
Bocsi, ha nagyon alap kérdés! Köszönöm!
[ Szerkesztve ]
https://heureka-kreativ.hu
-
negyedes
addikt
String selectQuery = "SELECT KEY_SENDER, KEY_RECEIVER, KEY_DATE, KEY_SUBJECT, KEY_TEXT FROM " + SQLITE_TABLE_INBOX + " WHERE KEY_RECEIVER IS NOT NULL ";
Cursor cursor = mDb.rawQuery(selectQuery, null);erre azt dobja nekem hogy no such column KEY_SENDER, ha kitorlom jon a kovetkezo.
Három dolog biztos az életben: az adó, a halál és az adatvesztés. - Baráth Gábor
-
PandaMonium
őstag
válasz trisztan94 #1035 üzenetére
Collision detection -ra még mindig a Box2D -t tudom javasolni. Ezzel tudsz collision mask-ot létrehozni a karikádhoz, és ezt a collision maskot egy fájlba tudod exportálni. Jó hír, hogy a LibGDX-hez van plugin ami betölti az ilyen collision maskokat szóval még nem is kell sajátot írnod (bár az sem volna olyan nagy kihívás szerintem). Az, hogy a cső kitakarja a karika jobb oldalát nem kis dió, tekintve, hogy ahogy fel-le mozgatja az ember a karikát a csőnek továbbra is ki kell takarnia. A karikát később kell renderelned mint a csövet, hogy fölötte legyen. A 4 képes megoldást semmiképp sem alkalmaznám, nagy macera feleslegesen, inkább írnék a karika jobb szélére valami maszkot, hogy azt a részt ahol a cső és a maszk találkozik vágja ki a textúrából.
What I cannot create, I do not understand
-
Karma
félisten
válasz negyedes #1036 üzenetére
A DB-ben az oszlopodat gondolom Sendernek hívják, a KEY_SENDER csak a tagváltozó/konstans a Java segédosztályodon. Ha tényleg kézzel akarod összerakni a select hívást (amit nem értek miért tennél), a valódi oszlopneveket kell használnod.
Azaz pl.
String selectQuery = "SELECT " + DBConstants.KEY_SENDER + ", " + DBConstants.KEY_RECEIVER + ", " ...;
Cursor cursor = mDb.rawQuery(selectQuery, null);“All nothings are not equal.”
-
trisztan94
őstag
válasz PandaMonium #1037 üzenetére
Köszönöm szépen, sikerült megoldani vele! (az utolsó kivételével, de az még mindegy )
https://heureka-kreativ.hu
-
WonderCSabo
félisten
Én ezt már csak azért nem javasolnám, mert a szomszéd pistika által is megírt injectiont sem védi ki. Bár ha itt ha jól látom pont nem volt user input.
(#1034) negyedes: Ha minden igaz az adapter minden egyes elemhez rendel egy View-t. Az adott sort csak akkor tudod eltüntetni, ha kiszeded a null elemeket az átadott listából.
Egy másik megoldás még az lehet, hogy csak elrejted a Viewt.public class YourAdapter extends ArrayAdapter<YourType> {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ListView listView = (ListView) parent;
if (convertView == null) {
if (getItemViewType(position) == 0) { // not null
convertView = ...; // inflate list item view
} else { // null
convertView = new View(getContext());
convertView.setVisibility(View.GONE);
}
}
if (getItem(position) == 0) { // not null
... // update data of the reused list item view
}
return convertView;
}
@Override
public int getItemViewType(int position) {
if (getItem(position) != null) { // not null
return 0;
}
return 1; // null
}
@Override
public int getViewTypeCount() {
return 2; // not null, null
}
}Nem teszteltem ki, de működnie kell.
[ Szerkesztve ]
-
negyedes
addikt
válasz WonderCSabo #1040 üzenetére
koszi szepen, vegul ijra irtam a queryt. de belefutottam egy ujabb bajba amit eddig nem vettem eszre:
adott a kovetkezo kod:
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View inbox_list,
int position, long id) {
final String messageInbox = "inbox";
TextView send = (TextView) findViewById(R.id.sender);
TextView date = (TextView) findViewById(R.id.date);
TextView subject = (TextView) findViewById(R.id.subject);
String messageSender = send.getText().toString();
String messageDate = date.getText().toString();
String messageSubject = subject.getText().toString();
intent.putExtra(EXTRA_MESSAGE_SENDER, messageSender);
intent.putExtra(EXTRA_MESSAGE_DATE, messageDate);
intent.putExtra(EXTRA_MESSAGE_SUBJECT, messageSubject);
intent.putExtra(EXTRA_MESSAGE_INBOX, messageInbox);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
});elmeletileg ez megnezni az aktualis click poziciojat es kivalasztja a textview-bol az ertekeket, de nekem allandoan az elso erteket adja meg.
hogy tudnam azt megcsinalni hogy minden uj clicknel a listaban a normalis ertekek keruljenek az extra-ba?
Három dolog biztos az életben: az adó, a halál és az adatvesztés. - Baráth Gábor
-
Karma
félisten
válasz negyedes #1041 üzenetére
Módosítsd a findViewById hívásokat, most valószínűleg az activity-d metódusát hívod. Ha tippelnem kéne, belső nem-static osztályt írtál az adapternek.
TextView send = (TextView) parent.findViewById(R.id.sender);
TextView date = (TextView) parent.findViewById(R.id.date);
TextView subject = (TextView) parent.findViewById(R.id.subject);[ Szerkesztve ]
“All nothings are not equal.”
-
negyedes
addikt
válasz negyedes #1043 üzenetére
Azt hiszem rajottem mi a baja, az id-k a tablamban mind 0-k de nem ertem miert.
private static final String DATABASE_CREATE_IN =
"CREATE TABLE " + SQLITE_TABLE_INBOX + " (" +
KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
KEY_SENDER + " TEXT," +
KEY_RECEIVER + " TEXT," +
KEY_SUBJECT + " TEXT," +
KEY_DATE + " TEXT," +
KEY_TEXT + " TEXT," +
KEY_ATTACH + " TEXT," +
KEY_IMPORT + " TEXT" + " )";ez a create stringje.
Három dolog biztos az életben: az adó, a halál és az adatvesztés. - Baráth Gábor
-
Karma
félisten
válasz negyedes #1043 üzenetére
Ó. Megnéztem a doksit, persze hogy nem jó ez se, hiszen a parent az a ListView. Amit te inbox_listnek neveztél, az a megnyomott elem...
Onnan próbáld meg a findViewById-t.De igazából sokkal jobb lenne, ha az egészet kidobnád a francba, s a parent.getItemAtPosition(position) hívással megszereznéd az adatobjektumodat, és onnan vennéd ki a három mezőt. Tudod, MVC meg ilyenek...
[ Szerkesztve ]
“All nothings are not equal.”
-
trisztan94
őstag
Sziasztok!
Box2D-vel kapcsolatban, azon belül collision detection-nel illetve Physics Body Editorral kapcsolatban kérdeznék.
A helyzet változatlan, van egy karikám, szeretném, ha érzékelné a játék, ha a karika teteje hozzáér a csőhöz.
PandaMonium ajánlotta erre a Physics Body Editor nevezetű csodás programot.Először is ezzel kapcsolatban kérdeznék:
Rajzoltam két shape-t a collision-re figyelő részeken:
Ugye itt a teteje és az alja a lényeges. Nézegettem a tool oldalán lévő tutorialt, a sample alkalmazást is, de arra sehogy sem tudok rájönni, hogy hogyan lehetne egy mozgó képre rárakni azt a két shape-t. Mert ugye a karikám touchDrag-re mozog oda ahová húzzuk, de akárhányszor elhúzom ez fogad:
Persze itt alapból rendesen illeszkedik a képre, csak arrébb húztam, hogy látszódjon. Nem megy a képpel a maszk.. Jelenleg így van definiálva az egész a create() metódusomban:
BodyEditorLoader karikaLoader = new BodyEditorLoader(Gdx.files.internal("data/collision-masks/karika.json"));
BodyDef karikaDef = new BodyDef();
karikaDef.type = BodyType.DynamicBody;
karikaDef.position.set(karika.getPosition().x, karika.getPosition().y);
karikaDef.angle = karika.getRotation();
karikaBody = world.createBody(karikaDef);
FixtureDef karikaFixture = new FixtureDef();
karikaFixture.density = 0.5f;
karikaFixture.friction = 0.8f;
karikaFixture.restitution = 0.6f;
karikaLoader.attachFixture(karikaBody, "karika", karikaFixture, karika.getWidth());
karikaBodyOrigin = karikaLoader.getOrigin("karika", karika.getWidth()).cpy();Hogy kéne azt megoldani, hogy a maszk mozogjon vele együtt? Arra már rájöttem, hogy a render() metódusban kéne lennie, de akárhogy próbálgattam helyezgetni a dolgokat (pl: KarikaDef.position-t beraktam a render metódusba mindig a karika draw-olása után), de valamiért sehogy sem működik.
Viszont ami működik rendesen az a gravitáció. Na de kitaláljátok, hogy mire működik a gravitáció? Hát persze, hogy a DebugRenderer-rel kirajzolt maszkra (amiről eddig szó volt). A karikára hogy tudom rárakni? (Igazából az sem tiszta, hogy most a karika textúrámból hogy tudok egy Body-t csinálni amire aztán ráerősítem a maszkot )
Na, most így hirtelenjében ennyi. A collision detection-ös kérdésemet csak azután teszem fel miután ezt sikerült megoldani (vagy elküldtetek a picsába )
Köszönöm szépen előre is!!
https://heureka-kreativ.hu
-
trisztan94
őstag
válasz trisztan94 #1046 üzenetére
Még hozzátennék egy gyorskérdést:
van ez a ciklusom:
while(tubeIterator.hasNext()){
tube = tubeIterator.next();
BodyDef tubeDef = new BodyDef();
tubeDef.type = BodyType.StaticBody;
tubeDef.position.set(tube.getPosition().x, tube.getPosition().y);
tubeBody = world.createBody(tubeDef);
tubeLoader.attachFixture(tubeBody, "tube", tubeFixture, tube.getWidth());
tubeBodyOrigin = tubeLoader.getOrigin("tube", tube.getWidth()).cpy();
}itt végigiterálok egy tömbön, melyben a "csődarabok" pozíciója van letárolva. Mindig szélesség / 25 darab csődarab van (mert 25px széles egy db), de ez igazából lényegtelen. Úgy oldottam meg a physics mask rátételét az összes darabra, hogy ebbe a ciklusban mindig létrehozom a BodyDefiníciót, mindig ráerősítem a body-ra azt illetve a fixture-t is minden egyes darabhoz "felcsatolom".
Nem túl memóriazabáló ez így? Lehet ezt szebben megoldani?
https://heureka-kreativ.hu
Új hozzászólás Aktív témák
- LEGO klub
- Robotkart irányított a majom a kínai Neuralink agyi chipjével
- Világító alma helyett világító tok és szíj az almákra
- Stellar Blade
- Luck Dragon: Asszociációs játék. :)
- ASUS routerek
- GTA V
- Házimozi haladó szinten
- eBay
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- További aktív témák...
- Xiaomi Mi Max 3 64 GB-os
- 1 NAPOS AKCIÓ: Exkluziv,12.Generációs-Core i5-Érintős Dell Latitude 5430-2026-ig Világgaris-Mesés Ár
- Két laptop alkalmi áron! (Mindkettő Intel cpu - SSD - ddr3 - HDMI - USB 3.0 - jó akku)
- Ps5 Slim 1Tb közel 2 év Media Markt garancia
- Sony PlayStation 5 DualSense Wireless Controller (PS5) Grey Camouflage