Permalänk

[C#] PlanetStreamer

Hejdär!

(Ja jag håller på med 2st spel samtidigt, för er som vet det.)

Jag kodar med ett spel till WindowsPhone som ska heta PlanetStreamer, det är en fin liten bakgrund och så styr man genom att dra på skeppet upp och ner och skjuter genom att klicka på skärmen.

Jag har hittils fixat bakgrunden, men till skillnad från mitt gamla projekt (som jag inte övergivit, håller på med det fortfarande) så blev det så sjuukt grötigt utan klasser och annat gott. SÅ jag ahde tänkt från början att dela upp olika saker i spelet i olika klasser.

Men eftersom vi inte gått igenom classer än i skolan så är det ett problem.

Många lämnar kritik som "Varför kan du det, men kan inte enkla saker som det?" Och det är helt enkelt för att jag googlar upp och lär mig det jag behöver veta för tillfället på internet, och lär mig riktigt långsamt i skolan. (Vi har en.. EN.. programmerings lektion i veckan, och då får man aldrig hjälp för att 30 andra elever behöver hjälp -.-'

Så jag kan lite ditt och datt om olika saker helt enkelt.

Vad jag behöver hjälp med just nu är varför mitt spel inte vill fungera:
Det är massa errors, och jag har försökt fixa dem men då kommer en annan error upp istället och så har det pågått.
Just nu har jag tre stycken klasser (.cs) filer i spelet.
Ettan är IngameTexture och är den som ändrar bakgrundsbilden när man väl är i spelet och styr planet osv.
Tvåan är MainMenu och är den som skriver Tap Screen to continue, och ändrar bakgrund bild.
Trean är IngameSpaceShip, som fixar rymdskeppet.

Alltså, vad är en klass, kan jag läsa in dem i en speciell ordning? Alltså MainMenu först, sen IngameTexture och sen IngameSpaceShip?

Och slutligen, varför kommer dessa errors upp?
IngameTexture.cs:

using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Input.Touch; using Microsoft.Xna.Framework.Media; namespace PlanetStreamer { /// <summary> /// This is the main type for your game /// </summary> public class IngameTexture : Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics; SpriteBatch spriteBatch; private Texture2D Texture; Public IngameTexture() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; // Frame rate is 30 fps by default for Windows Phone. TargetElapsedTime = TimeSpan.FromTicks(333333); // Extend battery life under lock. InactiveSleepTime = TimeSpan.FromSeconds(1); } /// <summary> /// Allows the game to perform any initialization it needs to before starting to run. /// This is where it can query for any required services and load any non-graphic /// related content. Calling base.Initialize will enumerate through any components /// and initialize them as well. /// </summary> protected override void Initialize() { // TODO: Add your initialization logic here base.Initialize(); } /// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); Texture = Content.Load<Texture2D>("Space"); // TODO: use this.Content to load your game content here } /// <summary> /// UnloadContent will be called once per game and is the place to unload /// all content. /// </summary> protected override void UnloadContent() { // TODO: Unload any non ContentManager content here } /// <summary> /// Allows the game to run logic such as updating the world, /// checking for collisions, gathering input, and playing audio. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Update(GameTime gameTime) { // Allows the game to exit if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit(); // TODO: Add your update logic here base.Update(gameTime); } /// <summary> /// This is called when the game should draw itself. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); spriteBatch.Begin(); spriteBatch.Draw(Texture, new Vector2(0f, 0f), Color.White); spriteBatch.End(); // TODO: Add your drawing code here base.Draw(gameTime); } } }

Dold text

MainMenu.cs

using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; using Microsoft.Xna.Framework.Input.Touch; namespace PlanetStreamer { /// <summary> /// This is a game component that implements IUpdateable. /// </summary> public class MainMenu : Microsoft.Xna.Framework.GameComponent { GraphicsDeviceManager graphics; SpriteBatch spriteBatch; private Texture2D MainMenuTexture; public MainMenu(Game game) : base(game) { // TODO: Construct any child components here } /// <summary> /// Allows the game component to perform any initialization it needs to before starting /// to run. This is where it can query for any required services and load content. /// </summary> public override void Initialize() { // TODO: Add your initialization code here base.Initialize(); } /// <summary> /// Allows the game component to update itself. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> /// protected void LoadContent() { MainMenuTexture = Content.Load<Texture2D>("Space"); } protected void UnloadContent() { } public override void Update(GameTime gameTime) { // TODO: Add your update code here base.Update(gameTime); } protected void Draw(GameTime gameTime) { spriteBatch.Begin(); spriteBatch.Draw(MainMenuTexture, new Vector2(0f, 0f), Color.White); spriteBatch.End(); base.Draw(gameTime); } } }

Dold text

IngameSpaceShip.cs -Inte börjat än då en SpelDesign elev gör ett rymdskepp (Han e grym!)

using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; using Microsoft.Xna.Framework.Input.Touch; namespace PlanetStreamer { /// <summary> /// This is a game component that implements IUpdateable. /// </summary> public class IngameSpaceShip : Microsoft.Xna.Framework.GameComponent { public IngameSpaceShip(Game game) : base(game) { // TODO: Construct any child components here Content.RootDirectory = "Content"; } /// <summary> /// Allows the game component to perform any initialization it needs to before starting /// to run. This is where it can query for any required services and load content. /// </summary> public override void Initialize() { // TODO: Add your initialization code here base.Initialize(); } /// <summary> /// Allows the game component to update itself. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> public override void Update(GameTime gameTime) { // TODO: Add your update code here base.Update(gameTime); } } }

Dold text

ERRORS:

Ladda hem källkod:
http://www.mediafire.com/?1ks5i6421w335mu

Permalänk
Medlem

Tips är att kolla på lite exempel innan du ger dig in på att skapa ett helt eget spel. Det finns massor av exempel för spel till XNA och att utgå från ett fungerande och sätta sig in i den och lägga till egna funktioner brukar vara mycket lättare.

Permalänk
Skrivet av Wickit:

Tips är att kolla på lite exempel innan du ger dig in på att skapa ett helt eget spel. Det finns massor av exempel för spel till XNA och att utgå från ett fungerande och sätta sig in i den och lägga till egna funktioner brukar vara mycket lättare.

Detta är inte mitt första spel, så jag är lite insatt i hur XNA fungerar, dessutom så är jag insatt i hur mina polares spel är uppbyggda och fungerar, men jag förstår hur du tänker och ja, det skall jag. Men jag kan lova dig att det enda vi polare gör i skolan är just det, att googla efter hjälp, eftersom vi knappt får någon hjälp. Tro mig, jag har läst många exempel, dessutom så brukar i i klassen hjälpa varandra, så när en kompis äntligen fattat något genom internet så förklarar han hur det fungerar för alla, det är inte lätt för oss som är totala noobs att googla allt 24/7, svårt att förstå, men ja jag försöker skaffa mycket hjälp on teh internetz

Permalänk
Medlem
Skrivet av LinusNeuman:

Hejdär!

(Ja jag håller på med 2st spel samtidigt, för er som vet det.)

Jag kodar med ett spel till WindowsPhone som ska heta PlanetStreamer, det är en fin liten bakgrund och så styr man genom att dra på skeppet upp och ner och skjuter genom att klicka på skärmen.

Jag har hittils fixat bakgrunden, men till skillnad från mitt gamla projekt (som jag inte övergivit, håller på med det fortfarande) så blev det så sjuukt grötigt utan klasser och annat gott. SÅ jag ahde tänkt från början att dela upp olika saker i spelet i olika klasser.

Men eftersom vi inte gått igenom classer än i skolan så är det ett problem.

Många lämnar kritik som "Varför kan du det, men kan inte enkla saker som det?" Och det är helt enkelt för att jag googlar upp och lär mig det jag behöver veta för tillfället på internet, och lär mig riktigt långsamt i skolan. (Vi har en.. EN.. programmerings lektion i veckan, och då får man aldrig hjälp för att 30 andra elever behöver hjälp -.-'

Så jag kan lite ditt och datt om olika saker helt enkelt.

Vad jag behöver hjälp med just nu är varför mitt spel inte vill fungera:
Det är massa errors, och jag har försökt fixa dem men då kommer en annan error upp istället och så har det pågått.
Just nu har jag tre stycken klasser (.cs) filer i spelet.
Ettan är IngameTexture och är den som ändrar bakgrundsbilden när man väl är i spelet och styr planet osv.
Tvåan är MainMenu och är den som skriver Tap Screen to continue, och ändrar bakgrund bild.
Trean är IngameSpaceShip, som fixar rymdskeppet.

Alltså, vad är en klass, kan jag läsa in dem i en speciell ordning? Alltså MainMenu först, sen IngameTexture och sen IngameSpaceShip?

Och slutligen, varför kommer dessa errors upp?
IngameTexture.cs:

using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Input.Touch; using Microsoft.Xna.Framework.Media; namespace PlanetStreamer { /// <summary> /// This is the main type for your game /// </summary> public class IngameTexture : Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics; SpriteBatch spriteBatch; private Texture2D Texture; Public IngameTexture() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; // Frame rate is 30 fps by default for Windows Phone. TargetElapsedTime = TimeSpan.FromTicks(333333); // Extend battery life under lock. InactiveSleepTime = TimeSpan.FromSeconds(1); } /// <summary> /// Allows the game to perform any initialization it needs to before starting to run. /// This is where it can query for any required services and load any non-graphic /// related content. Calling base.Initialize will enumerate through any components /// and initialize them as well. /// </summary> protected override void Initialize() { // TODO: Add your initialization logic here base.Initialize(); } /// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); Texture = Content.Load<Texture2D>("Space"); // TODO: use this.Content to load your game content here } /// <summary> /// UnloadContent will be called once per game and is the place to unload /// all content. /// </summary> protected override void UnloadContent() { // TODO: Unload any non ContentManager content here } /// <summary> /// Allows the game to run logic such as updating the world, /// checking for collisions, gathering input, and playing audio. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Update(GameTime gameTime) { // Allows the game to exit if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit(); // TODO: Add your update logic here base.Update(gameTime); } /// <summary> /// This is called when the game should draw itself. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); spriteBatch.Begin(); spriteBatch.Draw(Texture, new Vector2(0f, 0f), Color.White); spriteBatch.End(); // TODO: Add your drawing code here base.Draw(gameTime); } } }

Dold text

MainMenu.cs

using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; using Microsoft.Xna.Framework.Input.Touch; namespace PlanetStreamer { /// <summary> /// This is a game component that implements IUpdateable. /// </summary> public class MainMenu : Microsoft.Xna.Framework.GameComponent { GraphicsDeviceManager graphics; SpriteBatch spriteBatch; private Texture2D MainMenuTexture; public MainMenu(Game game) : base(game) { // TODO: Construct any child components here } /// <summary> /// Allows the game component to perform any initialization it needs to before starting /// to run. This is where it can query for any required services and load content. /// </summary> public override void Initialize() { // TODO: Add your initialization code here base.Initialize(); } /// <summary> /// Allows the game component to update itself. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> /// protected void LoadContent() { MainMenuTexture = Content.Load<Texture2D>("Space"); } protected void UnloadContent() { } public override void Update(GameTime gameTime) { // TODO: Add your update code here base.Update(gameTime); } protected void Draw(GameTime gameTime) { spriteBatch.Begin(); spriteBatch.Draw(MainMenuTexture, new Vector2(0f, 0f), Color.White); spriteBatch.End(); base.Draw(gameTime); } } }

Dold text

IngameSpaceShip.cs -Inte börjat än då en SpelDesign elev gör ett rymdskepp (Han e grym!)

using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; using Microsoft.Xna.Framework.Input.Touch; namespace PlanetStreamer { /// <summary> /// This is a game component that implements IUpdateable. /// </summary> public class IngameSpaceShip : Microsoft.Xna.Framework.GameComponent { public IngameSpaceShip(Game game) : base(game) { // TODO: Construct any child components here Content.RootDirectory = "Content"; } /// <summary> /// Allows the game component to perform any initialization it needs to before starting /// to run. This is where it can query for any required services and load content. /// </summary> public override void Initialize() { // TODO: Add your initialization code here base.Initialize(); } /// <summary> /// Allows the game component to update itself. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> public override void Update(GameTime gameTime) { // TODO: Add your update code here base.Update(gameTime); } } }

Dold text

ERRORS:
http://imageshack.us/a/img109/4748/errors11.png

Ladda hem källkod:
http://www.mediafire.com/?1ks5i6421w335mu

varför har du 2 grundklasser? med graphicsdevicemanagers och sånt? du ska ha EN sån i djupet, sen bygga spelet runt den. Ska du ha menyer? Göra en screen/state basklass som du gör spelet i och menyn i. t.ex.

edit:
Många av felen grundar sig på att mainmenu.cs är ärvd av GameComponent och inte Game, så det blir fel i typecasting och saknas variabler etc. Men du ska ändå bara ha 1 game i grunden. tänk om

Visa signatur

Laptop - MacBook 2.0GHz, 4GB ram, Intel GMA 950
Stationär - i5 3570k @ 4ghz, 8gb ram, 120gb ssd + 2tb hdd, Windows 8 64bit, fractal design arc
Citera så jag hittar tillbaka :)

Permalänk
Skrivet av E_maN:

varför har du 2 grundklasser? med graphicsdevicemanagers och sånt? du ska ha EN sån i djupet, sen bygga spelet runt den. Ska du ha menyer? Göra en screen/state basklass som du gör spelet i och menyn i. t.ex.

Vad är en screen/state basklass?

Vadå 2 grundklasser? Vadå graphicsdevice managers? Vilket djup?

Jag flyttade runt på graphicsdevide grejen för att det kom upp errors o jag trodde den va felet.

Permalänk
Medlem
Skrivet av LinusNeuman:

Vad är en screen/state basklass?

Vadå 2 grundklasser? Vadå graphicsdevice managers? Vilket djup?

Jag flyttade runt på graphicsdevide grejen för att det kom upp errors o jag trodde den va felet.

gör en klass för meny och spelet som du ärver av en basklass. typ.

GameState
- Meny
- Spel

Sen har ud i din grundklass så swappar du vilken den ska uppdatera och rita, ett enkelt sätt o få ett menysystem. Menade grunden, skrev djupet. Dumt gjort

Hm. Det står ganska klart och tydligt vad felen är. Läs dem, Googla. Kolla exempel. Gör 1 projekt i taget, gör klart det. Det blir bäst så och du lär dig mest.

Visa signatur

Laptop - MacBook 2.0GHz, 4GB ram, Intel GMA 950
Stationär - i5 3570k @ 4ghz, 8gb ram, 120gb ssd + 2tb hdd, Windows 8 64bit, fractal design arc
Citera så jag hittar tillbaka :)

Permalänk
Skrivet av E_maN:

gör en klass för meny och spelet som du ärver av en basklass. typ.

GameState
- Meny
- Spel

Sen har ud i din grundklass så swappar du vilken den ska uppdatera och rita, ett enkelt sätt o få ett menysystem. Menade grunden, skrev djupet. Dumt gjort

Hm. Det står ganska klart och tydligt vad felen är. Läs dem, Googla. Kolla exempel. Gör 1 projekt i taget, gör klart det. Det blir bäst så och du lär dig mest.

Vi har haft en lektion med XNA och då lärde vi oss hur man ändrar färg på bakgrundsbilden i ett spel.. Men självklart har jag läst på on teh internet, men jag har ingen aning om hur jag gör en swap eller ärver. Men vad menar du? Ska jag ha en klass för Menyn, och en klass för spelet? Blir itne det skit grötigt om jag har allting i hela spelet i en klass?

Jag googlade på problemen innan jag kom hit.

Jag förstår, men det är point of no return, jag har redan börjat, tänker inte sluta förrens det här spelet är klart. Två projekt samtidigt är inga problem.

Permalänk
Medlem
Skrivet av LinusNeuman:

Vi har haft en lektion med XNA och då lärde vi oss hur man ändrar färg på bakgrundsbilden i ett spel.. Men självklart har jag läst på on teh internet, men jag har ingen aning om hur jag gör en swap eller ärver. Men vad menar du? Ska jag ha en klass för Menyn, och en klass för spelet? Blir itne det skit grötigt om jag har allting i hela spelet i en klass?

Jag googlade på problemen innan jag kom hit.

Jag förstår, men det är point of no return, jag har redan börjat, tänker inte sluta förrens det här spelet är klart. Två projekt samtidigt är inga problem.

läs på lite vad klasser och arv gör. Olika element av logik lägger du i olika delar. Hur spelaren rör sig i en. Hur fiender beter sig i en, deras kollisionskod, vad som händer om man träffar dem. Varje del ska sköta sig själv.

Visa signatur

Laptop - MacBook 2.0GHz, 4GB ram, Intel GMA 950
Stationär - i5 3570k @ 4ghz, 8gb ram, 120gb ssd + 2tb hdd, Windows 8 64bit, fractal design arc
Citera så jag hittar tillbaka :)

Permalänk
Skrivet av E_maN:

läs på lite vad klasser och arv gör. Olika element av logik lägger du i olika delar. Hur spelaren rör sig i en. Hur fiender beter sig i en, deras kollisionskod, vad som händer om man träffar dem. Varje del ska sköta sig själv.

Var ska jag läsa det?

Permalänk
Medlem

Googla på classes och inheritance, köp en bok om C#, gå extra programmeringslektioner vid sidan om. Känns som att du har tagit dig vatten över huvudet

Permalänk
Skrivet av Shkipan:

Googla på classes och inheritance, köp en bok om C#, gå extra programmeringslektioner vid sidan om. Känns som att du har tagit dig vatten över huvudet

Dude, jag går programmering i skolan, jag kommer få böcker gratis, enda anledningen till att jag är här är för att det går för långsamt och jag tycker att det är roligt.

Permalänk
Medlem
Skrivet av LinusNeuman:

Dude, jag går programmering i skolan, jag kommer få böcker gratis, enda anledningen till att jag är här är för att det går för långsamt och jag tycker att det är roligt.

Kul för dig, men lär dig grunderna då, och gå vidare sen. LÄS på i din bok om klasser och arv och liknande. Btw: man kan ta programmeringslektioner vid sidan om studierna. . .

Permalänk
Medlem
Skrivet av LinusNeuman:

Dude, jag går programmering i skolan, jag kommer få böcker gratis, enda anledningen till att jag är här är för att det går för långsamt och jag tycker att det är roligt.

ja, har du en bok är det ju ett utmärkt sätt att läsa på om klasser och arv? Sen kan man googla. antingen svenska eller engeksla, t.ex c# class hierarchy, c# classes, c# inherit osv... Ska du lära dig programmera måste du lära dig söka upp saker själv, inte ropa på hjälp vid första lilla felet. Om någon ger dig tips, men du förstår inte riktigt. Googla, finns alltid en stackoverflow post om det

Visa signatur

Laptop - MacBook 2.0GHz, 4GB ram, Intel GMA 950
Stationär - i5 3570k @ 4ghz, 8gb ram, 120gb ssd + 2tb hdd, Windows 8 64bit, fractal design arc
Citera så jag hittar tillbaka :)

Permalänk
Skrivet av Shkipan:

Kul för dig, men lär dig grunderna då, och gå vidare sen. LÄS på i din bok om klasser och arv och liknande. Btw: man kan ta programmeringslektioner vid sidan om studierna. . .

Skrivet av E_maN:

ja, har du en bok är det ju ett utmärkt sätt att läsa på om klasser och arv? Sen kan man googla. antingen svenska eller engeksla, t.ex c# class hierarchy, c# classes, c# inherit osv... Ska du lära dig programmera måste du lära dig söka upp saker själv, inte ropa på hjälp vid första lilla felet. Om någon ger dig tips, men du förstår inte riktigt. Googla, finns alltid en stackoverflow post om det

Den här sidan är till för att hjälpa? Jädrar va dryga alla är då

Edit: Någon som vet något bra forum där man kan får hjälp angående programmering?

Permalänk
Medlem

Problemet är nog att du inte tar till dig kritiken du får, därav att det uppfattas som folk är dryga.
Hur som helst... Du går för snabbt fram, vilket är vanligt när man vill lära sig saker, speciellt inom programmering.
Köp en bok, läs boken, följ de kodexempel som finns i boken och lär dig grunderna.
Att bemästra OOP tar tid, ge det ett halvår innan du ger dig på något större projekt (som du gjort nu med dina spel).
Sätt in exemplen i olika kontexter, gör mindre program ex, miniräknare med klasser, ett register över böcker i ett bibliotek, ett program som slumpar fram bakverk med olika ingredienser. Sedan när du bemästrar grunderna (grunderna för OOP, arv, generics m.m.) kan du gå vidare och kommer dessutom inte behöva fastna lika ofta som nu.

Permalänk
Medlem
Skrivet av LinusNeuman:

Den här sidan är till för att hjälpa? Jädrar va dryga alla är då

Edit: Någon som vet något bra forum där man kan får hjälp angående programmering?

Du kan få hjälp här. Tonen har nog varit lite dryg i tråden men det gör inte deras råd felaktiga.
Problemet du har är som tidigare sagt att du har ärvt från fel klass.
Men grundproblemet är att du har tagit dig vatten över huvudet. MEN det är inget fel med det egentligen.
Men du måste lära dig vad arv är, och hur man delar upp saker i klasser. Har ingen bra länk just nu men kan återkomma senare ikväll om intresse finns.

Permalänk
Medlem

Det många nybörjare gör fel är att börja på för stora projekt. Ett tips är att lära sig grundläggande saker och strukturer i förstahand.
Jag förstår att det är roligare att få ut nåt att spela, men ni kommer utvecklas på ett bättre sätt om ni lär er viktiga bitar som ni saknar.

Visa signatur

Corsair 16GB (4x4096MB) CL9 1600Mhz | Asus P8Z77-V PRO |
Samsung SSD Basic 830-Series 256GB | Intel Core i7 3770K 3,5Ghz |
Asus Xonar Essence STX | Noctua NH-U9B SE2 | Antec Performance One P280 | Corsair HX 850W 80+ Gold Modulär | MSI GTX 770

Permalänk
Medlem
Skrivet av phantom:

Du kan få hjälp här. Tonen har nog varit lite dryg i tråden men det gör inte deras råd felaktiga.
Problemet du har är som tidigare sagt att du har ärvt från fel klass.
Men grundproblemet är att du har tagit dig vatten över huvudet. MEN det är inget fel med det egentligen.
Men du måste lära dig vad arv är, och hur man delar upp saker i klasser. Har ingen bra länk just nu men kan återkomma senare ikväll om intresse finns.

Det är absolut inte fel att testa och vara ambitiös, men när man kommer till den punkten som han verkar vara på, då måste man gå tillbaka, så enkelt är det.

TS: Vi har hjälpt dig, så innan du anklagar oss så tycker jag du ska göra det vi har sagt till dig

Permalänk
Skrivet av vajjan:

Problemet är nog att du inte tar till dig kritiken du får, därav att det uppfattas som folk är dryga.
Hur som helst... Du går för snabbt fram, vilket är vanligt när man vill lära sig saker, speciellt inom programmering.
Köp en bok, läs boken, följ de kodexempel som finns i boken och lär dig grunderna.
Att bemästra OOP tar tid, ge det ett halvår innan du ger dig på något större projekt (som du gjort nu med dina spel).
Sätt in exemplen i olika kontexter, gör mindre program ex, miniräknare med klasser, ett register över böcker i ett bibliotek, ett program som slumpar fram bakverk med olika ingredienser. Sedan när du bemästrar grunderna (grunderna för OOP, arv, generics m.m.) kan du gå vidare och kommer dessutom inte behöva fastna lika ofta som nu.

Vad rekommenderar du för bok?

Skrivet av phantom:

Du kan få hjälp här. Tonen har nog varit lite dryg i tråden men det gör inte deras råd felaktiga.
Problemet du har är som tidigare sagt att du har ärvt från fel klass.
Men grundproblemet är att du har tagit dig vatten över huvudet. MEN det är inget fel med det egentligen.
Men du måste lära dig vad arv är, och hur man delar upp saker i klasser. Har ingen bra länk just nu men kan återkomma senare ikväll om intresse finns.

Okej, men problemet är att jag istort sett vet att jag har overkillat lite med olika klasser, men att jag vill inte ha allt i en enda gröta för då blir det alldeles för grötigt i framtiden.

Skrivet av NoPaiN^:

Det många nybörjare gör fel är att börja på för stora projekt. Ett tips är att lära sig grundläggande saker och strukturer i förstahand.
Jag förstår att det är roligare att få ut nåt att spela, men ni kommer utvecklas på ett bättre sätt om ni lär er viktiga bitar som ni saknar.

Men vad är ett passande projekt för en nybörjare?

Skrivet av Shkipan:

Det är absolut inte fel att testa och vara ambitiös, men när man kommer till den punkten som han verkar vara på, då måste man gå tillbaka, så enkelt är det.

TS: Vi har hjälpt dig, så innan du anklagar oss så tycker jag du ska göra det vi har sagt till dig

Ja, men jag gillar inte tonen ni har "Kul för dig, läs en bok" Tycker inte jag är så mycket till hjälp.

Permalänk
Permalänk
Medlem
Skrivet av LinusNeuman:

Men vad är ett passande projekt för en nybörjare?

Finns många småprojekt och dylikt man kan börja med, beror lite på vad man behöver kolla djupare på.
Jag tycker i ert fall att det skulle vara lämpligt att kolla mer på klasser/arv polymorfism virtuella klasser.

Då får man gå stegvis, lära sig fullt ut om vanliga klasser. Sen lägga man till mer efterhand.
Behöver ju inte vara några större projekt till att börja med, när man senare har lärt sig detta kan man påbörja ett litet projekt.

Kan ju vara alltmöjligt som kräver arv och dylikt. Kanske nån form av "människor" på skolan.
Göra upp en hieraki med klasser för detta.
Kanske något sånt här:
person
Anställd, student
lärare, vaktmästare, kock, support, etc.
Sen kan man göra, skolämnen, betyg, personuppgifter, som då andra klasser har.
Byggnader, salar, fikarum, bibliotek.
Det finns massor man kan göra, det viktiga är bara att man förstår grunderna.
Att även först kanske göra upp en uml, ta reda på vilka klasser man behöver etc etc.
Ja du märker att det snabbt rinner iväg och bli ganska stort. Lägg en ribba och utveckla det först och lär er.

Sen kan man gå vidare och kanske göra ett mycket simpelt spel, pong brukar vara en bra start.

Blev mycket text, men jag hoppas ni förstår vad jag är ute efter.

Visa signatur

Corsair 16GB (4x4096MB) CL9 1600Mhz | Asus P8Z77-V PRO |
Samsung SSD Basic 830-Series 256GB | Intel Core i7 3770K 3,5Ghz |
Asus Xonar Essence STX | Noctua NH-U9B SE2 | Antec Performance One P280 | Corsair HX 850W 80+ Gold Modulär | MSI GTX 770

Permalänk
Hedersmedlem
Skrivet av LinusNeuman:

Dude, jag går programmering i skolan, jag kommer få böcker gratis, enda anledningen till att jag är här är för att det går för långsamt och jag tycker att det är roligt.

Saken är väl att ett spel är ett stort projekt, även något som msröj, tre-i-rad och liknande kräver en hel del kunskaper för att genomföras. Det är viktigt att man lär sig grunderna som krävs innan man tar sig an sånt. Om kursen i skolan är det enda programmering du lärt dig tidigare kommer du behöva öva mycket på sidan om du vill göra spel. Det är väldigt bra däremot att du gör saker vid sidan om, väldigt nyttigt faktiskt. Men förvänta dig inte att du kan göra vad som helst på en månad eller två. Det är mycket tänk man måste bli bekväm med. Tror ingen säger åt dig att lägga ner men du måste ge dig tid att lära dig också.

Försök följa tipsen om att läsa på om klasser och arv t ex. När du gjort det försök sammanfatta här hur du tror att det fungerar och kan användas så kommer du få en rikligare diskussion ur de andra skulle jag tro. Det blir roligare för alla om det blir en två-sidig diskussion och inte bara vissa som kommer och lär ut för varje problem. Du kommer märka att det blir lättare om du kan läsa på själv och klura lite också innan du ber om hjälp.

Permalänk
Skrivet av Shimonu:

Saken är väl att ett spel är ett stort projekt, även något som msröj, tre-i-rad och liknande kräver en hel del kunskaper för att genomföras. Det är viktigt att man lär sig grunderna som krävs innan man tar sig an sånt. Om kursen i skolan är det enda programmering du lärt dig tidigare kommer du behöva öva mycket på sidan om du vill göra spel. Det är väldigt bra däremot att du gör saker vid sidan om, väldigt nyttigt faktiskt. Men förvänta dig inte att du kan göra vad som helst på en månad eller två. Det är mycket tänk man måste bli bekväm med. Tror ingen säger åt dig att lägga ner men du måste ge dig tid att lära dig också.

Försök följa tipsen om att läsa på om klasser och arv t ex. När du gjort det försök sammanfatta här hur du tror att det fungerar och kan användas så kommer du få en rikligare diskussion ur de andra skulle jag tro. Det blir roligare för alla om det blir en två-sidig diskussion och inte bara vissa som kommer och lär ut för varje problem. Du kommer märka att det blir lättare om du kan läsa på själv och klura lite också innan du ber om hjälp.

Jo jo, men jag vill ha en utmaning, jag vill ha ett spel, även ifall det är en dum början. Som till exempel nu, så har jag under hela självstudie tiden suttit och kodat med mitt mobil spel, men till slut så kör det fast och google ger ingen hjälp längre, sen så har jag ingen bok än att kolla i.

Skrivet av NoPaiN^:

Finns många småprojekt och dylikt man kan börja med, beror lite på vad man behöver kolla djupare på.
Jag tycker i ert fall att det skulle vara lämpligt att kolla mer på klasser/arv polymorfism virtuella klasser.

Då får man gå stegvis, lära sig fullt ut om vanliga klasser. Sen lägga man till mer efterhand.
Behöver ju inte vara några större projekt till att börja med, när man senare har lärt sig detta kan man påbörja ett litet projekt.

Kan ju vara alltmöjligt som kräver arv och dylikt. Kanske nån form av "människor" på skolan.
Göra upp en hieraki med klasser för detta.
Kanske något sånt här:
person
Anställd, student
lärare, vaktmästare, kock, support, etc.
Sen kan man göra, skolämnen, betyg, personuppgifter, som då andra klasser har.
Byggnader, salar, fikarum, bibliotek.
Det finns massor man kan göra, det viktiga är bara att man förstår grunderna.
Att även först kanske göra upp en uml, ta reda på vilka klasser man behöver etc etc.
Ja du märker att det snabbt rinner iväg och bli ganska stort. Lägg en ribba och utveckla det först och lär er.

Sen kan man gå vidare och kanske göra ett mycket simpelt spel, pong brukar vara en bra start.

Blev mycket text, men jag hoppas ni förstår vad jag är ute efter.

Vi har faktiskt gjort ett pong! Så vi har den erfarenheten..

Men jag förstår vad du menar, jag ska försöka lära mig classer, men vi ska nog lära oss det i skolan strax.

Ska ta en titt på det sen.

Btw, finns det inga böcker som är inriktade bara på XNA?

Update:

Hur får man rymd skeppet att flytta på sig? Använder GestureType.VerticalDrag, men då kan den bara åka åt en riktning? Jag vill ju att den ska kunna åka både upp och ner, sen hittade jag detta:

switch (gs.GestureType) { case GestureType.VerticalDrag: // move the poem screen vertically by the drag delta // amount. poem.offset.Y -= gs.Delta.Y; break;

Men jag förstår inte, det fungerar inte. Vad är ".offset" ?

switch (gesture.GestureType) { case GestureType.VerticalDrag: SpaceShipPos = new Vector2(SpaceShipPos.Y -= gesture.Delta.Y); continue;

Gjorde så, men då åker skeppet sidledes :/

Permalänk
Medlem

Använder du verical så kan den "bara" åka vertikalt

Hur ska ni styra ert skepp?
Ta en titt här:
http://msdn.microsoft.com/en-us/library/microsoft.xna.framewo...

Är det 2D, och ni vill peka på skeppet och sedan dra skeppet, för att förflytta det?
Eller ska ni ha snygga knappar som man trycker på för att förflytta?

Visa signatur

Corsair 16GB (4x4096MB) CL9 1600Mhz | Asus P8Z77-V PRO |
Samsung SSD Basic 830-Series 256GB | Intel Core i7 3770K 3,5Ghz |
Asus Xonar Essence STX | Noctua NH-U9B SE2 | Antec Performance One P280 | Corsair HX 850W 80+ Gold Modulär | MSI GTX 770

Permalänk
Skrivet av NoPaiN^:

Använder du verical så kan den "bara" åka vertikalt

Hur ska ni styra ert skepp?
Ta en titt här:
http://msdn.microsoft.com/en-us/library/microsoft.xna.framewo...

Är det 2D, och ni vill peka på skeppet och sedan dra skeppet, för att förflytta det?
Eller ska ni ha snygga knappar som man trycker på för att förflytta?

Bra fråga!

Jag funderar på att göra en inställning där man kan ställa in mellan snygga knappar eller ifall man vill dra, men inte just nu. Just nu ska man helt enkelt bara dra upp eller ner på skärmen för att styra skeppet, men kan inte dra den framåt eller bakåt.

Edit: Jag har redan vart inne där, men jag hittar inte någon information, ifall jag använder Vertical så kan jag bara flytta skeppet åt ett håll. Det finns inget ifall man drar skärmen uppåt, eller ifall man drar den neråt? Bara ifall man drar den upp eller ner?

Permalänk
Medlem
Skrivet av LinusNeuman:

Bra fråga!

Jag funderar på att göra en inställning där man kan ställa in mellan snygga knappar eller ifall man vill dra, men inte just nu. Just nu ska man helt enkelt bara dra upp eller ner på skärmen för att styra skeppet, men kan inte dra den framåt eller bakåt.

Läs igenom sidan jag länkade och fundera ett tag, så kommer du på hur

Visa signatur

Corsair 16GB (4x4096MB) CL9 1600Mhz | Asus P8Z77-V PRO |
Samsung SSD Basic 830-Series 256GB | Intel Core i7 3770K 3,5Ghz |
Asus Xonar Essence STX | Noctua NH-U9B SE2 | Antec Performance One P280 | Corsair HX 850W 80+ Gold Modulär | MSI GTX 770

Permalänk
Skrivet av NoPaiN^:

Läs igenom sidan jag länkade och fundera ett tag, så kommer du på hur

Challenge accepted!

Nemen, det här är la det jag hittar
"The user touched the screen, and then performed a vertical (top to bottom or bottom to top) gesture."

Vet inte dock hur jag ska göra nåt med det, ska kika mer på detta.

Permalänk
Medlem

Okej, det finns mängder med sätt att göra förflyttningar på.

Ett lätt sätt kanske kan vara:
1.Peka på skärmen.TAP to ut position.
2. kolla x och y, är x större än hälften av skärmen flytta då skeppet fram etc.

Ett annat sätt kan ju vara typ.
1. Du sätter fingret på skärmen, TAP. Då vet du positionen på skärmen.
2. Du flyttar fingret åt nåt håll, upp/ner(Vertical/Horizontal). Ta ut positionen igen.
3. Då har du två vector ta ut längden mellan dessa två, då vet du hur långt skeppet ska förflytta sig.

Ett annat sätt kan vara.
1.Du sätter fingret, TAP ta ut position.
2.Du flyttar fingret upp ner. Ta ut ny postion.
3.Kolla om du ska flytta upp eller ner, flytta då med statiskt värde.

Ett annat sätt kan vara.
1.Du pekar på skeppet. Skeppets position.
2.Flyttar fingret, sätt skeppet till fingrets position.

Finns mängder med sätt.
Du kan kolla hur snabbt du förflyttar fingret, acceleration och annat.

Visa signatur

Corsair 16GB (4x4096MB) CL9 1600Mhz | Asus P8Z77-V PRO |
Samsung SSD Basic 830-Series 256GB | Intel Core i7 3770K 3,5Ghz |
Asus Xonar Essence STX | Noctua NH-U9B SE2 | Antec Performance One P280 | Corsair HX 850W 80+ Gold Modulär | MSI GTX 770

Permalänk
Skrivet av NoPaiN^:

Okej, det finns mängder med sätt att göra förflyttningar på.

Ett lätt sätt kanske kan vara:
1.Peka på skärmen.TAP to ut position.
2. kolla x och y, är x större än hälften av skärmen flytta då skeppet fram etc.

Ett annat sätt kan ju vara typ.
1. Du sätter fingret på skärmen, TAP. Då vet du positionen på skärmen.
2. Du flyttar fingret åt nåt håll, upp/ner(Vertical/Horizontal). Ta ut positionen igen.
3. Då har du två vector ta ut längden mellan dessa två, då vet du hur långt skeppet ska förflytta sig.

Ett annat sätt kan vara.
1.Du sätter fingret, TAP ta ut position.
2.Du flyttar fingret upp ner. Ta ut ny postion.
3.Kolla om du ska flytta upp eller ner, flytta då med statiskt värde.

Ett annat sätt kan vara.
1.Du pekar på skeppet. Skeppets position.
2.Flyttar fingret, sätt skeppet till fingrets position.

Finns mängder med sätt.
Du kan kolla hur snabbt du förflyttar fingret, acceleration och annat.

Aha tack!
Alternativ nummer ett lät inressant! Menar du att användaren ska trycka på skärmen, sedan att skeppet rör sig dit? Helst vill jag att man ska kunna dra i skeppet, alltså dra upp o ner, inte bara på skeppet utan på hela skärmen, dra upp och ner.

Edit:
Ärligt talat så vore nog det enklaste att sätta två stycken pilar, en som pekar uppåt och en som pekar neråt, sen att det finns en sorts skjut knapp också, det vore nog faktiskt det bästa, och enklaste. Men frågan är var jag ska skaffa en transparent pil :S Kanske kan fråga nån i klassen eller kanske nån i speldesign. Kanske får googla upp något sålänge.

Edit: Skaffade två bra sprites för pilar upp och ner, saknas bara en skjut knapp, eller om man bara trycker var som på skärmen för att få den att skjuta.
Men hur får man en sprite att bli vit? Om jag sätter den till Color.White så vill den ju inte shade:a den alls, för den är grå och syns inte i den mörka bakgrunden.

Btw, skaffade App Hub konto! Tack gode gud för CSN!

Edit2:
Vafasen, hittar ingenstans där jag kan skaffa så att någonting händer ifall man klickar på en viss position, hittar bara detta:

foreach (TouchLocation location in collection) { if (rectangle.Contains((int)location.Position.X, (int)location.Position.Y)) { enemyOut = enemy; return true; } }

Kan någon förklara den koden för mig, hur den funkar, och varför "collection" är där, för den finns inte som variabel i mitt program och undrar varför den ska vara där. Jag vill ju att ifall man trycker på samma ställe där knapparna och menyerna är så ska en viss sak hända men hittar ingen kod som gör det, jag hittade innan men inte nu.

Permalänk
Medlem

själv tycker jag om knappar, är väl mer att jag är van vid "dosa" från konsoler.
Sen om det är snabba skjutaspel så vill man ju kunna se skärmen för att undvika saker, då är det inte lämpligt med stora händer som täcker halva skärmen

så nere i vänster och högra hörn är skönt, så kan man bara arbeta med tummarna och inte täcka upp halva skrämen

Visa signatur

Corsair 16GB (4x4096MB) CL9 1600Mhz | Asus P8Z77-V PRO |
Samsung SSD Basic 830-Series 256GB | Intel Core i7 3770K 3,5Ghz |
Asus Xonar Essence STX | Noctua NH-U9B SE2 | Antec Performance One P280 | Corsair HX 850W 80+ Gold Modulär | MSI GTX 770