Hra – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Hra – C / C++ – Fórum – Programujte.comHra – C / C++ – Fórum – Programujte.com

 

ukulele
~ Anonymní uživatel
111 příspěvků
1. 12. 2014   #1
-
0
-

Cavte vedel by niekto upravit tento program tak aby sa namiesto jednej lopty budú na začiatku hry pohybovať 3 lopty zhora nadol a po trafení lopta zmizne?

http://ge.tt/8Goh3o52/v/0?c

Nahlásit jako SPAM
IP: 158.193.102.–
ingiraxo+15
Grafoman
1. 12. 2014   #2
-
0
-

#1 ukulele
tak ono praděpodobně stačí nahradit ten jeden objekt za nějaký pole/list a upravit všude logiku, ale je to zbytečně přeplácaný abstrakcí, hlavně autor nikdy nepočítal s více objekty na scene

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
ukulele
~ Anonymní uživatel
111 příspěvků
1. 12. 2014   #3
-
0
-

Staci vytvorit jednu novu triedu?

Nahlásit jako SPAM
IP: 158.193.102.–
ingiraxo+15
Grafoman
1. 12. 2014   #4
-
0
-

nic nemusíš vytvářet, prostě nahradíš všechny místa, kde je parametr lopta za vector treba + úpravíš logiku všude, aby to počítalo s polem a pokud je to dobře napsaný, tak to bude fungovat

ale nemyslim si, že je dobrej nápad se učit tímto způsobem (hádám, že ten kód není tvůj), spíš v tom budeš mít zmatek, podívej se na nějaký tutoriály na SDL a zkus tohle celý od začátku sám

krom toho ten kód bych spíš celej přepsal, přijde mi až moc abstraktní, sice někde je správnej přístup, ale vypadá to jako rozenej javista co zkouší SDL :D Pro tuhle ukázku je tam opravdu zbytečně plno souborů na víc

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
ukulele
~ Anonymní uživatel
111 příspěvků
2. 12. 2014   #5
-
0
-

Iny sposob nie je k vektorom som sa este nedostal?

Nahlásit jako SPAM
IP: 158.193.102.–
ukulele
~ Anonymní uživatel
111 příspěvků
2. 12. 2014   #6
-
0
-

A v SDL sa nevyznam cize to neviem prepisat mne by stacila len uprava

Nahlásit jako SPAM
IP: 158.193.102.–
ukulele
~ Anonymní uživatel
111 příspěvků
3. 12. 2014   #7
-
0
-

Ked nevyuzijem vectory tak potrebujem vytvorit 1 triedu ktora bude dedit od IObjekt?

Nahlásit jako SPAM
IP: 158.193.102.–
ingiraxo+15
Grafoman
3. 12. 2014   #8
-
0
-

však když ses nedostal k vektorum, tak použij normální pole, dej tam třeba 3 objekty

už jsem psal, že nic vytvářet nemusíš, stačí všude nahradit ten jeden objekt za pole a upravit všude logiku, aby to bralo pole a ne jeden objekt

můžeš si ofc. udělat další novej objekt, kterej bude přímo obsahovat 3 míče a potom předávat ten objekt místo jednoho míče, ale nevim jak je to potom s logikou pohybu, jestli by tohle fungovalo na konkrétní impl.

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
ukulele
~ Anonymní uživatel
111 příspěvků
4. 12. 2014   #9
-
0
-

Takto Lopta lopty[3] a kde tu deklaraciu mam vlozit? Ty by si to nespravil ked mas cas?
 

Nahlásit jako SPAM
IP: 158.193.102.–
ukulele
~ Anonymní uživatel
111 příspěvků
8. 12. 2014   #10
-
0
-

#8 ingiraxo
" můžeš si ofc. udělat další novej objekt, kterej bude přímo obsahovat 3 míče "

a to ako vytvorim?

Nahlásit jako SPAM
IP: 158.193.102.–
ingiraxo+15
Grafoman
8. 12. 2014   #11
-
0
-

#10 ukulele
 

struct LoptaPack {
    Lopta l1;
    Lopta l2;
    Lopta l3;
};

// nebo
struct LoptaPack {
    Lopta lopta[3];
};

// nebo pouzivat primo jako parametr pole Lopta[]
// nebo vektor pripadne jinou kolekci
vector<Lopta> lopta;

// vzdy se ti jen změní vstupní parametr místo Lopta na pole nebo novej objekt..
Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
ukulele
~ Anonymní uživatel
111 příspěvků
9. 12. 2014   #12
-
0
-

Prosim ta nemohol by si to spravit ked to vies?

Nahlásit jako SPAM
IP: 158.193.102.–
ingiraxo+15
Grafoman
9. 12. 2014   #13
-
0
-

mohl, ale nechce se mi, nemam moc čas upravovat hned celou app, napsal jsem ti, že stačí projít kód a všude se se používá a initializuje Lopta, tak použiješ pole případně tvůj objekt

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
ukulele
~ Anonymní uživatel
111 příspěvků
13. 12. 2014   #14
-
0
-

Nenasiel by si si cas aby si to spravil lebo je to pre mna velmi dolezita uloha ale neviem ju spravit?

Nahlásit jako SPAM
IP: 158.193.102.–
ondrej39+1
Věrný člen
13. 12. 2014   #15
-
0
-

#14 ukulele
Když za tebe budou úkoly stále dělat druzí, tak se to nikdy nenaučíš.

Nahlásit jako SPAM
IP: 46.39.172.–
Inject all the dependencies!
ukulele
~ Anonymní uživatel
111 příspěvků
13. 12. 2014   #16
-
0
-

Ja som to skusal spravit no nefunguje to a toto je posledna moznost

Nahlásit jako SPAM
IP: 158.193.102.–
ukulele
~ Anonymní uživatel
111 příspěvků
14. 12. 2014   #17
-
0
-

Skusil som tam pridat
struct LoptaPack { Lopta *lopta[3]; };
no ked spustim program ihned padne nevedeli by ste to niekto prosim spravit?

Nahlásit jako SPAM
IP: 158.193.102.–
ondrej39+1
Věrný člen
14. 12. 2014   #18
-
0
-

#17 ukulele
Padá ti to, protože ten kód, který jsi poslal, je syntakticky špatně.

Nahlásit jako SPAM
IP: 46.39.172.–
Inject all the dependencies!
ingiraxo+15
Grafoman
14. 12. 2014   #19
-
0
-

#18 ondrej39
syntakticky špatně neni, jen to spíš špatně používá.. to pole obsahuje 3 ukazatele na loptu, který ofc. musí vytvořit dodatečně

ale v tomhle případě mi přijde zbytečný vytvářet novej objekt pro lopty, když nebude obsahovat nic jinýho než pole.. prostě bych všude podstrčil samotný pole nebo vektor

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
ondrej39+1
Věrný člen
14. 12. 2014   #20
-
0
-

#19 ingiraxo
Máš pravdu, já měl dojem že je třeba incializace Lopta * lopty = new Lopta[3].

Nahlásit jako SPAM
IP: 46.39.172.–
Inject all the dependencies!
ingiraxo+15
Grafoman
14. 12. 2014   #21
-
0
-

#17 ukulele
trochu pomůžu, ale upravovat ti celou app nebudu...

// puvodni objekt lopta (muze byt i class, je to f*ck)
struct Lopta {};
// definice typu LoptaPack obsahujici seznam ukazatelu na loptu
typedef vector<Lopta *> LoptaPack;
// nebo verze bez vektoru
typedef Lopta *LoptaPack[3];

// initializace na tom miste, kde se aktualne vytvari samotny objekt lopta,
// nyni misto Lopta* nebo co se tam predavalo budes predavat LoptaPack a
// vsude upravis logiku, aby tam byl cyklus
LoptaPack pack = { new Lopta, new Lopta, new Lopta }; // 3x lopta (muze byt i vic)

// v pripade vektoru muzes pouzit misto 3 -> pack.size() nebo rovnou iterator
for (int i = 0; i < 3; i++) {
    pack[i]->promenna = neco;
}
Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
ukulele
~ Anonymní uživatel
111 příspěvků
14. 12. 2014   #22
-
0
-

Vectory to je to iste co arraylist v jave?

Nahlásit jako SPAM
IP: 158.193.102.–
ukulele
~ Anonymní uživatel
111 příspěvků
14. 12. 2014   #23
-
0
-

Pridam typedef Lopta *LoptaPack[3]; a LoptaPack pack = { new Lopta(hraciaplocha), new Lopta(hraciaplocha), new Lopta(hraciaplocha) }; a po skompilovani ihned padne

Nahlásit jako SPAM
IP: 158.193.102.–
ingiraxo+15
Grafoman
14. 12. 2014   #24
-
0
-

#23 ukulele
dá se říct že ano, vector je podstatě ArrayList v javě jen lepší

tak něco děláš špatně.. doufám, že hrací plocha je ptr, pokud ne, tak tam aspon předej referenci

to, že to padne nám tady řekne vše o chybě včetně toho, co si udělal špatně a v některým případech i informace o počasí...

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
ukulele
~ Anonymní uživatel
111 příspěvků
14. 12. 2014   #25
-
0
-

Napise len program prestal pracovat

Nahlásit jako SPAM
IP: 158.193.102.–
ukulele
~ Anonymní uživatel
111 příspěvků
14. 12. 2014   #26
-
0
-

A ked to spustim s debugovanim tak vypise Unhandled exception at 0x77D2DEFE (ntdll.dll) in Lopta01.exe: 0xC00000FD: Stack overflow (parameters: 0x00000001, 0x003E2FCC).

Nahlásit jako SPAM
IP: 158.193.102.–
ukulele
~ Anonymní uživatel
111 příspěvků
14. 12. 2014   #27
-
0
-

Takto to vyzera a nefunguje

#include <cstdlib>
#include "Lopta.h"


Lopta::Lopta(IPlocha *hraciaplocha)
	: PohyblivyObjekt(hraciaplocha ? hraciaplocha->sirka() : 0, hraciaplocha ? hraciaplocha->vyska() : 0,
	0, 0),
	aHraciaPlocha(hraciaplocha),
	aLopta(NULL)
{
	if (aHraciaPlocha)
		aLopta = aHraciaPlocha->citajBMP("ball.bmp");
	if (aLopta)
	{
		aSirka = aLopta->sirka();
		aVyska = aLopta->vyska();
	}
	LoptaPack pack = { new Lopta(hraciaplocha), new Lopta(hraciaplocha), new Lopta(hraciaplocha) };
}


Lopta::~Lopta()
{
}

void Lopta::nakreslisa()
{
	if (aHraciaPlocha)
		aHraciaPlocha->nakresli(aLopta, aX, aY);
}

int Lopta::dajBody()
{
	return 1;
}
#pragma once
#include "PohyblivyObjekt.h"
#include "IPlocha.h"

class Lopta : public PohyblivyObjekt
{
private:
	IPlocha *aHraciaPlocha;
	IPlocha *aLopta;
	typedef Lopta *LoptaPack[3];
public:
	Lopta(IPlocha *aHraciaPlocha);
	~Lopta();
	virtual void nakreslisa();
	virtual int dajBody();


};
Nahlásit jako SPAM
IP: 158.193.102.–
ingiraxo+15
Grafoman
14. 12. 2014   #28
-
+1
-
Zajímavé

#27 ukulele
ta hrací plocha musí obsahovat LoptaPack né samotná Lopta, však se nad tím zamysli, to i v realitě nedámá smysl :) a samozřejmě nesmíš mít pack jako lokální proměnnou

hlavně typedef LoptaPack je definice, né proměnná !! ta musí být úplně mimo třídu a pak samotná hrací plocha bude obsahovat loptapack

mám dojem, že by si měl začít úplně s něčím jednodušším, tohle nikam nevede, nemá smysl upravovat app když ani neznáš základy

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
ukulele
~ Anonymní uživatel
111 příspěvků
14. 12. 2014   #29
-
0
-

Nema to zmysel ale pokusim sa to nejako spravit. Kde vidis hraciu plochu myslis Plocha?

Nahlásit jako SPAM
IP: 158.193.102.–
ingiraxo+15
Grafoman
14. 12. 2014   #30
-
0
-

#29 ukulele
už nevim co tam všechno bylo za objekty, ale hlavně tam je plno rozhraní, takže IPlocha bude místo Lopta* obsahovat LoptaPack a na tom místě, kde se vytváří instance Lopta budeš vytvářet samotnej LoptaPack.. potom opět na všech místech, kde je parametr jako Lopta* bude LoptaPack

víc ti už poradit nemůžu, prostě nahradíš jeden dat. typ za jinej

ale fakt zkus udělat vlastní app a bez rozhraní, myslim, že tohle začátečníka dost mate, kór v cpp.. celý by to šlo napsat o 80% méně kódu, klidně si piš všechny objekty i metody v SK místo v EN abys to lépe chápal

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
ukulele
~ Anonymní uživatel
111 příspěvků
14. 12. 2014   #31
-
0
-

Preco to nemozes spravit ty ked tomu tak dobre rozumies?

Nahlásit jako SPAM
IP: 158.193.102.–
ingiraxo+15
Grafoman
14. 12. 2014   #32
-
0
-

#31 ukulele
kdyby to byl menší kus kódu a byl v tom nějakej problém, tak to sem klidně pástnu, ale celou app upravovat nehodlam, kór když se jedná jen o změnu dat. typu, kde upravíš ukazatel lopty za pole

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
ukulele
~ Anonymní uživatel
111 příspěvků
14. 12. 2014   #33
-
0
-

Kde vlozim to typedef Lopta *LoptaPack[3]; lebo ked do Plocha.h tak to tam nejde len tak vlozit kedze Plocha.h patri do ineho priecinka alebo ako to nazvat a #30 ingiraxo v IPlocha ani Plocha ziadna Lopta* nie je

 

Nahlásit jako SPAM
IP: 158.193.102.–
ukulele
~ Anonymní uživatel
111 příspěvků
15. 12. 2014   #34
-
0
-

Jedine kde sa to dalo vlozit tak aby to nepadalo bolo LoptaEngine.h a inicializacia v konstruktore LoptaEngine.cpp.

V celom programe sa Lopta* vyskytuje len v tomto konstruktore a ked ju zamenim za
LoptaPack tak program ani neskompiluje

LoptaEngine::LoptaEngine(IPlocha *plocha)
:aHraciaPlocha(plocha)
{
	Lopta *lopta = new Lopta(plocha);
	aObjekt = lopta;
	LoptaPack pack = { new Lopta(plocha), new Lopta(plocha), new Lopta(plocha) };
}
Nahlásit jako SPAM
IP: 158.193.102.–
ingiraxo+15
Grafoman
15. 12. 2014   #35
-
0
-

#34 ukulele
ano, to je správná pozice

ale hádám, že aObjeckt je ptr na loptu, takže z kontruktoru smažeš jak vytvoření Lopta, tak aObjeckt a LoptaPack bude instanční field třídy do kterýho vytvoříš ten LoptaPack

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
ukulele
~ Anonymní uživatel
111 příspěvků
15. 12. 2014   #36
-
0
-

ptr znamena smernik? aObjekt je ptr na PohyblivyObjekt

Nahlásit jako SPAM
IP: 158.193.102.–
ingiraxo+15
Grafoman
15. 12. 2014   #37
-
0
-

#36 ukulele
no však, ten právě nahradíš tím LoptaPackem a všude kde se bude vyskytovat parametr na PohyblivyObjekt, tak bude LoptaPack... kód ti pak trochu z červená a bude potřeba to všude upravit

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
ukulele
~ Anonymní uživatel
111 příspěvků
15. 12. 2014   #38
-
0
-

Raz potrebujem nahradit Lopta* teraz uz aObjekt a nikdy aj tak nic nejde tak ja uz neviem

Nahlásit jako SPAM
IP: 158.193.102.–
ukulele
~ Anonymní uživatel
111 příspěvků
15. 12. 2014   #39
-
0
-

Nemohol by si to fakt spravit ked presne vies ze co cim nahradit lebo ja to musim mat dnes spravene, zajtra je uz neskoro a ty si moja posledna nadej lebo ja som sa skusal pytat viacerych ako na to no nikto to nevedel spravit

Nahlásit jako SPAM
IP: 158.193.102.–
ukulele
~ Anonymní uživatel
111 příspěvků
15. 12. 2014   #40
-
0
-

Pohybuju sa tam nejake 3 lopty asi ale neskutocne blikaju

Nahlásit jako SPAM
IP: 158.193.102.–
ukulele
~ Anonymní uživatel
111 příspěvků
15. 12. 2014   #41
-
0
-

Body pocita uplne zle a po kliknuti na loptu sa lopta nezmaze taka je moja verzia

Nahlásit jako SPAM
IP: 158.193.102.–
ingiraxo+15
Grafoman
15. 12. 2014   #42
-
0
-

no vidiš, to si pokročil, vykresluješ 3 místo jedný, jen doladíš logiku ;)

jinak takto by to mělo vypadat potom až to dokončíš http://uloz.to/xPhhdv87/lopta-rar

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
ukulele
~ Anonymní uživatel
111 příspěvků
15. 12. 2014   #43
-
0
-

Ja viem ako to ma vyzerat ale ked si si uz dal namahu tak si mohol spravit to moje a nevytvarat svoje

Nahlásit jako SPAM
IP: 158.193.102.–
ingiraxo+15
Grafoman
15. 12. 2014   #44
-
0
-

já původně chtěl, ale jakmile jsem koukal na ten kód, tam jsem se rozhodl to celý přepsat včetně wrapperu na SDL... plno metod bylo nesmyslně pojmenovaných, naprosto zbytečný použití rozhraní, jeden mem. leak,  špatně umístěný fieldy a některý metody, zbytečný includy nebo na špatných místech a plno dalšího..

prostě tohle nešlo jen tak poupravit, mi to rvalo srdce :-D ale samozřejmě ti můžu hodit i source, ale je to z 90% celý překopaný

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
ukulele
~ Anonymní uživatel
111 příspěvků
15. 12. 2014   #45
-
0
-

#44 ingiraxo
Skus mi to poslat ale najlepsie je keby tam bolo pole a 3 lopty

Nahlásit jako SPAM
IP: 158.193.102.–
ingiraxo+15
Grafoman
15. 12. 2014   #46
-
0
-
Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
ukulele
~ Anonymní uživatel
111 příspěvků
15. 12. 2014   #47
-
0
-

#46 ingiraxo
Dakujem ale nevedel by si to este spravit tak aby tie lopty smerovali zhora priamo nadol?

Nahlásit jako SPAM
IP: 158.193.102.–
ingiraxo+15
Grafoman
15. 12. 2014   #48
-
0
-

#47 ukulele
však na tohle si stačí zakomentovat jeden řádek, nemusíš ani vymýšlet nic.. a hledej! ;-) Poradim, že to je v logice na pohyb objektu.

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
bujak
~ Anonymní uživatel
2 příspěvky
15. 12. 2014   #49
-
0
-

Ty vole ukulele kam ty chodis do skoly? Na tvem miste bych zacal poradne makat na tom programovani..

Nahlásit jako SPAM
IP: 91.127.158.–
ukulele
~ Anonymní uživatel
111 příspěvků
15. 12. 2014   #50
-
0
-

Neviem kde sa tam nastavuju suradnice

Nahlásit jako SPAM
IP: 158.193.102.–
Profesor
~ Anonymní uživatel
2 příspěvky
15. 12. 2014   #51
-
+1
-
Zajímavé

no pane toto vám neuznám, musíte to sám naprogramovať.  S pozdravom pán Tavač

Nahlásit jako SPAM
IP: 158.193.96.–
ukulele
~ Anonymní uživatel
111 příspěvků
15. 12. 2014   #52
-
0
-

#51 Profesor
Nevydavaj sa za niekoho to som nemal v plane nikde posielat

Nahlásit jako SPAM
IP: 158.193.86.–
bujak
~ Anonymní uživatel
2 příspěvky
15. 12. 2014   #53
-
0
-

Pekne pane profesore..

Nahlásit jako SPAM
IP: 91.127.158.–
Profesor
~ Anonymní uživatel
2 příspěvky
15. 12. 2014   #54
-
0
-

Vsak sranda :) Mas uz len 11 minut :)

Nahlásit jako SPAM
IP: 158.193.96.–
ukulele
~ Anonymní uživatel
111 příspěvků
15. 12. 2014   #55
-
0
-

#54 Profesor
tak to je velka sranda aj s bujakom 2 komici

Nahlásit jako SPAM
IP: 158.193.86.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 12 hostů

Podobná vlákna

Hra — založil Javprogramator

Hra v c — založil bohetik

Hra — založil mephi

Hra had — založil pepca_001

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý