Guest User

Untitled

a guest
Jan 22nd, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.73 KB | None | 0 0
  1. import java.util.*;
  2. import org.lwjgl.LWJGLException;
  3. import org.lwjgl.Sys;
  4. import org.lwjgl.input.Keyboard;
  5. import org.lwjgl.input.Mouse;
  6. import org.lwjgl.opengl.*;
  7. import static org.lwjgl.opengl.GL11.*;
  8. import static org.lwjgl.util.glu.GLU.gluOrtho2D;
  9.  
  10.  
  11. public class Main{
  12. Character tempChar;
  13. Random rand = new Random();
  14. Timer t = new Timer();
  15. boolean randomChars = true;
  16. List<Character> listOfChars = new ArrayList<>();
  17. Render rend = new Render();
  18. Input input = new Input();
  19. Generator gen = new Generator();
  20.  
  21. int dice = 0;
  22.  
  23. int scrX = 1200;
  24. int scrY = 800;
  25.  
  26. int mX;
  27. int mY;
  28. int currentFPS;
  29.  
  30. long storedTime = System.nanoTime();
  31. int delta;
  32. int fps;
  33. long lastFPS;
  34. boolean secondPassed = false;
  35. int totalTime;
  36.  
  37. public static void main(String []args){
  38. Main main = new Main();
  39. main.Main();
  40. }
  41. public void Main(){
  42. createDisplay();
  43. createInput();
  44. //makeChar();
  45. rend.makeTestBackground();
  46. //rend.makeTestGrid(33,32,55,36,10,21);
  47. //rend.makeTestQuads();
  48. gen.generateGrid(33,32,55,36,10,10,21);
  49.  
  50. //Testing why it isnt working with the left click method.
  51. rend.testMakeQuads(1f,0f,0.5f, 100,400, 20,20); //this works, then
  52. why dont input click makeQuad??????? Hmm..
  53.  
  54. initGL();
  55. resizeGL();
  56.  
  57. getDeltaTime();
  58. lastFPS = getTime();
  59.  
  60. while(!Display.isCloseRequested() &&
  61. !Keyboard.isKeyDown(Keyboard.KEY_ESCAPE)){
  62. //getDeltaTime(); why?
  63. updateFPS();
  64.  
  65. if(secondPassed){
  66. totalTime++;
  67. System.out.println(totalTime+"+1");
  68. secondPassed = false;
  69. }
  70.  
  71. input.update();
  72. rend.render();
  73. displayUpdate();
  74.  
  75. Display.setTitle("App @"+currentFPS+"fps "
  76. +Mouse.getX()+"mX "+Mouse.getY()+"mY "
  77. +"Running for "+totalTime+ "seconds");
  78. }
  79.  
  80. destroyAll();
  81. }
  82. public void getDeltaTime(){
  83. long currentTime = System.nanoTime();
  84. delta = (int) ((currentTime-storedTime) / 1000000);
  85. storedTime = currentTime;
  86. }
  87. public long getTime(){
  88. return (Sys.getTime() * 1000) / Sys.getTimerResolution();
  89. }
  90. public void updateFPS() {
  91. if (getTime() - lastFPS > 1000) {
  92. currentFPS = fps;
  93. fps = 0;
  94. lastFPS += 1000;
  95. secondPassed = true;
  96. }
  97. fps++;
  98. }
  99. public void displayUpdate(){
  100. Display.update();
  101. Display.sync(60);
  102. }
  103. public void initGL(){
  104. glClearColor(0.0f,0.0f,0.0f,0.0f);
  105. glDisable(GL_DEPTH_TEST);
  106. glDisable(GL_LIGHTING);
  107. }
  108. public void resizeGL(){ //If im honest i dont even know what im doing.
  109. glViewport(0,0,scrX,scrY);
  110.  
  111. glMatrixMode(GL_PROJECTION);
  112. glLoadIdentity();
  113. gluOrtho2D(0.0f,scrX,0.0f,scrY);
  114. glPushMatrix();
  115.  
  116. glMatrixMode(GL_MODELVIEW);
  117. glLoadIdentity();
  118. glPushMatrix();
  119. }
  120. public void destroyAll(){
  121. System.out.println("Goodbye cruel world...");
  122. Display.destroy();
  123. Keyboard.destroy();
  124. Mouse.destroy();
  125. System.exit(0);
  126. }
  127. public void createDisplay(){
  128. try{
  129. Display.setDisplayMode(new DisplayMode(scrX,scrY));
  130. Display.setFullscreen(false);
  131. Display.setTitle("Nothing lasts for ever, not even this
  132. title.");
  133. Display.create();
  134. }catch(LWJGLException e) {
  135. System.exit(0);
  136. }
  137. }
  138. public void createInput(){
  139. try {
  140. Keyboard.create();
  141. Mouse.create();
  142. Mouse.setGrabbed(false); //Dat booty doe.
  143. } catch (LWJGLException ex) {
  144. System.out.println("Input error. This shouldnt happen.");
  145. }
  146. }
  147. //Should probably make a generator class. Think about it, nerd.
  148. //Comment to self; who do you think you are ? Some sort of programming
  149. expert?
  150. //Reply to you; dont you dare talk to me that way, try me, i will del
  151. sys32.
  152. //Comment to self; Do it then? If you're so ba... *sizzling noises*
  153. public void makeChar(){
  154. if(randomChars){
  155. int tStrStat = makeStat();
  156. int tStrMod = tStrStat-6;
  157. int tAgiStat = makeStat();
  158. int tAgiMod = tAgiStat-6;
  159. int tStaStat = makeStat();
  160. int tStaMod = tStaStat-6;
  161. int tChaStat = makeStat();
  162. int tChaMod = tChaStat-6;
  163. int tIntStat = makeStat();
  164. int tIntMod = tIntStat-6;
  165. int tempArrStat[] = {tStrStat, tAgiStat, tStaStat, tChaStat,
  166. tIntStat};
  167. int arrStats[] = findHighestNums(tempArrStat);
  168.  
  169. System.out.println(Arrays.toString(arrStats));
  170. System.out.println("Highest stat is: "+arrStats[0]);
  171.  
  172. /*tempChar = new Character("Random Char Class",
  173. tStrStat, tStrMod, tStrMod, tStrMod,
  174. tAgiStat, tAgiMod, tAgiMod, tAgiMod,
  175. tStaStat, tStaMod, tStaMod, tStaMod,
  176. tChaStat, tChaMod, tChaMod, tChaMod,
  177. tIntStat, tIntMod, tIntMod, tIntMod);
  178. listOfChars.add(tempChar);
  179. */
  180.  
  181. }else{
  182. System.out.println("Not using Random Values");
  183.  
  184. tempChar = new Character("Low Char Class",
  185. 0, 0, 0, 0,
  186. 0, 0, 0, 0,
  187. 0, 0, 0, 0,
  188. 0, 0, 0, 0,
  189. 0, 0, 0, 0);
  190. listOfChars.add(tempChar);
  191.  
  192. tempChar = new Character("Avg Char Class",
  193. 1, 1, 1, 1,
  194. 1, 1, 1, 1,
  195. 1, 1, 1, 1,
  196. 1, 1, 1, 1,
  197. 1, 1, 1, 1);
  198. listOfChars.add(tempChar);
  199.  
  200. tempChar = new Character("High Char Class",
  201. 2, 1, 1, 1,
  202. 1, 1, 1, 1,
  203. 1, 1, 1, 1,
  204. 1, 1, 1, 1,
  205. 1, 1, 1, 1);
  206. listOfChars.add(tempChar);
  207. }
  208.  
  209. testChar();
  210.  
  211. }
  212. public void testChar(){
  213. for(Character tChar : listOfChars){
  214. String tempName = tChar.getName();
  215. System.out.println(tempName + " ");
  216. System.out.println("Strength: "+tChar.strength);
  217. System.out.println("Agility: "+tChar.agility);
  218. System.out.println("Stamina: "+tChar.stamina);
  219. System.out.println("Charisma: "+tChar.charisma);
  220. System.out.println("Intellect: "+tChar.intellect);
  221. }
  222. }
  223. public int rollDSix(){
  224. int tRandChoose = rand.nextInt(30)+1;
  225. for(int i=0;
  226. i < 30; //Yo dawg, i heard yo liek random, so i put a random
  227. in your random, making it extra random.
  228. i++)
  229. {
  230.  
  231. int tRand = rand.nextInt(6)+1;
  232.  
  233. if(i == tRandChoose){
  234. //System.out.println("The randomizer chose "+i);
  235. //System.out.println("The Randomest number was " +
  236. tRand);
  237. dice = tRand;
  238. }
  239. }
  240. return dice;
  241. }
  242. public int makeStat(){
  243. int tDOne = rollDSix();
  244. int tDTwo = rollDSix();
  245. int tResultOne = tDOne+tDTwo;
  246. //System.out.println("The Stat Became " + tResultOne);
  247. //System.out.println(tResultOne-6 + " Was the adjusted Modifier");
  248.  
  249. return tResultOne;
  250. }
  251. public int[] findHighestNums(int arrTemp[]){
  252. List tempList = new ArrayList();
  253. int sortedArray[] = {0,0,0,0,0};
  254. Arrays.sort(arrTemp);
  255. //System.out.print(Arrays.toString(arrTemp));
  256. //System.out.println("");
  257. for(int i=arrTemp.length-1;
  258. i >= 0;
  259. i--){
  260. //System.out.println(arrTemp[i]);
  261. tempList.add(arrTemp[i]);
  262. }
  263.  
  264. int tNum=0;
  265. for (Iterator it = tempList.iterator(); it.hasNext();) {
  266. int i = (int) it.next();
  267. sortedArray[tNum] = i;
  268. tNum++;
  269. //System.out.println(i);
  270. }
  271. //System.out.println(Arrays.toString(sortedArray));
  272. return sortedArray;
  273. }
  274. }
  275.  
  276. import java.util.*;
  277. import java.util.List;
  278. import java.awt.*;
  279. import org.lwjgl.opengl.GL11;
  280. import static org.lwjgl.opengl.GL11.*;
  281.  
  282. public class Render {
  283. Tile tile;
  284. Quads quad;
  285. List<Quads> drawQuads = new ArrayList<>();
  286. List<Tile> tileMapOne = new ArrayList<>();
  287.  
  288. //int qX = 600; //half of screen
  289. //int qY = 400;
  290. //int qSize = 380;
  291.  
  292. public void render(){
  293. glClear(GL_COLOR_BUFFER_BIT);
  294. glLoadIdentity();
  295.  
  296. for (Quads q : drawQuads) {
  297. glTranslatef(0f,0f,0f);
  298. glRotatef(0.0f,0.0f,0.0f,0.0f);
  299. glColor3f(q.colorR,q.colorB,q.colorG);
  300. glBegin(GL_QUADS);
  301. GL11.glVertex2f(q.posX-q.sizeX,q.posY-q.sizeY);
  302. GL11.glVertex2f(q.posX+q.sizeX,q.posY-q.sizeY);
  303. GL11.glVertex2f(q.posX+q.sizeX,q.posY+q.sizeY);
  304. GL11.glVertex2f(q.posX-q.sizeX,q.posY+q.sizeY);
  305. glEnd();
  306. }
  307. readGridMap();
  308. //renderGridMap();
  309. }
  310. public void readGridMap(){
  311. for(Tile t : tileMapOne){
  312. System.out.println(t.tileID);
  313. }
  314. }
  315. public void renderGridMap(){
  316. //System.out.println(tileMapOne.size()); empty?
  317. for (Tile t : tileMapOne){
  318. System.out.println("Do i get here?");
  319. glTranslatef(0f,0f,0f);
  320. glRotatef(t.rotation,0.0f,0.0f,0.0f);
  321. glColor3f(t.colorR,t.colorB, t.colorG);
  322. glBegin(GL_QUADS);
  323. /*GL11.glVertex2f(50-20,50-20);
  324. GL11.glVertex2f(50+20,50-20);
  325. GL11.glVertex2f(50+20,50+20);
  326. GL11.glVertex2f(50-20,50+20);*/
  327. GL11.glVertex2f(t.posX-t.sizeX,t.posY-t.sizeY);
  328. GL11.glVertex2f(t.posX+t.sizeX,t.posY-t.sizeY);
  329. GL11.glVertex2f(t.posX+t.sizeX,t.posY+t.sizeY);
  330. GL11.glVertex2f(t.posX-t.sizeX,t.posY+t.sizeY);
  331. glEnd();
  332. }
  333. }
  334. public void makeTestBackground(){
  335. quad = new Quads(0f,0f,0f, 600f, 400f, 600f, 400f);
  336. drawQuads.add(quad);
  337. quad = new Quads(1f,1f,1f, 600f, 400f, 595f, 395f);
  338. drawQuads.add(quad);
  339. quad = new Quads(0f,0f,0f, 600f, 400f, 580f, 380f);
  340. drawQuads.add(quad);
  341. }
  342. public void makeTestQuads(){
  343. /*quad = new Quads(1f,0f,0f, 720f, 400f, 20f, 100f);
  344. drawQuads.add(quad);
  345. quad = new Quads(0f,0f,1f, 880f, 200f, 30f, 60f);
  346. drawQuads.add(quad);
  347. quad = new Quads(0f,1f,0f, 1000f, 450f, 50f, 80f);
  348. drawQuads.add(quad);*/
  349. }
  350. public void makeTestGrid(int gridPosX, int gridPosY,
  351. int gridSizeX, int gridSizeY,
  352. int gridTileSize, int gridTileSpacing){
  353. // making a grid
  354. for(int iX = 0;
  355. iX< gridSizeX;
  356. iX++){
  357. for(int iY = 0;
  358. iY < gridSizeY;
  359. iY++){
  360. /*quad = new Quads(0.1f+iX,0.1f+iY,1f,
  361. gridPosX+iX*gridTileSpacing,
  362. gridPosY+iY*gridTileSpacing,
  363. gridTileSize, gridTileSize);*/
  364. //drawQuads.add(quad);
  365. }
  366. }
  367. }
  368. public void testMakeQuads(float cR, float cG, float cB,
  369. float pX, float pY,
  370. float sX, float sY){
  371.  
  372. for (int i = 0;
  373. i < 11;
  374. i++)
  375. {
  376. makeQuads(cR, cG, cB,
  377. pX+i*100, pY,
  378. sX, sY);
  379. }
  380. }
  381. public void makeQuads(float cR, float cG, float cB,
  382. float pX, float pY,
  383. float sX, float sY){
  384. quad = new Quads(cR,cG,cB, pX, pY, sX, sY);
  385. drawQuads.add(quad);
  386. }
  387. }
  388.  
  389. public class Generator {
  390. Render rend = new Render();
  391. Tile tile;
  392.  
  393. int tempID = 0;
  394. public void Generator (){
  395. }
  396. public void generateGrid(int gridPosX, int gridPosY,
  397. int gridSizeX, int gridSizeY,
  398. int gridTileSizeX, int gridTileSizeY,
  399. int gridTileSpacing){
  400. // making a grid
  401. for(int iX = 0;
  402. iX< gridSizeX;
  403. iX++){
  404. for(int iY = 0;
  405. iY < gridSizeY;
  406. iY++){
  407. tempID++;
  408. tile = new Tile(1f,1f,1f,
  409. gridPosX+iX*gridTileSpacing,
  410. gridPosY+iY*gridTileSpacing,
  411. gridTileSizeX, gridTileSizeY,
  412. 0f, tempID);
  413. rend.tileMapOne.add(tile);
  414. }
  415. }
  416. }
  417. }
  418.  
  419. public class Tile {
  420. float colorR; float colorB; float colorG;
  421. float posX; float posY;
  422. float sizeX; float sizeY;
  423. float rotation;
  424. int tileID;
  425.  
  426. Render rend = new Render();
  427.  
  428. public Tile(float cR, float cB, float cG,
  429. float pX, float pY,
  430. float sX, float sY,
  431. float rot, int tID){
  432. this.colorR = cR;
  433. this.colorB = cB;
  434. this.colorG = cG;
  435.  
  436. this.posX = pX; this.posY = pY;
  437. this.sizeX = sX; this.sizeY = sY;
  438. this.rotation = rot;
  439. this.tileID = tID;
  440. System.out.println("Tile made with ID"+tileID);
  441.  
  442. }
  443. public void setPosX(float tNum){
  444. this.posX = tNum;
  445. }
  446. public void setPosY(float tNum){
  447. this.posY = tNum;
  448. }
  449. public void setSizeX(float tNum){
  450. this.sizeX = tNum;
  451. }
  452. public void setSizeY(float tNum){
  453. this.sizeY = tNum;
  454. }
  455. public void setColor(float cR, float cB, float cG){
  456. this.colorR = cR;
  457. this.colorB = cB;
  458. this.colorG = cG;
  459. }
  460. public int getID(){
  461. return tileID;
  462. }
  463. public void setRot(float tNum){
  464. this.rotation = tNum;
  465. }
  466. public void Tile (){
  467. }
  468. }
  469.  
  470. import org.lwjgl.input.Keyboard;
  471. import org.lwjgl.input.Mouse;
  472.  
  473. public class Input {
  474. Render rend = new Render();
  475.  
  476. int mX; int mY;
  477. boolean leftClicking = false;
  478. boolean rightClicking = false;
  479. boolean keyPressed = false;
  480.  
  481. float tPX; float tPY;
  482. float tSX; float tSY;
  483. float tCR; float tCG; float tCB;
  484.  
  485. public void Input(){
  486. }
  487. public void update(){
  488. mX = Mouse.getX();
  489. mY = Mouse.getY();
  490.  
  491. checkForClick();
  492. checkForKey();
  493. }
  494. public void checkForKey(){
  495. if(Keyboard.isKeyDown(Keyboard.KEY_SPACE /*&& !keyPressed*/)){
  496. System.out.println("Baby.. I think we need more space..");
  497. }
  498. if(Keyboard.isKeyDown(Keyboard.KEY_RETURN)){
  499. System.out.println("*Enters the door* Honey! Im hooome!");
  500. }
  501. if(Keyboard.isKeyDown(Keyboard.KEY_1)){
  502. System.out.println("When the moon hits the sky");
  503. }
  504. if(Keyboard.isKeyDown(Keyboard.KEY_2)){
  505. System.out.println("Like a big pizza pie");
  506. }
  507. if(Keyboard.isKeyDown(Keyboard.KEY_3)){
  508. System.out.println("Thats, amoré!");
  509. }
  510. if(Keyboard.isKeyDown(Keyboard.KEY_4)){
  511. System.out.println("Shot to the heart, and you're to blame -");
  512. }
  513. if(Keyboard.isKeyDown(Keyboard.KEY_5)){
  514. System.out.println("Darlin', you give love, a bad name!");
  515. }
  516. }
  517. public void checkForClick(){
  518. if(Mouse.isButtonDown(0) && !leftClicking){
  519. //wrong
  520. //Hmm.. Click and hold, without activating this? Methinks
  521.  
  522. System.out.println("Click!");
  523. leftClick();
  524. } leftClicking = Mouse.isButtonDown(0);
  525.  
  526. if(Mouse.isButtonDown(1) && !rightClicking){
  527. //right
  528.  
  529. //context menu goes here, hmm.
  530. } rightClicking = Mouse.isButtonDown(1);
  531. }
  532. public void leftClick(){
  533. tPX = mX;
  534. tPY = mY;
  535. //temp
  536. tCR = 0.6f; tCG = 0.8f; tCB = 1f;
  537. tSX = 50f; tSY = 50f;
  538.  
  539. rend.makeQuads(tCR, tCG, tCB,
  540. tPX, tPY, tSX, tSY);
  541.  
  542. /*while(!leftClicking){ //HMMMMMMMMM!!!!!!!!!!
  543. if(Mouse.isButtonDown(0)){
  544. System.out.println("Keeping on clicking!");
  545. }else{
  546. leftClicking = Mouse.isButtonDown(0);
  547. }
  548. }*/
  549. }
  550. }
  551.  
  552. public class Quads {
  553. float colorR; float colorG; float colorB;
  554. float posX; float posY; float sizeX; float sizeY;
  555.  
  556.  
  557. public Quads(float cR, float cG, float cB,
  558. float pX, float pY,
  559. float sX, float sY){
  560. this.colorR = cR;
  561. this.colorG = cG;
  562. this.colorB = cB;
  563.  
  564. this.posX = pX; this.posY = pY;
  565. this.sizeX = sX; this.sizeY = sY;
  566.  
  567. System.out.println("Made a quad! @ X"+posX+" Y"+posY);
  568.  
  569. }
  570. }
Add Comment
Please, Sign In to add comment