[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [pygame] Collaborative game in 8 weeks.
>> So we start with throwing some ideas around for a game, then make a
>> prototype. We try and get game play finished early, then spend the rest
>> of the time tweaking, and polishing it.
>> Anyone interested? Who wants to propose some game ideas?
> * zelda style game. man that "zelda through time" game on snes was the
> * take the zelda game online. a little multiplayer online zelda game.
> * a squad-style counterstrike remake. two people play against each other
> * a "heroes of m&m" type game. good fun, i always wanted to do one of
I have a very bare bones skeleton for a 4 paddle breakout variant if
anyone wants it (see attachment).
Alan
#!/usr/bin/env python
import pygame
from pygame.locals import *
try:
from OpenGL.GL import *
from OpenGL.GLU import *
except:
print 'The GLCUBE example requires PyOpenGL'
raise SystemExit
#globals
winsize=512
winhalf=winsize/2
paddlethick=5
blocksize=20
def drawpaddle(paddle,paddlesize,gap):
paddlehalf=paddlesize/2
glBegin(GL_QUADS)
#bottom
glColor3f(1.0, 1.0, 0.0)
glVertex3i(paddle-paddlehalf,winhalf-gap,0)
glVertex3i(paddle+paddlehalf,winhalf-gap,0)
glVertex3i(paddle+paddlehalf,winhalf-gap+paddlethick,0)
glVertex3i(paddle-paddlehalf,winhalf-gap+paddlethick,0)
#left
glColor3f(1.0, 0.0, 0.0)
glVertex3i(-winhalf+gap-paddlethick,paddle-paddlehalf,0)
glVertex3i(-winhalf+gap,paddle-paddlehalf,0)
glVertex3i(-winhalf+gap,paddle+paddlehalf,0)
glVertex3i(-winhalf+gap-paddlethick,paddle+paddlehalf,0)
#top
glColor3f(0.0, 1.0, 0.0)
glVertex3i(-paddle-paddlehalf,-winhalf+gap-paddlethick,0)
glVertex3i(-paddle+paddlehalf,-winhalf+gap-paddlethick,0)
glVertex3i(-paddle+paddlehalf,-winhalf+gap,0)
glVertex3i(-paddle-paddlehalf,-winhalf+gap,0)
#right
glColor3f(0.0, 0.0, 1.0)
glVertex3i(winhalf-gap,-paddle-paddlehalf,0)
glVertex3i(winhalf-gap+paddlethick,-paddle-paddlehalf,0)
glVertex3i(winhalf-gap+paddlethick,-paddle+paddlehalf,0)
glVertex3i(winhalf-gap,-paddle+paddlehalf,0)
#sw
glColor3f(1.0, 1.0, 1.0)
glVertex3i(-winhalf+gap-paddlethick,winhalf-gap,0)
glVertex3i(-winhalf+paddlesize+paddlehalf,winhalf-gap,0)
glVertex3i(-winhalf+paddlesize+paddlehalf,winhalf-gap+paddlethick,0)
glVertex3i(-winhalf+gap-paddlethick,winhalf-gap+paddlethick,0)
glVertex3i(-winhalf+gap-paddlethick,winhalf-paddlesize-paddlehalf,0)
glVertex3i(-winhalf+gap,winhalf-paddlesize-paddlehalf,0)
glVertex3i(-winhalf+gap,winhalf-gap,0)
glVertex3i(-winhalf+gap-paddlethick,winhalf-gap,0)
#nw
glVertex3i(-winhalf+gap-paddlethick,-winhalf+gap-paddlethick,0)
glVertex3i(-winhalf+paddlesize+paddlehalf,-winhalf+gap-paddlethick,0)
glVertex3i(-winhalf+paddlesize+paddlehalf,-winhalf+gap,0)
glVertex3i(-winhalf+gap-paddlethick,-winhalf+gap,0)
glVertex3i(-winhalf+gap-paddlethick,-winhalf+gap-paddlethick,0)
glVertex3i(-winhalf+gap,-winhalf+gap-paddlethick,0)
glVertex3i(-winhalf+gap,-winhalf+paddlesize+paddlehalf,0)
glVertex3i(-winhalf+gap-paddlethick,-winhalf+paddlesize+paddlehalf,0)
#ne
glVertex3i(winhalf-paddlesize-paddlehalf,-winhalf+gap-paddlethick,0)
glVertex3i(winhalf-gap+paddlethick,-winhalf+gap-paddlethick,0)
glVertex3i(winhalf-gap+paddlethick,-winhalf+gap,0)
glVertex3i(winhalf-paddlesize-paddlehalf,-winhalf+gap,0)
glVertex3i(winhalf-gap,-winhalf+gap-paddlethick,0)
glVertex3i(winhalf-gap+paddlethick,-winhalf+gap-paddlethick,0)
glVertex3i(winhalf-gap+paddlethick,-winhalf+paddlesize+paddlehalf,0)
glVertex3i(winhalf-gap,-winhalf+paddlesize+paddlehalf,0)
#sw
glVertex3i(winhalf-paddlesize-paddlehalf,winhalf-gap,0)
glVertex3i(winhalf-gap+paddlethick,winhalf-gap,0)
glVertex3i(winhalf-gap+paddlethick,winhalf-gap+paddlethick,0)
glVertex3i(winhalf-paddlesize-paddlehalf,winhalf-gap+paddlethick,0)
glVertex3i(winhalf-gap,winhalf-paddlesize-paddlehalf,0)
glVertex3i(winhalf-gap+paddlethick,winhalf-paddlesize-paddlehalf,0)
glVertex3i(winhalf-gap+paddlethick,winhalf-gap+paddlethick,0)
glVertex3i(winhalf-gap,winhalf-gap+paddlethick,0)
glEnd()
def drawboard(boardrotate):
glPushMatrix()
#glTranslatef(256,256,0)
glRotatef(boardrotate,0,0,1)
glBegin(GL_QUADS)
glColor3f(1.0, 0.0, 0.0)
for row in range(-100,90,blocksize):
for col in range(-100,90,blocksize):
glVertex3i(col,row,0)
glVertex3i(col+blocksize-2,row,0)
glVertex3i(col+blocksize-2,row+blocksize-2,0)
glVertex3i(col,row+blocksize-2,0)
glEnd()
glPopMatrix()
def drawball(x,y,ballsize):
ballhalf=ballsize/2
glBegin(GL_QUADS)
glColor3f(0.0, 1.0, 1.0)
glVertex3i(x-ballhalf,y-ballhalf,0)
glVertex3i(x+ballhalf,y-ballhalf,0)
glVertex3i(x+ballhalf,y+ballhalf,0)
glVertex3i(x-ballhalf,y+ballhalf,0)
glEnd()
def main():
pygame.init()
pygame.display.set_mode((winsize,winsize), OPENGL|DOUBLEBUF)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glOrtho(-winsize/2, winsize/2, winsize/2, -winsize/2, 10, -10)
glMatrixMode(GL_MODELVIEW)
pygame.mouse.set_visible(0)
pygame.event.set_grab(1)
paddle=0
paddlesize=50
paddlemax=winhalf-(paddlesize*2)
boardrotate=10
ballx=7
bally=40
dx=3
dy=2
gap=10
ballsize=6
while 1:
#check for quit'n events
event = pygame.event.poll()
if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE):
pygame.mouse.set_visible(1)
pygame.event.set_grab(0)
break
#logic
mx,my=pygame.mouse.get_rel()
paddle=paddle+mx
if paddle>=paddlemax:
paddle=paddlemax
elif paddle<= -paddlemax:
paddle= -paddlemax
boardrotate+=0.2
if boardrotate>=360:
boardrotate=0
ballx+=dx
if ballx >= winhalf-gap:
dx *= -1
elif ballx <= -winhalf+gap:
dx *= -1
bally+=dy
if bally >= winhalf-gap:
dy *= -1
elif bally <= -winhalf+gap:
dy *= -1
#painting
glClear(GL_COLOR_BUFFER_BIT)
drawpaddle(paddle,paddlesize,gap)
drawboard(boardrotate)
drawball(ballx, bally, ballsize)
pygame.display.flip()
pygame.time.wait(10)
if __name__ == '__main__': main()