• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
rabbitrabbit

Need Help Fixing Problem With Simple Program(Python/Pygame)

4 posts in this topic

Recently I've been going going through the lessons on this site - http://programarcadegames.com/index.php?lang=en. I'm currently on the first part of chapter 8(Trying to make the white box bounce around on a black backround). When I try to run my program, all I get is a blank black window, no square. But when I close the program, the square appears for a moment. The code is below. If anyone can see the problem and point it out, I'd greatly appreciate it.

# Import a library of functions called 'pygame'
import pygame

# Initialize the game engine
pygame.init()

# Defining some colors
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = (255, 0, 0)

# Opening and setting window size
size = (700, 500)
screen = pygame.display.set_mode(size)

# Setting the window title
pygame.display.set_caption("rabbitrabbit's game")

# Setting up main program loop
# Loop until user clicks the close button
done = False

# Manage how fast screen updates
clock = pygame.time.Clock()
# Starting position of the rectangle
rect_x = 50
rect_y = 50
# Speed and direction of rectangle
rect_change_x = 8
rect_change_y = 8


#------------ Main Program Loop -------------
while not done:  
    #---------Main Event Loop-------------
    for event in pygame.event.get():# User did something
        if event. type == pygame.QUIT: # If user clicked close
            done = True # Flag that we are done so exit this loop
# Set Screen backround
screen.fill(BLACK)
# Draw the rectangle
pygame.draw.rect(screen, WHITE, [rect_x, 50, 50, 50])
# Move the rectangle's starting point
rect_x += rect_change_x
rect_y += rect_change_y
# Bounce the rectangle if needed
if rect_y > 450 or rect_y < 0:
    rect_change_y = rect_change_y * -1
if rect_x > 650 or rect_x < 0:
    rect_change_x = rect_change_x * -1

# Game logic here

# Drawing code here

# Update screen
pygame.display.flip()
# --- Limit to 60 FPS
clock.tick(60)

pygame.quit()

Edited by rabbitrabbit
0

Share this post


Link to post
Share on other sites

Maybe posting the code directly isn't a good idea. Python depends on the corrent indentation to work as you expect. Try to use the code option while writing the post or something like http://pastebin.com/ to make sure it looks like the code in your script.

 

Now, only guessing, maybe you forgot to put the pygame.display.flip() and clock.tick(60) lines inside the while block.

1

Share this post


Link to post
Share on other sites
If your code copy&pasted correctly you did not put the code to draw the rectangle
Into the while loop. First after you left the loop you start to draw your rectangle.
0

Share this post


Link to post
Share on other sites

Assuming the code you paste is correct, the problem is that the actual drawing code is outisde the main loop.

 

The short answer is:

Add a single tab (or four spaces, depending on what you are using to indent) to every line from line 44 to line 64.

 

The long answer is:

Python takes context by code indentation, in the code you posted here, your program will loop in the wait for the close click event, and won't draw a single thing. When the user press the close, it will leave the loop and execute the drawing code ONCE (hence, you see the drawn there) and then quit. You need to put the drawing code inside the main loop to see it actually draw something.

Edited by KnolanCross
1

Share this post


Link to post
Share on other sites

Thanks KnolanCross, I changed it and the code works now. Also, I'll be sure to use the code option from now on when posting.

1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0