Input på programmeringsprojekt

Permalänk

Input på programmeringsprojekt

Tror att jag är klar med mitt programmeringsprojekt nu.

Vill dock ha input från er, förslag på förbättringar och hur spelet känns just nu.

Ladda ned här

Spelet heter "Watch Out!" och det är en applet. Filen innehåller en sprite, tre klass-filer samt en .html-fil. För att köra spelet så öppnar ni bara .html-filen i lämplig webbläsare.

Det jag vill att ni gör är:
--- Leta efter buggar
--- Ge input på om det spelet är för snabbt (Tar slut för snabbt), om man rör sig för långsamt, om ni stör er på hur man rör sig och sånt
--- bli beroende av spelet.
--- Just nu har fienderna en sprite. Ska jag satsa på att göra en sprite till spelaren också? Eller ska jag strunta i sprites och bara köra enfärgade kvadrater? (Spelkänsla > grafik och grafiken måste ju inte vara top för att ett spel ska vara beroendeframkallande).

Tacksam för all konstruktiv kritik!

EDIT: Borde jag köra med liv istället? Så att man har 5 hp och man förlorar 1 hp när man krockar?

Visa signatur

| Sony A580 | Sigma 10-20/4-5.6 | Tamron 17-50/2.8 | Sigma 70/2.8 Macro | Konica Minolta 50/1.7 | Konicha Minolta 75-300/4.5-5.6 |

Permalänk
Medlem

Jag får det inte att fungera.
Kör jag det genom webbläsaren blir det bara en grå rektangel där spelet skall vara.
Kör jag det med appletviewer så avlutas det direkt.
Jag har inga problem med att köra andra applets.

System:
openSUSE 11.3
java-1_6_0_openjdk (baserad på openJDK 6 och IcedTea 6)

Visa signatur

citera!

Permalänk

Funkar bra för mig , men stör mig lite på att frågenfönster öppnar sig utanför "browsern" så man måste välja svårighetsgrad mm , detta medför att man måste klicka i browserfönstret innan man kan styra och på de svårare banorna hinner man ibland dö innan man hinner göra detta....

Permalänk
Medlem
Skrivet av fizzyflaskan:

Funkar bra för mig , men stör mig lite på att frågenfönster öppnar sig utanför "browsern" så man måste välja svårighetsgrad mm , detta medför att man måste klicka i browserfönstret innan man kan styra och på de svårare banorna hinner man ibland dö innan man hinner göra detta....

^ This

Ytterligare ett förslag:
Starta inte spelet direkt man valt svårighetsgrad, låt spelaren starta det med ett tangenttryck (så man hinner göra sig beredd).

Angående grafiken:
Om du ska använda sprites så se till att både fienderna och spelaren har dem, lägg gärna till en snygg bakgrund och lite andra effekter också. Annars håller du allt enfärgat och simpelt.

Sen en bugg:
Jag dör och spelet frågar om jag vill spela igen
Jag svarar nej (varför bara frysa spelet här? Man borde få en ny chans att spela utan att ladda om sidan)
Om jag sen laddar om sidan (för att spela igen) så tar spelet slut direkt och jag får den poäng jag hade när jag avslutade förra gången.

Permalänk

BUMP!

Har nu jobbat mer på projektet och det är inlämning nästa torsdag.
Kort sagt började jag igår skriva om allt från början och börja använda mig av arv istället. Jag låter spelaren extenda Rectangle, fienden extendar Rectangle den också.

När jag sedan ska kolla kollisionen för dessa vill jag använda "intersects" som man får "med" i Rectangle.
Jag har en ArrayList för fienderna och koden för kollisionshantering ser ut såhär:

for(int i = 0; i < enemyList.size(); i++) { collision = ((Opponent)enemyList.get(i)).intersects(p1); } if(collision) System.out.println("Collision.");

Men det funkar inte... Är det någon som bara såhär kan se vad jag gjort för fel? p1 är spelaren och enemyList är listan med fiender.

Opponent är klassen som extendar Rectangle och när jag skapar en fiende ser det ut såhär:

Opponent fiende = new Opponent(giveEnemyX(), giveEnemyY(), 15, 30, 5); enemyList.add(fiende); System.out.println("Enemy added.");

Tack på förhand!

Länk till klassen Rectangle:
http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Rec...

Visa signatur

| Sony A580 | Sigma 10-20/4-5.6 | Tamron 17-50/2.8 | Sigma 70/2.8 Macro | Konica Minolta 50/1.7 | Konicha Minolta 75-300/4.5-5.6 |

Permalänk
Medlem

den där första länken fungerade inte ska jag vill testa !!

Visa signatur

Chassi: Fractal Design Meshify-C Moderkort: Asus P8Z77V-Pro Hårddisk: 128GB SSD+1TB SSD CPU: i5 3570K 3.4GHz RAM: Corsair 8GB vengeance CPU kylare: Cooler Master Hyper 212+ GPU: ASUS GTX 680 2GB PSU: Corsair TX650W
P280 Crossfire Citera för svar

Permalänk
Skrivet av juckeyy:

den där första länken fungerade inte ska jag vill testa !!

Som jag nämnde har jag helt börjat om projektet vilket gör att jag egentligen inte har någonting just nu...

Kan ju iofs slänga upp den sista versionen utav programmet innan jag började om:

Ladda ned här

Skillnader mot det jag la upp i första inlägget:
--- Mindre lagg
--- Bättre kollisioner
--- Välj en level i början (Tryck 1 - 5. När du restartar kan du välja level igen)

Problemet med att FF/IE/Chrome cachar spelet finns fortfarande kvar. Det gör att när du förlorat och stänger ner spelet så kommer webbläsaren att spara dina värden och nästa gång du spelar kommer du alltså få "Game Over" direkt och måste starta om spelet (genom att trycka på "yes" i "Do you want to play again?")

Visa signatur

| Sony A580 | Sigma 10-20/4-5.6 | Tamron 17-50/2.8 | Sigma 70/2.8 Macro | Konica Minolta 50/1.7 | Konicha Minolta 75-300/4.5-5.6 |

Permalänk
Medlem
Skrivet av Son of Qwerty:

for(int i = 0; i < enemyList.size(); i++) { collision = ((Opponent)enemyList.get(i)).intersects(p1); } if(collision) System.out.println("Collision.");

Efter din for-loop kommer collision att vara satt om sista fienden kolliderar med spelaren. Det är enbart denna kollision som du sedan testar i din if-sats.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Skrivet av Teknocide:

Efter din for-loop kommer collision att vara satt om sista fienden kolliderar med spelaren. Det är enbart denna kollision som du sedan testar i din if-sats.

Jo, jag upptäckte det nyss och ändrade till:

for(int i = 0; i < enemyList.size(); i++) { collision = ((Rectangle)enemyList.get(i)).intersects(p1); System.out.println(collision); }

Men det funkar ändå inte... "/

Visa signatur

| Sony A580 | Sigma 10-20/4-5.6 | Tamron 17-50/2.8 | Sigma 70/2.8 Macro | Konica Minolta 50/1.7 | Konicha Minolta 75-300/4.5-5.6 |

Permalänk
Medlem

Vad händer då? Den ska åtminstone skriva ett par "false" i konsolen annars så går den ju aldrig in i loopen

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Skrivet av Teknocide:

Vad händer då? Den ska åtminstone skriva ett par "false" i konsolen annars så går den ju aldrig in i loopen

Jodå, den spammar false utav bara helsike.

Visa signatur

| Sony A580 | Sigma 10-20/4-5.6 | Tamron 17-50/2.8 | Sigma 70/2.8 Macro | Konica Minolta 50/1.7 | Konicha Minolta 75-300/4.5-5.6 |

Permalänk
Medlem
Skrivet av Son of Qwerty:

Jodå, den spammar false utav bara helsike.

Testa att spara undan "fienderektangeln" och kör debugging på den också. Skriv ut vad den har för x-/y-värden, bredd, höjd osv.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Spelkänslan tycker jag tyvärr inte var något vidare. Det var för få fiender och för snabbt. Jag stod på samma ställe väldigt länge och flyttade mig nån gång då och då när något kom där jag var. Sen i slutet gick det så fort att när det väl kom en fiende där jag var så var det nästan omöjligt att hinna flytta sig för det gick så snabbt. Jag skulle vilja att spelet inte går lika snabbt men att det kommer flera fiender mera utspritt så man faktiskt behöver sick-sacka sig lite mer för att undvika fiender.

Permalänk
Hedersmedlem
Skrivet av Son of Qwerty:

Jodå, den spammar false utav bara helsike.

Precis som du har skrivit att den ska. Vill du att den ska skriva ut när det faktiskt händer en kollision måste du ha en if-sats.

Permalänk

DONE!
Inlämning imorgon. Wish me luck.

Här är slutversionen:
Ladda ned här

Visa signatur

| Sony A580 | Sigma 10-20/4-5.6 | Tamron 17-50/2.8 | Sigma 70/2.8 Macro | Konica Minolta 50/1.7 | Konicha Minolta 75-300/4.5-5.6 |