Zoals je al zei? Nee, dat zei je niet!
Ga eerst maar eens alles op orde maken, want dit is gewoon een rotzooitje.
Posts by Victor
-
-
Daar bestaan al apps voor. Om dat te laten maken lijkt me overbodige geldverspilling.
Sowieso kan je niet verwachten dat mensen uren in apps gaan steken waar ze uiteindelijk niks voor krijgen. (Geld of reclame) -
-
Zou je kunnen vermelden wat je zelf kan?
-
Fijn dat je dat ook even in je beginpost meld.
-
Heb je een portfolio?
-
Hallo ICT'ers,
Ik ben bezig met een simpele pong game in C#. Nu ben ik een menu aan het maken. Hieronder zijn de GameStates die ik heb:
- MainMenu //Hoofdmenu met de opties om het spel te spelen en om de settings te wijzigen
- PrePlaying //In dit scherm kies je singleplayer of multiplayer
- Playing // Het spel zelf
- Pause // Spreekt voor zich
- Settings // Settings wijzigenAls ik in het hoofdmenu op preplaying klik werkt alles. Maar als ik dan doorklik op playing staat alles vast. Iemand een idee? Ook is het soms zo dat als ik op preplaying klik dat ik dan ook meteen de volgende knop indruk. (Die staat op de volgende pagina op dezelfde plek) Is er een manier om dat tegen te gaan?
Hier is de code:
C#
Toon Meerusing 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; namespace WindowsGame4 { public class Pong : Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics; SpriteBatch spriteBatch; //Gamestates enum GameState { MainMenu, Settings, Playing, Pause, PrePlaying } GameState CurrentGameState = GameState.MainMenu; //Screen Adjustments int screenWidth = 800; int screenHeight = 600; //Menu buttons cButton btnPrePlaying; cButton btnSettings; cButton btnOnePlayer; cButton btnTwoPlayers; //PrePlaying Settings bool multiplayer = false; //SpriteFonts SpriteFont pong; //Ball and Player Content Texture2D ballTexture; Rectangle ballRectangle; Texture2D player1Texture; Rectangle player1Rectangle; Texture2D player2Texture; Rectangle player2Rectangle; Vector2 velocity; public Pong() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; } protected override void Initialize() { IsMouseVisible = true; base.Initialize(); } protected override void LoadContent() { spriteBatch = new SpriteBatch(GraphicsDevice); graphics.PreferredBackBufferWidth = screenWidth; graphics.PreferredBackBufferHeight = screenHeight; graphics.IsFullScreen = true; graphics.ApplyChanges(); //SpriteFonts pong = Content.Load<SpriteFont>("pong"); //btnPrePlaying btnPrePlaying = new cButton(Content.Load<Texture2D>("btnPlaying"), graphics.GraphicsDevice); btnPrePlaying.setPosition(new Vector2(350, 250)); //btnSettings btnSettings = new cButton(Content.Load<Texture2D>("btnSettings"), graphics.GraphicsDevice); btnSettings.setPosition(new Vector2(350, 290)); //btnOnePlayer btnOnePlayer = new cButton(Content.Load<Texture2D>("btnOnePlayer"), graphics.GraphicsDevice); btnOnePlayer.setPosition(new Vector2(350, 250)); //btnTwoPlayers btnTwoPlayers = new cButton(Content.Load<Texture2D>("btnTwoPlayers"), graphics.GraphicsDevice); btnTwoPlayers.setPosition(new Vector2(350, 290)); //Ball and player content ballTexture = Content.Load<Texture2D>("ball"); ballRectangle = new Rectangle(300, 300, 32, 32); player1Texture = Content.Load<Texture2D>("player"); player1Rectangle = new Rectangle(20, 250, 5, 50); player2Texture = Content.Load<Texture2D>("player"); player2Rectangle = new Rectangle(780, 250, 5, 50); velocity.X = 3f; velocity.Y = 3f; } protected override void UnloadContent() { } protected override void Update(GameTime gameTime) { if (Keyboard.GetState().IsKeyDown(Keys.Escape)) this.Exit(); MouseState mouse = Mouse.GetState(); switch (CurrentGameState) { case GameState.MainMenu: if (btnPrePlaying.isClicked == true) CurrentGameState = GameState.PrePlaying; btnPrePlaying.Update(mouse); if (btnSettings.isClicked == true) CurrentGameState = GameState.Settings; btnSettings.Update(mouse); break; case GameState.PrePlaying: if (btnOnePlayer.isClicked == true) CurrentGameState = GameState.Playing; btnOnePlayer.Update(mouse); if (btnTwoPlayers.isClicked == true) CurrentGameState = GameState.Playing; btnTwoPlayers.Update(mouse); break; case GameState.Settings: break; case GameState.Playing: if (multiplayer == false) { if (Keyboard.GetState().IsKeyDown(Keys.Up)) { player1Rectangle.Y -= 6; } if (Keyboard.GetState().IsKeyDown(Keys.Down)) { player1Rectangle.Y += 6; } } break; } base.Update(gameTime); } protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); spriteBatch.Begin(); switch (CurrentGameState) { case GameState.MainMenu: btnPrePlaying.Draw(spriteBatch); btnSettings.Draw(spriteBatch); break; case GameState.PrePlaying: spriteBatch.DrawString(pong, "Players", new Vector2(screenWidth / 2 - 10, 100), Color.Black); btnOnePlayer.Draw(spriteBatch); btnTwoPlayers.Draw(spriteBatch); break; case GameState.Settings: break; case GameState.Playing: if (multiplayer == false) { spriteBatch.Begin(); spriteBatch.Draw(player1Texture, player1Rectangle, Color.White); spriteBatch.Draw(ballTexture, ballRectangle, Color.White); spriteBatch.End(); } break; } spriteBatch.End(); base.Draw(gameTime); } } }
Overigens schrijf ik al mijn commentaar in het Engels. Dit zijn geen scripts van internet.
Alvast bedankt!//Edit
Ik ben er net met debuggen achter gekomen dat het al freezed op het PrePlaying menu zelf. Maar het probleem is nog niet opgelost.//OPLOSSING//
Het is me ondertussen gelukt. Ik had SpriteBatch.Begin() en SpriteBatch.End() dubbel in de switch gezet.
Voor het snelle doorklikken van buttons heb ik een oplossing bedacht. Ik heb een extra boolean wasClicked. Ik kijk eerst of de linker mouse button de state "pressed" heeft. Als dat het geval is word wasCicked TRUE. Als die dan word released als hij nog op de button is word je doorverwezen. Als je met je muis van de button afgaat word wasClicked weer FALSE.
-
Volgens mij is zelf een fotoalbum maken met HTML5 - CSS3 - Javascript/jQuery veel beter. En als je dat niet kan, huur je snel even iemand van hier in toch
, no worries
Wat is dat nu weer voor antwoord? Er zijn natuurlijk duizend andere manieren om het te doen. Maar dat is de vraag niet.
@TS
Welk bestand moet er geopend worden? Ik zie dat all-source een XML bestand is en die zou je in kunnen lezen. -
Over hoeveel verhalen gaat het hier? Op welke termijn moet het geleverd worden?
Offtopic:
Naast het feit dat ze teveel willen schrijven zijn ze volgens mij ook niet echt in staat om een verhaal te schrijven. Als je reageert als tekstschrijver zorg je er toch in ieder geval voor dat je reactie je kunnen laat zien?
-
Citaat
Je hebt de crons nu opgeslagen in de database toch? Je kan dan een veld toevoegen van laatst uitgevoerd (Datum). Dan kan je in je pagina controleren of het script op die datum al is uitgevoerd en zoniet, kijken of het al tijd is (of is geweest). In de database update je dan het laatst uitgevoerd.
Maar zoals ik al zei is dit erg onwenselijk. Je geeft onnodig veel laadwerk aan de user.
-
@Simone
Je hebt de crons nu opgeslagen in de database toch? Je kan dan een veld toevoegen van laatst uitgevoerd (Datum). Dan kan je in je pagina controleren of het script op die datum al is uitgevoerd en zoniet, kijken of het al tijd is (of is geweest). In de database update je dan het laatst uitgevoerd.
Maar waarom eigenlijk geen cronjobs gebruiken? Want als een gebruiker 25 bestanden moet gaan uitvoeren, (Wat sowieso onwenselijk is..) is dat erg zwaar.
-
Over de meeste punten ben ik het eens, maar hoezo geen backticks in queries?
Ik heb het al vaker gezegd:
Citaat
Backticks( `) zijn af te radenBackticks zijn bedoelt om woorden te kunnen gebruiken die eigenlijk gereserveerd zijn. (Dat zijn dus woorden als "order" en "count") Als jij allemaal van dat soort in je database gaat gebruiken raak je snel het overzicht kwijt en zeker als je een grote database hebt. Daarnaast worden backticks niet altijd ondersteunt en is het dus mogelijk dat je een keer al je backticks moet verwijderen en wellicht je hele database aan moet passen. Dus beter in één keer goed doen en geen gereserveerde woorden of backicks gebruiken!
-
Nog een aantal "Hints"
:
- Bestanden die de "normale" gebruiker niet hoort te bereiken (Zoals cronjobs) horen niet in de public_html.
- Gebruik nou eens Foutafhandeling. Heb daar een blog over geschreven. (Zie mijn account)
- Gebruik MySQLi of PDO.. MySQL gaat er zo uit en dan kan jij ál je scripts gaan zitten aanpassen.
- Gebruik geen backticks (`) in queries
- Je kan volgens mij beter include gebruiken. Is dat niet gewoon makkelijker? Ik snap jouw redenering niet helemaal. -
Waar loop je op vast?
-
Taal PHP
Waarom geleerd: Om mijn kleine HTML websites naar een hoger niveau te brengen.
Hoe geleerd: Kijken naar hoe andere het deden en zo steeds maar weer proberen. Trial and error!
Toekomstig gebruik: Ik heb op een site een nogal slechte CMS geplaatst. Deze wil ik graag updaten naar een nieuwere versie met OOP, MySQLi en het MVC model.
Waardevol om te leren: Ja, voor het maken van websites.
Moeilijkheid om te leren: Zodra je de logica doorhebt is het heel simpel.Taal SQL
Waarom geleerd: Zodat ik databases kon gebruiken in projecten.
Hoe geleerd: Door te proberen en met php.net.
Toekomstig gebruik: Ik wil me in de toekomst gaan verdiepen in PDO.
Waardevol om te leren: Ja, voor het gebruikmaken van databases
Moeilijkheid om te leren: De basis is zeer eenvoudig, maar er zit wel wat moeilijks tussen.Taal CSS
Waarom geleerd: Voor het stylen van websites
Hoe geleerd: Door te beginnen met een simpele kleine html site en die steeds maar uit te breiden. Zag er natuurlijk niet uit, maar daar gaat het niet om!
Toekomstig gebruik: -
Waardevol om te leren: Ja, als je mooie sites wil hebben
Moeilijkheid om te leren: NeeTaal Javascript
Waarom geleerd: Om gebruik te kunnen maken van jQuery. Voor een one-page website. (Waar de pagina update zonder dat die hoeft te herladen)
Hoe geleerd: CodeCademy
Toekomstig gebruik: Websites
Waardevol om te leren: Als je effecten wilt hebben.. ja.
Moeilijkheid om te leren: Nee, je moet het even doorhebben.In de toekomst wil ik moeilijkere dingend eon. Ik wil me gaan verdiepen in C++, hoe dat allemaal in z'n werk gaat. Was daar mee begonnen, maar door tijdgebrek eigenlijk nooit écht in kunnen verdiepen. Misschien komt het nog wel..
-
Ik geloof dat de functie chmod() op regel 87 niet per se nodig is. Je hebt de mappen namelijk al gechmod. Zet die regel eens als commentaar.. kan je kijken of het wat uithaalt.
-
Heb je de benodigde mappen en bestanden gechmod 777?
-
Waar erger je je dan aan?
-
Als je directadmin hebt kan je dat geloof ik daarin doen. Moet je even op googelen
-
Ik heb zelf ook met roundcube gewerkt en had er nooit problemen mee