<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
<channel>
	<title><![CDATA[Rainforce's Blog]]></title>
	<link>http://www.neocodex.us/forum/blog/263-rainforces-blog/</link>
	<description><![CDATA[Rainforce's Blog Syndication]]></description>
	<pubDate>Tue, 24 Jan 2017 02:35:01 +0000</pubDate>
	<webMaster>admins@neocodex.us (Neocodex - Neopets Programs for Everyone)</webMaster>
	<generator>IP.Blog</generator>
	<ttl>60</ttl>
	<item>
		<title>C++ update</title>
		<link>http://www.neocodex.us/forum/blog/263/entry-998-c-update/</link>
		<category></category>
		<description><![CDATA[<p>UPDATE</p><p>&nbsp;</p><p>So I managed to write some code, I decided to make an arkanoid/breakout clone instead. I do think I need some help though. I had zero c++/sfml experience before writing this, so bear with me haha.<br />The code itself is working, but I still need to do some stuff and I wouldn't feel confident showing this in the interview.</p><p>&nbsp;</p><p>TO DO LIST:<br />- Add a score system (+100 points when block is hit) <br />- Play explosion animation when said block is hit<br />- Make code more organized (with classes?)</p><p>&nbsp;</p><p>Code:</p><p>&nbsp;</p><p>//////////////////////////////////////////////////////<br />// Headers<br />//////////////////////////////////////////////////////<br />#include &lt;SFML/Graphics.hpp&gt;<br />#include &lt;SFML\Audio.hpp&gt;<br />#include &lt;iostream&gt;<br />#include &lt;time.h&gt;<br />////////////////////////////////////////////////////////////<br />////////////////////////////////////////////////////////////<br />int main()<br />{<br />srand(time(0));<br />//Create the window<br />sf::RenderWindow window(sf::VideoMode(640, 550), "Explosive Arkanoid");<br />window.setFramerateLimit(60);<br />//Load the sound and music<br />sf::SoundBuffer boom;<br />if (!boom.loadFromFile("sound/explosion.wav"))<br />{<br />std::cout &lt;&lt; "SFML error" &lt;&lt; std::endl;<br />}<br />sf::Sound sound;<br />sound.setBuffer(boom);<br />sound.setVolume(10);<br />sf::SoundBuffer backgroundMusic;<br />if (backgroundMusic.loadFromFile("sound/Lightning.flac"))<br />{<br />std::cout &lt;&lt; "SFML error" &lt;&lt; std::endl;<br />}<br />sf::Sound music;<br />music.setBuffer(backgroundMusic);<br />music.setVolume(20);<br />music.play();<br />//Load Textures/sprites<br />sf::Texture redBlock, orangeBlock, yellowBlock, greenBlock, blueBlock;<br />sf::Texture tBackground;<br />sf::Texture tBall;<br />sf::Texture tPaddle;<br />redBlock.loadFromFile("images/redBlock.png");<br />orangeBlock.loadFromFile("images/orangeBlock.png");<br />yellowBlock.loadFromFile("images/yellowBlock.png");<br />greenBlock.loadFromFile("images/greenBlock.png");<br />blueBlock.loadFromFile("images/blueBlock.png");<br />tBackground.loadFromFile("images/background.png");<br />tBall.loadFromFile("images/ball.png");<br />tPaddle.loadFromFile("images/paddle.png");<br />sf::Sprite sBackground(tBackground), sBall(tBall), sPaddle(tPaddle);<br />sPaddle.setPosition(295, 440);<br />sf::Sprite block[1000];<br />// Placing the 5 colored blocks<br />//Red block<br />int n = 0;<br />for (int column = 0; column &lt;= 50; column++)<br />for (int rows = 1; rows &lt;= 1; rows++)<br />{<br />block[n].setTexture(redBlock);<br />block[n].setPosition(column * 64, rows * 0);<br />n++;<br />}</p><p>&nbsp;</p><p>//Orange block<br />int orange = 10;<br />for (int column = 0; column &lt;= 10; column++)<br />for (int rows = 1; rows &lt;= 1; rows++)<br />{<br />block[orange].setTexture(orangeBlock);<br />block[orange].setPosition(column * 64, rows * 32);<br />orange++;<br />}</p><p>&nbsp;</p><p>//Yellow block<br />int yellow = 20;<br />for (int column = 0; column &lt;= 10; column++)<br />for (int rows = 1; rows &lt;= 1; rows++)<br />{<br />block[yellow].setTexture(yellowBlock);<br />block[yellow].setPosition(column * 64, rows * 64);<br />yellow++;<br />}</p><p>&nbsp;</p><p>//Green block<br />int green = 30;<br />for (int column = 0; column &lt;= 10; column++)<br />for (int rows = 1; rows &lt;= 1; rows++)<br />{<br />block[green].setTexture(greenBlock);<br />block[green].setPosition(column * 64, rows * 96);<br />green++;<br />}</p><p>&nbsp;</p><p>//Blue block<br />int blue = 40;<br />for (int column = 0; column &lt;= 10; column++)<br />for (int rows = 1; rows &lt;= 1; rows++)<br />{<br />block[blue].setTexture(blueBlock);<br />block[blue].setPosition(column * 64, rows * 128);<br />blue++;<br />}</p><p>&nbsp;</p><p>// Initializing the ball direction + position<br />float positionX = 320, positionY = 275;<br />float directionX = 2, directionY = 3;<br />while (window.isOpen())<br />{<br />//Handle events<br />sf::Event event;<br />while (window.pollEvent(event))<br />{<br />if (event.type == sf::Event::Closed)<br />window.close();<br />if (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape)) window.close();<br />}<br />if (event.type == sf::Event::Resized)<br />{<br />std::cout &lt;&lt; "new width: " &lt;&lt; event.size.width &lt;&lt; std::endl;<br />std::cout &lt;&lt; "new height: " &lt;&lt; event.size.height &lt;&lt; std::endl;<br />}</p><p>&nbsp;</p><p>// Ball collision with the blocks<br />positionX += directionX;<br />for (int i = 0; i&lt;n; i++)<br />if (sf::FloatRect(positionX + 3, positionY + 3, 6, 9).intersects(block.getGlobalBounds()))<br />{<br />block.setPosition(-100, 0); directionX = -directionX;<br />sound.play();<br />}<br />positionY += directionY;<br />for (int i = 0; i&lt;n; i++)<br />if (sf::FloatRect(positionX + 3, positionY + 3, 6, 9).intersects(block.getGlobalBounds()))<br />{<br />block.setPosition(-100, 0); directionY = -directionY;<br />sound.play();<br />}</p><p>&nbsp;</p><p>// When the ball should bounce<br />if (positionX &lt; 0) directionX = -directionX;<br />if (positionX &gt; 640) directionX = -directionX;<br />if (positionY &lt; 0) directionY = -directionY;<br />if (positionY &gt; 550) positionX = 300, positionY = 275;<br />// Controls paddle<br />if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right)) sPaddle.move(10, 0);<br />if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left)) sPaddle.move(-10, 0);<br />if (sf::Keyboard::isKeyPressed(sf::Keyboard:<img src='http://www.neocodex.us/forum/public/style_emoticons/default/biggrin.png' class='bbc_emoticon' alt=':D' />)) sPaddle.move(10, 0);<br />if (sf::Keyboard::isKeyPressed(sf::Keyboard::A)) sPaddle.move(-10, 0);<br />// Ball speed + collision with paddle<br />if (sf::FloatRect(positionX, positionY, 12, 12).intersects(sPaddle.getGlobalBounds())) directionY = -(rand() % 5 + 5);<br />// set the ball position<br />sBall.setPosition(positionX, positionY);<br />// Clear + draw on window<br />window.clear();<br />window.draw(sBackground);<br />window.draw(sBall);<br />window.draw(sPaddle);<br />for (int i = 0; i&lt;n; i++)<br />window.draw(block);<br />window.display();<br />}<br />return 0;<br />}</p>]]></description>
		<pubDate>Mon, 23 Jan 2017 18:51:45 +0000</pubDate>
		<guid>http://www.neocodex.us/forum/blog/263/entry-998-c-update/</guid>
	</item>
	<item>
		<title>New Years Resolutions</title>
		<link>http://www.neocodex.us/forum/blog/263/entry-995-new-years-resolutions/</link>
		<category></category>
		<description><![CDATA[<p><ul class='bbc'><li>Lose 15kg</li><li>Be more grateful</li><li>Save some money</li><li>Start living on my own</li><li>Find a SO (ok, doesn't have to be this year, but would be nice)</li><li>Become more organized</li></ul></p>]]></description>
		<pubDate>Sat, 07 Jan 2017 14:50:51 +0000</pubDate>
		<guid>http://www.neocodex.us/forum/blog/263/entry-995-new-years-resolutions/</guid>
	</item>
	<item>
		<title>C++ struggles</title>
		<link>http://www.neocodex.us/forum/blog/263/entry-994-c-struggles/</link>
		<category></category>
		<description><![CDATA[<p>So... I have to make a game in C++ for school, but it's so freaking complicated. I like programming, but I don't feel motivated to do anything at the moment.<br />I want to make asteroids in c++, but sfml isn't listening to me, haha. I have to have this game finished by the 26th of this month... I probably won't make it <img src='http://www.neocodex.us/forum/public/style_emoticons/default/1we8.gif' class='bbc_emoticon' alt=':/' /><br />Edit: deadline has been moved to the 28th.</p><p>&nbsp;</p><p>UPDATE</p><p>&nbsp;</p><p>So I managed to write some code, I decided to make an arkanoid/breakout clone instead. I do think I need some help though. I had zero c++/sfml experience before writing this, so bear with me haha.<br />The code itself is working, but I still need to do some stuff and I wouldn't feel confident showing this in the interview.</p><p>&nbsp;</p><p>TO DO LIST:<br />- Add a score system (+100 points when block is hit)<br />- Play explosion animation when said block is hit<br />- Make code more organized (with classes?)</p><p>&nbsp;</p><p>Code:</p><p>&nbsp;</p><p>//////////////////////////////////////////////////////<br />// Headers<br />//////////////////////////////////////////////////////<br />#include &lt;SFML/Graphics.hpp&gt;<br />#include &lt;SFML\Audio.hpp&gt;<br />#include &lt;iostream&gt;<br />#include &lt;time.h&gt;<br />////////////////////////////////////////////////////////////<br />////////////////////////////////////////////////////////////<br />int main()<br />{<br />srand(time(0));<br />//Create the window<br />sf::RenderWindow window(sf::VideoMode(640, 550), "Explosive Arkanoid");<br />window.setFramerateLimit(60);<br />//Load the sound and music<br />sf::SoundBuffer boom;<br />if (!boom.loadFromFile("sound/explosion.wav"))<br />{<br />  std::cout &lt;&lt; "SFML error" &lt;&lt; std::endl;<br />}<br />sf::Sound sound;<br />sound.setBuffer(boom);<br />sound.setVolume(10);<br />sf::SoundBuffer backgroundMusic;<br />if (backgroundMusic.loadFromFile("sound/Lightning.flac"))<br />{<br />  std::cout &lt;&lt; "SFML error" &lt;&lt; std::endl;<br />}<br />sf::Sound music;<br />music.setBuffer(backgroundMusic);<br />music.setVolume(20);<br />music.play();<br />//Load Textures/sprites<br />sf::Texture redBlock, orangeBlock, yellowBlock, greenBlock, blueBlock;<br />sf::Texture tBackground;<br />sf::Texture tBall;<br />sf::Texture tPaddle;<br />redBlock.loadFromFile("images/redBlock.png");<br />orangeBlock.loadFromFile("images/orangeBlock.png");<br />yellowBlock.loadFromFile("images/yellowBlock.png");<br />greenBlock.loadFromFile("images/greenBlock.png");<br />blueBlock.loadFromFile("images/blueBlock.png");<br />tBackground.loadFromFile("images/background.png");<br />tBall.loadFromFile("images/ball.png");<br />tPaddle.loadFromFile("images/paddle.png");<br />sf::Sprite sBackground(tBackground), sBall(tBall), sPaddle(tPaddle);<br />sPaddle.setPosition(295, 440);<br />sf::Sprite block[1000];<br />//  Placing the 5 colored blocks<br />//Red block<br />int n = 0;<br />for (int column = 0; column &lt;= 50; column++)<br />  for (int rows = 1; rows &lt;= 1; rows++)<br />  {<br />   block[n].setTexture(redBlock);<br />   block[n].setPosition(column * 64, rows * 0);<br />   n++;<br />  }</p><p>&nbsp;</p><p>//Orange block<br />int orange = 10;<br />for (int column = 0; column &lt;= 10; column++)<br />  for (int rows = 1; rows &lt;= 1; rows++)<br />  {<br />   block[orange].setTexture(orangeBlock);<br />   block[orange].setPosition(column * 64, rows * 32);<br />   orange++;<br />  }</p><p>&nbsp;</p><p>//Yellow block<br />int yellow = 20;<br />for (int column = 0; column &lt;= 10; column++)<br />  for (int rows = 1; rows &lt;= 1; rows++)<br />  {<br />   block[yellow].setTexture(yellowBlock);<br />   block[yellow].setPosition(column * 64, rows * 64);<br />   yellow++;<br />  }</p><p>&nbsp;</p><p>//Green block<br />int green = 30;<br />for (int column = 0; column &lt;= 10; column++)<br />  for (int rows = 1; rows &lt;= 1; rows++)<br />  {<br />   block[green].setTexture(greenBlock);<br />   block[green].setPosition(column * 64, rows * 96);<br />   green++;<br />  }</p><p>&nbsp;</p><p>//Blue block<br />int blue = 40;<br />for (int column = 0; column &lt;= 10; column++)<br />  for (int rows = 1; rows &lt;= 1; rows++)<br />  {<br />   block[blue].setTexture(blueBlock);<br />   block[blue].setPosition(column * 64, rows * 128);<br />   blue++;<br />  }</p><p>&nbsp;</p><p>// Initializing the ball direction + position<br />float positionX = 320, positionY = 275;<br />float directionX = 2, directionY = 3;<br />while (window.isOpen())<br />{<br />  //Handle events<br />  sf::Event event;<br />  while (window.pollEvent(event))<br />  {<br />   if (event.type == sf::Event::Closed)<br />    window.close();<br />   if (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape)) window.close();<br />  }<br />  if (event.type == sf::Event::Resized)<br />  {<br />   std::cout &lt;&lt; "new width: " &lt;&lt; event.size.width &lt;&lt; std::endl;<br />   std::cout &lt;&lt; "new height: " &lt;&lt; event.size.height &lt;&lt; std::endl;<br />  }</p><p>&nbsp;</p><p>  // Ball collision with the blocks<br />  positionX += directionX;<br />  for (int i = 0; i&lt;n; i++)<br />   if (sf::FloatRect(positionX + 3, positionY + 3, 6, 9).intersects(block.getGlobalBounds()))<br />   {<br />    block.setPosition(-100, 0); directionX = -directionX;<br />    sound.play();<br />   }<br />  positionY += directionY;<br />  for (int i = 0; i&lt;n; i++)<br />   if (sf::FloatRect(positionX + 3, positionY + 3, 6, 9).intersects(block.getGlobalBounds()))<br />   {<br />    block.setPosition(-100, 0); directionY = -directionY;<br />    sound.play();<br />   }</p><p>&nbsp;</p><p>  // When the ball should bounce<br />  if (positionX &lt; 0)  directionX = -directionX;<br />  if (positionX &gt; 640) directionX = -directionX;<br />  if (positionY &lt; 0) directionY = -directionY;<br />  if (positionY &gt; 550) positionX = 300, positionY = 275;<br />  // Controls paddle<br />  if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right)) sPaddle.move(10, 0);<br />  if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left)) sPaddle.move(-10, 0);<br />  if (sf::Keyboard::isKeyPressed(sf::Keyboard:<img src='http://www.neocodex.us/forum/public/style_emoticons/default/biggrin.png' class='bbc_emoticon' alt=':D' />)) sPaddle.move(10, 0);<br />  if (sf::Keyboard::isKeyPressed(sf::Keyboard::A)) sPaddle.move(-10, 0);<br />  // Ball speed + collision with paddle<br />  if (sf::FloatRect(positionX, positionY, 12, 12).intersects(sPaddle.getGlobalBounds())) directionY = -(rand() % 5 + 5);<br />  // set the ball position<br />  sBall.setPosition(positionX, positionY);<br />  // Clear + draw on window<br />  window.clear();<br />  window.draw(sBackground);<br />  window.draw(sBall);<br />  window.draw(sPaddle);<br />  for (int i = 0; i&lt;n; i++)<br />   window.draw(block);<br />  window.display();<br />}<br />return 0;<br />}</p>]]></description>
		<pubDate>Sat, 07 Jan 2017 12:13:00 +0000</pubDate>
		<guid>http://www.neocodex.us/forum/blog/263/entry-994-c-struggles/</guid>
	</item>
</channel>
</rss>