Jump to content

  • Log In with Google      Sign In   
  • Create Account


K1NNY

Member Since 06 Sep 2011
Offline Last Active Mar 02 2013 10:23 AM

Topics I've Started

Trouble with importing my own modules

28 February 2013 - 10:10 PM

I have three files: Main.py, Game.py, and CreateDisplay.py . Obviously Main is going to be the main file where everything is going to run from. This is my first project that i have split the code into separate modules and i am having problems.

 

The problem i am having is that when the display is made, the background isn't filled with white, its black, and no matter what i do to the variable 'WHITE' it stays black.

 

Here is the code for each:

 

Main.py

import pygame
import sys
import Game
import CreateDisplay

#####the main file#####

pygame.init()

if __name__ == '__main__':


    Game.Main()

    for event in pygame.event.get():
        
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    pygame.display.update()

 

 

Game.py

 

import pygame
import sys
import CreateDisplay

#####the real main game file#####

pygame.init()    


def Main():

    while True:

        CreateDisplay.Display()


        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()

 

 

CreateDisplay.py

 

import pygame
import sys

#####this is the file to make the screen#####

pygame.init()

def Display():

    WHITE = (255, 255, 255)

    DISPLAY = pygame.display.set_mode((1024, 720))

 

Please help! I can't figure out what is wrong and i've been working with it for about an hour.


import issues in Python

08 November 2012 - 10:18 AM

I have a program that has the majority of a games code in it called "root.py". Needless to say, the code was getting cluttered and very large so i am trying to seperate it up into different modules. My first attempt has been completely unsuccesful because there is always some type on import error.

the only other module i have is "letter.py" which has a class in it that uses parts from our main file root. in both of these, i have them importing one another (in root, i have the import letter line, and in letter i import root). They are in the same directory. the errors i keep getting involving variables within the two files.

For instance, this is the class in letter:
[source lang="python"]class Letter(pygame.sprite.Sprite): def __init__(self, name, x, y): pygame.sprite.Sprite.__init__(self) self.name = name self.x = x self.y = y self.image = font1.render(self.name, True, WHITE) self.rect = self.image.get_rect() self.rect.topleft = [x,y] def update(self): self.rect.x += self.change_y self.rect.y += self.change_x def draw(self, display): self.display = display display.blit(self.image, (self.x, self.y))[/source]

and with it i create these:
[source lang="python"]a = Letter('A', letters_x, letters_y)b = Letter('B', letters_x, letters_y)c = Letter('C', letters_x, letters_y)[/source]

When i try to use "a" in root, it says it is not defined. Plus, "letters_x" and "letters_y" are found in root, and they also don't work. This is very frustrating because i thought i knew how to import modules properly. Please help.

While loop trouble

12 October 2012 - 08:58 AM

<p>I&#39;m making a simulation game where you control a nation and watch as it progresses through the years and you can make decisions when certain things happen.<br />
<br />
I basically have a while loop to handle the main part of the game (which is normal, i think). But in my while loop i have it set to where when a variable reaches a certain point, it goes to another while loop handling a seperate part of the game that gives you two options (to help your nation out or not). This works perfectly except that in this second while loop, i&#39;m trying to make it where once the user chooses an option it will go back to the first while loop, making the changes the user selected and run the same way it did before.<br />
<br />
The problem i&#39;m having is that the program doesn&#39;t seem to even pick up the user hitting the key, it doesn&#39;t hang or close, it just sits there running the second while loop.<br />
<br />
Here is the two while loops (i can add the whole code if needed, but its pretty big and would take up a lot of space):<br />
<br />
[source lang=&quot;python&quot;]#################################Game loop##################################<br />elect_new = False<br /><br /><br />while game:<br /> x = random.randint(1, 10)<br /> y = random.randint(1, 3)<br /><br /> <br /> <br /> show_year = fontObj1.render(str(year), True, BLACK)<br /> show_pop = fontObj1.render(str(pop), True, BLACK)<br /> <br /><br /> DISPLAY.blit(gbg, (0, 0))<br /> DISPLAY.blit(controls_1, (225, 50))<br /> DISPLAY.blit(controls_2, (225, 66))<br /> DISPLAY.blit(controls_3, (225, 82))<br /> DISPLAY.blit(controls_4, (225, 100))<br /><br /> <br /> for event in pygame.event.get():<br /><br /> #the pplrty determiner<br /> if event.type == pygame.KEYDOWN:<br /> if event.key == pygame.K_RETURN:<br /> year += 1<br /><br /> DISPLAY.blit(show_year, (563, 400))<br /> DISPLAY.blit(show_pop, (400, 400))<br /> <br /> if x == 1:<br /> DISPLAY.blit(events_1, (45, 50))<br /> DISPLAY.blit(events_1_2, (45, 66))<br /> DISPLAY.blit(events_1_3, (45, 82))<br /> p += 2<br /> if x == 2:<br /> DISPLAY.blit(events_2, (45, 50))<br /> DISPLAY.blit(events_2_2, (45, 66))<br /> DISPLAY.blit(events_2_3, (45, 82))<br /> p -= 2<br /> if x == 3:<br /> DISPLAY.blit(events_3, (45, 50))<br /> DISPLAY.blit(events_3_2, (45, 66))<br /> DISPLAY.blit(events_3_3, (45, 82))<br /> p -= 3<br /> if x == 4:<br /> DISPLAY.blit(events_4, (45, 50))<br /> DISPLAY.blit(events_4_2, (45, 66))<br /> DISPLAY.blit(events_4_3, (45, 82))<br /> DISPLAY.blit(events_4_4, (45, 98))<br /> DISPLAY.blit(events_4_5, (45, 114))<br /> DISPLAY.blit(events_4_6, (45, 130))<br /> p -= 5<br /> if x == 5:<br /> DISPLAY.blit(events_5, (45, 50))<br /> DISPLAY.blit(events_5_2, (45, 66))<br /> p -= 5<br /> if x == 6:<br /> DISPLAY.blit(events_6, (45, 50))<br /> DISPLAY.blit(events_6_2, (45, 66))<br /> DISPLAY.blit(events_6_3, (45, 82))<br /> DISPLAY.blit(events_6_4, (45, 98))<br /> DISPLAY.blit(events_6_5, (45, 114))<br /> p -= 4<br /> if x == 7:<br /> DISPLAY.blit(events_7, (45, 50))<br /> DISPLAY.blit(events_7_2, (45, 66))<br /> DISPLAY.blit(events_7_3, (45, 82))<br /> DISPLAY.blit(events_7_4, (45, 98))<br /> p -= 4<br /> if x == 8:<br /> DISPLAY.blit(events_8, (45, 50))<br /> DISPLAY.blit(events_8_2, (45, 66))<br /> p -= 2<br /> if x == 9:<br /> DISPLAY.blit(events_9, (45, 50))<br /> DISPLAY.blit(events_9_2, (45, 66))<br /> DISPLAY.blit(events_9_3, (45, 82))<br /> DISPLAY.blit(events_9_4, (45, 98))<br /> p -= 6<br /> if x == 10:<br /> DISPLAY.blit(events_10, (45, 50))<br /> DISPLAY.blit(events_10_2, (45, 66))<br /> DISPLAY.blit(events_10_3, (45, 82))<br /> p += 0<br /> <br /> if p &gt;= 50 and p &lt; 60:<br /> DISPLAY.blit(pplrty_decent, (225, 400))<br /> elif p &gt;= 60 and p &lt; 85:<br /> DISPLAY.blit(pplrty_good, (230, 400))<br /> elif p &gt;= 85 and p &lt;= 100:<br /> DISPLAY.blit(pplrty_great, (230, 400))<br /> elif p &gt;= 25 and p &lt; 50:<br /> DISPLAY.blit(pplrty_bad, (225, 400))<br /> elif p &lt; 25:<br /> DISPLAY.blit(pplrty_awful, (225, 400))<br /> <br /> pygame.display.update()<br /> <br /> if event.type == QUIT:<br /> pygame.quit()<br /> sys.exit()<br />[/source]</p>
<p> </p>
<p>It wouldn&#39;t let me put i into one code segment so here it is continued:</p>
<pre>
[source lang=&quot;python&quot;] #this is where i handle whether the loop needs to break and move on #to the &quot;elect_new&quot; loop if p &lt;= 15 and y == 1: game = False elect_new = Truewhile elect_new: DISPLAY.blit(help_bg, (0, 0)) DISPLAY.blit(elect_1, (165, 75)) DISPLAY.blit(elect_2, (165, 93)) DISPLAY.blit(elect_3, (165, 111)) DISPLAY.blit(yes, (285, 350)) DISPLAY.blit(no, (335, 350)) DISPLAY.blit(under, (285, 350)) DISPLAY.blit(under, (335, 350)) pygame.display.update() for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_y: p += 30 elect_new = False game = True if event.type == QUIT: pygame.quit() sys.exit() pygame.display.update()[/source]</pre>

How to pause a while loop in python

05 October 2012 - 11:28 AM

I would like to know how to pause a while loop in python. Right now i am using :
[source lang="python"]raw_input("-->")[/source]
This method works, but this requires them to hit enter in the command prompt window that is open with the program. I was wanting them to just be able to hit enter and cycle through the loop with the game window selected. After several searches on google i came here because the only help with this issue was using the raw_input() functions.

Heres my while loop currently:
[source lang="python"]#Game loopwhile game: x = random.randint(1, 10) DISPLAY.blit(gbg, (0, 0))#the pplrty determiner if x == 1: p += 2 if x == 2: p -= 2 if x == 3: p += 3 if x == 4: p -= 3 if x == 5: p += 5 if x == 6: p -= 5 if x == 7: p += 3 if x == 8: p -= 5 if x == 9: p += 0 if x == 10: p += 0 if p >= 50 and p < 60: DISPLAY.blit(pplrty_decent, (225, 400)) elif p >= 60 and p < 85: DISPLAY.blit(pplrty_good, (255, 400)) elif p >= 85 and p < 100: DISPLAY.blit(pplrty_great, (255, 400)) elif p >= 25 and p < 50: DISPLAY.blit(pplrty_bad, (225, 400)) elif p < 25: DISPLAY.blit(pplrty_awful, (225, 400)) for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() raw_input('-->') pygame.display.update()[/source]

Drawing a variable to the screen?

03 October 2012 - 11:28 AM

I need help drawing a variable to my game screen. For instance i have a variable that is:

P = 20

and i would like to draw the value the variable contains to the screen. When i try to make a font object it simply errors and says i need to insert an integer or a string. The varible needs to update to change as well so i'm wondering how to handle this?

PARTNERS