You can subscribe to this list here.
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(28) |
|---|
|
From: João <lv...@us...> - 2009-12-24 12:42:51
|
This is an automated email from the git, the tree hashes are:
via 57bf66fd8c423eb6d4f23d531799422a8199fe48 (commit)
from 0e645ba9cc5be3230aa02c000a27556b3e8643f0 (commit)
- Log -----------------------------------------------------------------
commit 57bf66fd8c423eb6d4f23d531799422a8199fe48
Author: João <joao@marvim.(none)>
Date: Thu Dec 24 10:41:48 2009 -0200
Removing some graphics
diff --git a/data/graphic/1.png b/data/graphic/1.png
deleted file mode 100644
index 82f2fe1..0000000
Binary files a/data/graphic/1.png and /dev/null differ
diff --git a/data/graphic/2.png b/data/graphic/2.png
deleted file mode 100644
index bda3646..0000000
Binary files a/data/graphic/2.png and /dev/null differ
diff --git a/data/graphic/3.png b/data/graphic/3.png
deleted file mode 100644
index b9eb991..0000000
Binary files a/data/graphic/3.png and /dev/null differ
diff --git a/data/graphic/320.png b/data/graphic/320.png
deleted file mode 100644
index e2f0703..0000000
Binary files a/data/graphic/320.png and /dev/null differ
diff --git a/data/graphic/321.png b/data/graphic/321.png
deleted file mode 100644
index 4afebfc..0000000
Binary files a/data/graphic/321.png and /dev/null differ
diff --git a/data/graphic/4.png b/data/graphic/4.png
deleted file mode 100644
index 9934112..0000000
Binary files a/data/graphic/4.png and /dev/null differ
diff --git a/data/graphic/earth.jpg b/data/graphic/earth.jpg
deleted file mode 100644
index 21fe013..0000000
Binary files a/data/graphic/earth.jpg and /dev/null differ
diff --git a/data/graphic/tile.png b/data/graphic/tile.png
deleted file mode 100644
index 123de7f..0000000
Binary files a/data/graphic/tile.png and /dev/null differ
diff --git a/data/graphic/tiles/stars1.jpg b/data/graphic/tiles/stars1.jpg
deleted file mode 100644
index 6e4545d..0000000
Binary files a/data/graphic/tiles/stars1.jpg and /dev/null differ
diff --git a/data/graphic/tiles/stars2.jpg b/data/graphic/tiles/stars2.jpg
deleted file mode 100644
index 6e4545d..0000000
Binary files a/data/graphic/tiles/stars2.jpg and /dev/null differ
diff --git a/data/graphic/tiles/stars3.jpg b/data/graphic/tiles/stars3.jpg
deleted file mode 100644
index e86475a..0000000
Binary files a/data/graphic/tiles/stars3.jpg and /dev/null differ
-----------------------------------------------------------------------
Summary of changes:
data/graphic/1.png | Bin 14601 -> 0 bytes
data/graphic/2.png | Bin 33052 -> 0 bytes
data/graphic/3.png | Bin 9670 -> 0 bytes
data/graphic/320.png | Bin 72572 -> 0 bytes
data/graphic/321.png | Bin 10581 -> 0 bytes
data/graphic/4.png | Bin 752 -> 0 bytes
data/graphic/earth.jpg | Bin 355487 -> 0 bytes
data/graphic/tile.png | Bin 655 -> 0 bytes
data/graphic/tiles/stars1.jpg | Bin 1393 -> 0 bytes
data/graphic/tiles/stars2.jpg | Bin 1393 -> 0 bytes
data/graphic/tiles/stars3.jpg | Bin 2768 -> 0 bytes
11 files changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 data/graphic/1.png
delete mode 100644 data/graphic/2.png
delete mode 100644 data/graphic/3.png
delete mode 100644 data/graphic/320.png
delete mode 100644 data/graphic/321.png
delete mode 100644 data/graphic/4.png
delete mode 100644 data/graphic/earth.jpg
delete mode 100644 data/graphic/tile.png
delete mode 100644 data/graphic/tiles/stars1.jpg
delete mode 100644 data/graphic/tiles/stars2.jpg
delete mode 100644 data/graphic/tiles/stars3.jpg
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|
|
From: João <lv...@us...> - 2009-12-24 12:33:46
|
This is an automated email from the git, the tree hashes are:
via 0e645ba9cc5be3230aa02c000a27556b3e8643f0 (commit)
from 6d1d84b351e85b77f8eec32f560a4b75eefeb13a (commit)
- Log -----------------------------------------------------------------
commit 0e645ba9cc5be3230aa02c000a27556b3e8643f0
Author: João <joao@marvim.(none)>
Date: Thu Dec 24 10:33:12 2009 -0200
Adding much cooler backgrounds ;)
diff --git a/code/game.py b/code/game.py
old mode 100644
new mode 100755
index ff63094..30e91f2
--- a/code/game.py
+++ b/code/game.py
@@ -452,7 +452,7 @@ class Game:
self.counter = 0
# creates the background
- self.background = Background("earth.jpg", "320.png","4.png")
+ self.background = Background("bg/layer0_1.png", "bg/layer1_1.png","bg/layer2_1.png")
# creates foreground
self.foreground = Foreground()
diff --git a/data/graphic/bg/fg_1.png b/data/graphic/bg/fg_1.png
new file mode 100755
index 0000000..82f2fe1
Binary files /dev/null and b/data/graphic/bg/fg_1.png differ
diff --git a/data/graphic/bg/fg_2.png b/data/graphic/bg/fg_2.png
new file mode 100755
index 0000000..bda3646
Binary files /dev/null and b/data/graphic/bg/fg_2.png differ
diff --git a/data/graphic/bg/layer0_1.png b/data/graphic/bg/layer0_1.png
new file mode 100644
index 0000000..ec90fa6
Binary files /dev/null and b/data/graphic/bg/layer0_1.png differ
diff --git a/data/graphic/bg/layer1_1.png b/data/graphic/bg/layer1_1.png
new file mode 100644
index 0000000..b9d15ea
Binary files /dev/null and b/data/graphic/bg/layer1_1.png differ
diff --git a/data/graphic/bg/layer1_2.png b/data/graphic/bg/layer1_2.png
new file mode 100644
index 0000000..7fc4334
Binary files /dev/null and b/data/graphic/bg/layer1_2.png differ
diff --git a/data/graphic/bg/layer2_1.png b/data/graphic/bg/layer2_1.png
new file mode 100755
index 0000000..b0df248
Binary files /dev/null and b/data/graphic/bg/layer2_1.png differ
diff --git a/data/graphic/bg/layer2_2.png b/data/graphic/bg/layer2_2.png
new file mode 100644
index 0000000..bfaa9a1
Binary files /dev/null and b/data/graphic/bg/layer2_2.png differ
diff --git a/data/graphic/bg/layer2_3.png b/data/graphic/bg/layer2_3.png
new file mode 100644
index 0000000..f31237c
Binary files /dev/null and b/data/graphic/bg/layer2_3.png differ
diff --git a/data/stage1.xml b/data/stage1.xml
old mode 100644
new mode 100755
index 13c610c..63f8c62
--- a/data/stage1.xml
+++ b/data/stage1.xml
@@ -2,8 +2,14 @@
<fase>
<item>
<type>background</type>
+ <cc>0</cc>
+ <image>bg/layer1_2.png</image>
+ <layer>1</layer>
+</item>
+<item>
+ <type>background</type>
<cc>1</cc>
- <image>4.png</image>
+ <image>bg/layer2_1.png</image>
<layer>2</layer>
</item>
<item>
@@ -21,7 +27,13 @@
<type>foreground</type>
<cc>120</cc>
<pos_y>10</pos_y>
- <image>2.png</image>
+ <image>bg/fg_2.png</image>
+</item>
+<item>
+ <type>background</type>
+ <cc>120</cc>
+ <image>bg/layer1_1.png</image>
+ <layer>1</layer>
</item>
<item>
<type>enemy</type>
@@ -49,7 +61,7 @@
<type>foreground</type>
<cc>240</cc>
<pos_y>80</pos_y>
- <image>2.png</image>
+ <image>bg/fg_2.png</image>
</item>
<item>
<type>enemy</type>
@@ -88,13 +100,13 @@
<type>foreground</type>
<cc>362</cc>
<pos_y>18</pos_y>
- <image>1.png</image>
+ <image>bg/fg_1.png</image>
</item>
<item>
<type>foreground</type>
<cc>370</cc>
<pos_y>30</pos_y>
- <image>2.png</image>
+ <image>bg/fg_2.png</image>
</item>
<item>
<type>enemy</type>
@@ -121,14 +133,20 @@
<item>
<type>background</type>
<cc>500</cc>
- <image>tiles/stars3.jpg</image>
+ <image>bg/layer2_2.png</image>
<layer>2</layer>
</item>
<item>
- <type>foreground</type>
- <cc>500</cc>
- <pos_y>40</pos_y>
- <image>2.png</image>
+ <type>background</type>
+ <cc>510</cc>
+ <image>bg/layer2_3.png</image>
+ <layer>2</layer>
+</item>
+<item>
+ <type>background</type>
+ <cc>520</cc>
+ <image>bg/layer2_2.png</image>
+ <layer>2</layer>
</item>
<item>
<type>sw_mult</type>
@@ -269,13 +287,13 @@
<item>
<type>background</type>
<cc>1000</cc>
- <image>1.png</image>
+ <image>bg/layer2_3.png</image>
<layer>2</layer>
</item>
<item>
<type>background</type>
<cc>1010</cc>
- <image>tiles/stars3.jpg</image>
+ <image>bg/layer2_1.png</image>
<layer>2</layer>
</item>
<item>
-----------------------------------------------------------------------
Summary of changes:
code/game.py | 2 +-
data/graphic/{1.png => bg/fg_1.png} | Bin 14601 -> 14601 bytes
data/graphic/{2.png => bg/fg_2.png} | Bin 33052 -> 33052 bytes
data/graphic/bg/layer0_1.png | Bin 0 -> 62883 bytes
data/graphic/bg/layer1_1.png | Bin 0 -> 3812 bytes
data/graphic/bg/layer1_2.png | Bin 0 -> 4052 bytes
data/graphic/bg/layer2_1.png | Bin 0 -> 340 bytes
data/graphic/bg/layer2_2.png | Bin 0 -> 556 bytes
data/graphic/bg/layer2_3.png | Bin 0 -> 670 bytes
data/stage1.xml | 42 +++++++++++++++++++++++++----------
10 files changed, 31 insertions(+), 13 deletions(-)
mode change 100644 => 100755 code/game.py
copy data/graphic/{1.png => bg/fg_1.png} (100%)
mode change 100644 => 100755
copy data/graphic/{2.png => bg/fg_2.png} (100%)
mode change 100644 => 100755
create mode 100644 data/graphic/bg/layer0_1.png
create mode 100644 data/graphic/bg/layer1_1.png
create mode 100644 data/graphic/bg/layer1_2.png
create mode 100755 data/graphic/bg/layer2_1.png
create mode 100644 data/graphic/bg/layer2_2.png
create mode 100644 data/graphic/bg/layer2_3.png
mode change 100644 => 100755 data/stage1.xml
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|
|
From: João <lv...@us...> - 2009-12-14 05:51:52
|
This is an automated email from the git, the tree hashes are:
via 6d1d84b351e85b77f8eec32f560a4b75eefeb13a (commit)
from 9f9eb9a15397bcb4f74c686dffcbe9b2f00d7e66 (commit)
- Log -----------------------------------------------------------------
commit 6d1d84b351e85b77f8eec32f560a4b75eefeb13a
Author: João <jcorrea@marvim.(none)>
Date: Mon Dec 14 03:50:17 2009 -0200
Fixed blitting above previous background with transparent images problem.
diff --git a/code/background.py b/code/background.py
index 9ffa766..875728f 100644
--- a/code/background.py
+++ b/code/background.py
@@ -33,7 +33,6 @@ class Layer:
self.L = deque()
self.w = width * image.size[0]
self.h = image.size[1]
- self.back = pygame.Surface((self.w, self.h), SRCALPHA)
self.speed = speed
def subLayer(self, screen):
@@ -57,6 +56,7 @@ class Layer:
"""
This function builds the background layer based on the queue of images L
"""
+ self.back = pygame.Surface((self.w, self.h), SRCALPHA)
# make sure that the queue has enought itens
while len(self.L) < self.width:
self.L.append(self.default_image)
diff --git a/code/game.py b/code/game.py
index 427bac8..ff63094 100644
--- a/code/game.py
+++ b/code/game.py
@@ -452,7 +452,7 @@ class Game:
self.counter = 0
# creates the background
- self.background = Background("earth.jpg", "320.png","321.png")
+ self.background = Background("earth.jpg", "320.png","4.png")
# creates foreground
self.foreground = Foreground()
-----------------------------------------------------------------------
Summary of changes:
code/background.py | 2 +-
code/game.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|
|
From: João <lv...@us...> - 2009-12-14 05:49:38
|
This is an automated email from the git, the tree hashes are:
via 9f9eb9a15397bcb4f74c686dffcbe9b2f00d7e66 (commit)
from c6138743a73a2e531aa9347b5e4e4139d488154b (commit)
- Log -----------------------------------------------------------------
commit 9f9eb9a15397bcb4f74c686dffcbe9b2f00d7e66
Author: João <jcorrea@marvim.(none)>
Date: Mon Dec 14 03:48:29 2009 -0200
Fixed bug in foreground with queue index out of bounds
diff --git a/code/foreground.py b/code/foreground.py
index e3b88ff..a3fa7f6 100644
--- a/code/foreground.py
+++ b/code/foreground.py
@@ -43,11 +43,13 @@ class Layer:
"""
Moves the layer
"""
- for i in range(0, len(self.L)):
+ i = 0
+ while i < len(self.L):
self.L[i].pos[0] -= self.speed
# if the image reaches the end of the screen, pop it!
if self.L[i].pos[0] == -self.L[i].size[0]:
self.L.popleft()
+ i = i + 1
self.build()
def build(self):
diff --git a/data/graphic/1.png b/data/graphic/1.png
new file mode 100644
index 0000000..82f2fe1
Binary files /dev/null and b/data/graphic/1.png differ
diff --git a/data/graphic/2.png b/data/graphic/2.png
new file mode 100644
index 0000000..bda3646
Binary files /dev/null and b/data/graphic/2.png differ
diff --git a/data/graphic/3.png b/data/graphic/3.png
new file mode 100644
index 0000000..b9eb991
Binary files /dev/null and b/data/graphic/3.png differ
diff --git a/data/graphic/4.png b/data/graphic/4.png
new file mode 100644
index 0000000..9934112
Binary files /dev/null and b/data/graphic/4.png differ
diff --git a/data/stage1.xml b/data/stage1.xml
index 4c8482b..13c610c 100644
--- a/data/stage1.xml
+++ b/data/stage1.xml
@@ -3,7 +3,7 @@
<item>
<type>background</type>
<cc>1</cc>
- <image>tiles/stars1.jpg</image>
+ <image>4.png</image>
<layer>2</layer>
</item>
<item>
@@ -21,7 +21,7 @@
<type>foreground</type>
<cc>120</cc>
<pos_y>10</pos_y>
- <image>tiles/stars1.jpg</image>
+ <image>2.png</image>
</item>
<item>
<type>enemy</type>
@@ -46,6 +46,12 @@
<special>0</special>
</item>
<item>
+ <type>foreground</type>
+ <cc>240</cc>
+ <pos_y>80</pos_y>
+ <image>2.png</image>
+</item>
+<item>
<type>enemy</type>
<cc>250</cc>
<pos_x>0</pos_x>
@@ -79,6 +85,18 @@
<special>0</special>
</item>
<item>
+ <type>foreground</type>
+ <cc>362</cc>
+ <pos_y>18</pos_y>
+ <image>1.png</image>
+</item>
+<item>
+ <type>foreground</type>
+ <cc>370</cc>
+ <pos_y>30</pos_y>
+ <image>2.png</image>
+</item>
+<item>
<type>enemy</type>
<cc>400</cc>
<pos_x>0</pos_x>
@@ -107,6 +125,12 @@
<layer>2</layer>
</item>
<item>
+ <type>foreground</type>
+ <cc>500</cc>
+ <pos_y>40</pos_y>
+ <image>2.png</image>
+</item>
+<item>
<type>sw_mult</type>
<cc>300</cc>
<pos_x>0</pos_x>
@@ -245,7 +269,7 @@
<item>
<type>background</type>
<cc>1000</cc>
- <image>tiles/stars1.jpg</image>
+ <image>1.png</image>
<layer>2</layer>
</item>
<item>
-----------------------------------------------------------------------
Summary of changes:
code/foreground.py | 4 +++-
data/graphic/1.png | Bin 0 -> 14601 bytes
data/graphic/2.png | Bin 0 -> 33052 bytes
data/graphic/3.png | Bin 0 -> 9670 bytes
data/graphic/4.png | Bin 0 -> 752 bytes
data/stage1.xml | 30 +++++++++++++++++++++++++++---
6 files changed, 30 insertions(+), 4 deletions(-)
create mode 100644 data/graphic/1.png
create mode 100644 data/graphic/2.png
create mode 100644 data/graphic/3.png
create mode 100644 data/graphic/4.png
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|
|
From: João <lv...@us...> - 2009-12-14 05:06:02
|
This is an automated email from the git, the tree hashes are:
via c6138743a73a2e531aa9347b5e4e4139d488154b (commit)
from b844710174d54bf78f72e45bf017350c0aa3c525 (commit)
- Log -----------------------------------------------------------------
commit c6138743a73a2e531aa9347b5e4e4139d488154b
Author: João <jcorrea@marvim.(none)>
Date: Mon Dec 14 03:05:18 2009 -0200
Forgot to add foreground.py =)
diff --git a/code/foreground.py b/code/foreground.py
new file mode 100644
index 0000000..e3b88ff
--- /dev/null
+++ b/code/foreground.py
@@ -0,0 +1,125 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#----------------------------------------------------------------------
+# Authors:
+# Joao Correa <jo...@li...>
+#
+# Copyright (C) 2009 João Correa
+#
+# Released under GNU GPL, read the file 'COPYING' for more information
+# ----------------------------------------------------------------------
+
+# Suggestions to be discussed:
+# Blitting directly to the screen, instead of blitting twice
+# We are not moving layers here, so there is no need to blit twice
+# Should we really not use moving layers here?
+
+import os
+import pygame
+from pygame.locals import *
+from collections import deque
+
+class Image:
+ """
+ A simple image that goes on the Layer
+ """
+ def __init__(self, image, x, y):
+ self.image = image
+ self.size = self.image.get_size()
+ self.pos = [x, int(y)]
+
+class Layer:
+ """
+ It is the foreground Layer
+ """
+ def __init__(self, w, h, speed):
+ self.L = deque()
+ self.w = w
+ self.h = h
+ self.speed = speed
+
+ def move(self):
+ """
+ Moves the layer
+ """
+ for i in range(0, len(self.L)):
+ self.L[i].pos[0] -= self.speed
+ # if the image reaches the end of the screen, pop it!
+ if self.L[i].pos[0] == -self.L[i].size[0]:
+ self.L.popleft()
+ self.build()
+
+ def build(self):
+ """
+ This function builds the foreground layer based on the queue of images L
+ """
+ foreg = pygame.Surface((self.w, self.h), SRCALPHA)
+ # Put all foreground images on screen
+ for i in range(0, len(self.L)):
+ foreg.blit(self.L[i].image, (self.L[i].pos[0], self.L[i].pos[1]))
+
+ self.screen = foreg
+
+ def addImage(self, image, y):
+ """
+ Just adds a new image to the queue
+ """
+ self.L.append(Image(image, self.w, y))
+
+class Foreground:
+ """
+ It's the animated game foreground.
+ Images on this object goes above the game chars.
+ """
+ loaded_imgs = {}
+ ms = 0
+ size = [0, 0]
+
+ def __init__(self):
+ """
+ Creates the layer.
+ """
+ screen = pygame.display.get_surface()
+ screen_size = screen.get_size()
+ self.layer = Layer(screen_size[0], screen_size[1], 10)
+ self.layer.build()
+
+ def addForeg(self, image, y):
+ """
+ Includes a new image to the layer.
+ """
+ self.layer.addImage(self.loadImage(image), y)
+
+ def update(self, ms):
+ """
+ Moves the images on the layer.
+ The layer is not moved, but the objects inside.
+ """
+ self.ms += ms
+ if self.ms > 10:
+ self.ms = 0
+ self.layer.move()
+
+ def draw(self,screen):
+ """
+ Draws the foreground
+ """
+ screen.blit(self.layer.screen, (0, 0))
+
+ def loadImage(self, image_path):
+ """
+ Loads the image that is going to be used
+ """
+ # tries to load from memory for better performance
+ # need to check if it is really better!
+ if image_path in self.loaded_imgs:
+ image = self.loaded_imgs[image_path]
+ else:
+ image = os.path.join('graphic', image_path)
+ # loads the image
+ image = pygame.image.load(image).convert_alpha()
+ # image is saved in memory, for no file reading
+ self.loaded_imgs[image_path] = image
+ return image
+
-----------------------------------------------------------------------
Summary of changes:
code/foreground.py | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 125 insertions(+), 0 deletions(-)
create mode 100644 code/foreground.py
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|
|
From: Bruno C. L. <bru...@gm...> - 2009-12-14 03:12:49
|
bruno@keyser /p/pygame/deadchannel $ ./deadchannel.py
Traceback (most recent call last):
File "./deadchannel.py", line 94, in <module>
main(sys.argv)
File "./deadchannel.py", line 83, in main
from game import Game
File "/p/pygame/deadchannel/code/game.py", line 30, in <module>
from foreground import Foreground
ImportError: No module named foreground
On Sun, Dec 13, 2009 at 6:28 PM, João <lv...@us...> wrote:
> This is an automated email from the git, the tree hashes are:
>
> via b844710174d54bf78f72e45bf017350c0aa3c525 (commit)
> via 95ef8cd5e3a6eeac58fcfbb186c9c8246be828ab (commit)
> from 22834a80deaaba31a648a7035f7bec990280582f (commit)
>
>
> - Log -----------------------------------------------------------------
> commit b844710174d54bf78f72e45bf017350c0aa3c525
> Author: João <jcorrea@marvim.(none)>
> Date: Sun Dec 13 18:26:48 2009 -0200
>
> Added foreground support
>
> Fixed minor bug in background.py
>
> diff --git a/code/background.py b/code/background.py
> index b3ef0dd..9ffa766 100644
> --- a/code/background.py
> +++ b/code/background.py
> @@ -38,9 +38,7 @@ class Layer:
>
> def subLayer(self, screen):
> """
> - FUCK! I can't remember what this shit is supposed to do...
> - But it is something related to positioning the layer correctly,
> - I'll add a better description soon!
> + Fix the layer position (place it on the screen bottom)
> """
> s = screen.get_size()
> self.pos = [0, s[1] - self.default_image.size[1]]
> @@ -68,7 +66,7 @@ class Layer:
> print self.layer
> print self.width
> self.back.blit(self.L[0].image, (0, self.default_image.size[1] - self.L[0].size[1]))
> - for i in range(1,self.width):
> + for i in range(1,int(self.width)):
> lw += self.L[i-1].size[0]
> self.back.blit(self.L[i].image, (lw , self.h - self.L[i].size[1]))
>
> diff --git a/code/game.py b/code/game.py
> index 32aba35..427bac8 100644
> --- a/code/game.py
> +++ b/code/game.py
> @@ -27,6 +27,7 @@ from hud import HUD
> from stage import Stage
> from music import Music_player
> from power_up import PowerUp
> +from foreground import Foreground
>
> class Game:
> screen = None
> @@ -320,6 +321,7 @@ class Game:
> actor.update(dt, ms, self.counter, x, y)
>
> self.hud.update(self.screen, ms)
> + self.foreground.update(ms)
>
> def actors_draw(self):
> """
> @@ -330,6 +332,7 @@ class Game:
> for actor in self.actors_list.values():
> actor.draw(self.screen)
>
> + self.foreground.draw(self.screen)
> # draw the hud after all the actors, so it will be at the top
> self.hud.draw(self.screen)
>
> @@ -434,6 +437,9 @@ class Game:
> elif element.type == "background":
> self.background.nextTile(element.image, element.layer)
> print "LAYER: ", element.layer
> + elif element.type == "foreground":
> + self.foreground.addForeg(element.image, element.pos_y)
> +
>
> def loop(self):
> """
> @@ -448,6 +454,9 @@ class Game:
> # creates the background
> self.background = Background("earth.jpg", "320.png","321.png")
>
> + # creates foreground
> + self.foreground = Foreground()
> +
> #starts clock
> clock = pygame.time.Clock()
> dt = 16
> diff --git a/code/stage.py b/code/stage.py
> index 469dbde..cb9e93b 100644
> --- a/code/stage.py
> +++ b/code/stage.py
> @@ -33,6 +33,12 @@ class Backg(Item):
> for tag in ['image', 'layer']:
> setattr(self, tag, self.get_element(tag, node))
>
> +class Foreg(Item):
> + def __init__(self, node):
> + Item.__init__(self, node)
> + for tag in ['image', 'pos_y']:
> + setattr(self, tag, self.get_element(tag, node))
> +
> class Enemy(Item):
> def __init__(self, node):
> Item.__init__(self, node)
> @@ -103,6 +109,8 @@ class Stage:
> type = node.getElementsByTagName("type")[0].childNodes[0].nodeValue
> if type == "background":
> item = Backg(node)
> + elif type == "foreground":
> + item = Foreg(node)
> elif type == "enemy":
> item = Enemy(node)
> elif type == "sw_mult":
> diff --git a/data/stage1.xml b/data/stage1.xml
> index 24c270a..4c8482b 100644
> --- a/data/stage1.xml
> +++ b/data/stage1.xml
> @@ -18,6 +18,12 @@
> <special>0</special>
> </item>
> <item>
> + <type>foreground</type>
> + <cc>120</cc>
> + <pos_y>10</pos_y>
> + <image>tiles/stars1.jpg</image>
> +</item>
> +<item>
> <type>enemy</type>
> <cc>150</cc>
> <pos_x>0</pos_x>
> commit 95ef8cd5e3a6eeac58fcfbb186c9c8246be828ab
> Author: João <jcorrea@marvim.(none)>
> Date: Thu Dec 10 22:01:09 2009 -0200
>
> Added a new layer in background.py
> Added some comments
>
> diff --git a/code/background.py b/code/background.py
> index 5e895a1..b3ef0dd 100644
> --- a/code/background.py
> +++ b/code/background.py
> @@ -22,7 +22,10 @@ class Image:
> self.size = self.image.get_size()
>
> class Layer:
> - def __init__(self, image, width, layer):
> + """
> + It is one of the background's layers
> + """
> + def __init__(self, image, width, layer, speed):
> self.default_image = image
> self.pos = [0, 0]
> self.width = width
> @@ -31,21 +34,39 @@ class Layer:
> self.w = width * image.size[0]
> self.h = image.size[1]
> self.back = pygame.Surface((self.w, self.h), SRCALPHA)
> + self.speed = speed
>
> def subLayer(self, screen):
> + """
> + FUCK! I can't remember what this shit is supposed to do...
> + But it is something related to positioning the layer correctly,
> + I'll add a better description soon!
> + """
> s = screen.get_size()
> self.pos = [0, s[1] - self.default_image.size[1]]
>
> def move(self):
> - self.pos[0] -= 1
> + """
> + Moves the layer
> + """
> + self.pos[0] -= self.speed
> + if (self.pos[0] <= -self.default_image.size[0]):
> + self.pos[0] += self.default_image.size[0]
> + self.build()
> +
>
> def build(self):
> -# self.back = pygame.Surface((self.w, self.h), SRCALPHA)
> - # checks if the number of images is OK
> + """
> + This function builds the background layer based on the queue of images L
> + """
> + # make sure that the queue has enought itens
> while len(self.L) < self.width:
> self.L.append(self.default_image)
>
> + # place images side by side
> lw = 0
> + print self.layer
> + print self.width
> self.back.blit(self.L[0].image, (0, self.default_image.size[1] - self.L[0].size[1]))
> for i in range(1,self.width):
> lw += self.L[i-1].size[0]
> @@ -56,6 +77,13 @@ class Layer:
> # remove the first image on the queue
> self.L.popleft()
>
> + def changeImage(self, image):
> + """
> + Changes the default image and adds it to the queue
> + """
> + self.default_image = image
> + self.L.append(image)
> +
>
> class Background:
> """
> @@ -65,48 +93,60 @@ class Background:
> pos = None
> L = deque()
> loaded_imgs = {}
> - ms = 0
> + ms1 = 0
> + ms2 = 0
> size = [0, 0]
>
> - def __init__(self, image0, image1):
> + def __init__(self, image0, image1, image2):
> """
> Creates a surface with tiles repeated until cover the entire screen.
> """
> -
> + from math import ceil
> # to work "perfectly" all images in the tile must have the same size
> - self.layer0 = Layer(Image(self.loadImage(image0)), 1, 0)
> + self.layer0 = Layer(Image(self.loadImage(image0)), 1, 0, 0)
> self.size = self.layer0.default_image.size
> screen = pygame.display.get_surface()
> screen_size = screen.get_size()
>
> image = self.loadImage(image1)
> - size = image.get_size()
> - self.layer1 = Layer(Image(image), screen_size[0] / size[0] + 1, 1)
> + size = image.get_size()
> + # FIX: How dilly was using ceil before?
> + self.layer1 = Layer(Image(image), ceil(float(screen_size[0]) / size[0]) + 1, 1, 1)
> self.layer1.subLayer(screen)
>
> + image = self.loadImage(image2)
> + size = image.get_size()
> + self.layer2 = Layer(Image(image), ceil(float(screen_size[0]) / size[0]) + 1, 2, 3)
> + self.layer2.subLayer(screen)
> +
> self.layer0.build()
> self.layer1.build()
> + self.layer2.build()
>
> def nextTile(self, next, layer):
> """
> Adds a tile to the queue and makes it default
> """
> - self.layer1.default_image = Image(self.loadImage(next))
> - self.layer1.L.append(self.layer1.default_image)
> - #The tile added becomes the new default tile
> + # Should we rebuild the entire layer when a new image is added?
> + # maybe working on it can fix problems with different width patterns
> + if int(layer) == 1:
> + self.layer1.changeImage(Image(self.loadImage(next)))
> + elif int(layer) == 2:
> + self.layer2.changeImage(Image(self.loadImage(next)))
>
> def update(self, ms):
> """
> Moves the background to the left
> """
> - self.ms += ms
> - if self.ms > 10:
> - self.ms = 0
> + self.ms1 += ms
> + self.ms2 += ms
> + if self.ms1 > 10:
> + self.ms1 = 0
> self.layer1.move()
> - # when it reaches the end, moves the background for the start point
> - if (self.layer1.pos[0] <= -self.layer1.default_image.size[0]):
> - self.layer1.pos[0] += self.layer1.default_image.size[0]
> - self.layer1.build()
> + if self.ms2 > 30:
> + self.ms2 = 0
> + self.layer2.move()
> +
>
> def draw(self,screen):
> """
> @@ -114,6 +154,7 @@ class Background:
> """
> screen.blit(self.layer0.screen, (0,0))
> screen.blit(self.layer1.screen, (self.layer1.pos))
> + screen.blit(self.layer2.screen, (self.layer2.pos))
>
> def loadImage(self, image_path):
> """
> diff --git a/code/game.py b/code/game.py
> index 8915c11..32aba35 100644
> --- a/code/game.py
> +++ b/code/game.py
> @@ -432,7 +432,8 @@ class Game:
> powerup.set_pos(pos)
> self.actors_list["powerups"].add(powerup)
> elif element.type == "background":
> - self.background.nextTile(element.image, 1)
> + self.background.nextTile(element.image, element.layer)
> + print "LAYER: ", element.layer
>
> def loop(self):
> """
> @@ -445,7 +446,7 @@ class Game:
> self.counter = 0
>
> # creates the background
> - self.background = Background("earth.jpg", "321.png")
> + self.background = Background("earth.jpg", "320.png","321.png")
>
> #starts clock
> clock = pygame.time.Clock()
> diff --git a/data/graphic/320.png b/data/graphic/320.png
> new file mode 100644
> index 0000000..e2f0703
> Binary files /dev/null and b/data/graphic/320.png differ
> diff --git a/data/stage1.xml b/data/stage1.xml
> index 672b05a..24c270a 100644
> --- a/data/stage1.xml
> +++ b/data/stage1.xml
> @@ -4,7 +4,7 @@
> <type>background</type>
> <cc>1</cc>
> <image>tiles/stars1.jpg</image>
> - <layer>1</layer>
> + <layer>2</layer>
> </item>
> <item>
> <type>enemy</type>
> @@ -98,7 +98,7 @@
> <type>background</type>
> <cc>500</cc>
> <image>tiles/stars3.jpg</image>
> - <layer>1</layer>
> + <layer>2</layer>
> </item>
> <item>
> <type>sw_mult</type>
> @@ -240,13 +240,13 @@
> <type>background</type>
> <cc>1000</cc>
> <image>tiles/stars1.jpg</image>
> - <layer>1</layer>
> + <layer>2</layer>
> </item>
> <item>
> <type>background</type>
> <cc>1010</cc>
> <image>tiles/stars3.jpg</image>
> - <layer>1</layer>
> + <layer>2</layer>
> </item>
> <item>
> <type>enemy</type>
> -----------------------------------------------------------------------
>
> Summary of changes:
> code/background.py | 81 +++++++++++++++++++++++++++++++++++++-------------
> code/game.py | 14 +++++++-
> code/stage.py | 8 +++++
> data/graphic/320.png | Bin 0 -> 72572 bytes
> data/stage1.xml | 14 ++++++--
> 5 files changed, 90 insertions(+), 27 deletions(-)
> create mode 100644 data/graphic/320.png
>
>
> --
> Dead Channel is a sci-fi shoot 'em up game developed using pygame.
>
>
> ------------------------------------------------------------------------------
> Return on Information:
> Google Enterprise Search pays you back
> Get the facts.
> http://p.sf.net/sfu/google-dev2dev
>
> _______________________________________________
> Deadchannel-commits mailing list
> Dea...@li...
> https://lists.sourceforge.net/lists/listinfo/deadchannel-commits
>
>
--
Bruno Cardoso Lopes
http://www.brunocardoso.cc
|
|
From: João <lv...@us...> - 2009-12-13 20:28:30
|
This is an automated email from the git, the tree hashes are:
via b844710174d54bf78f72e45bf017350c0aa3c525 (commit)
via 95ef8cd5e3a6eeac58fcfbb186c9c8246be828ab (commit)
from 22834a80deaaba31a648a7035f7bec990280582f (commit)
- Log -----------------------------------------------------------------
commit b844710174d54bf78f72e45bf017350c0aa3c525
Author: João <jcorrea@marvim.(none)>
Date: Sun Dec 13 18:26:48 2009 -0200
Added foreground support
Fixed minor bug in background.py
diff --git a/code/background.py b/code/background.py
index b3ef0dd..9ffa766 100644
--- a/code/background.py
+++ b/code/background.py
@@ -38,9 +38,7 @@ class Layer:
def subLayer(self, screen):
"""
- FUCK! I can't remember what this shit is supposed to do...
- But it is something related to positioning the layer correctly,
- I'll add a better description soon!
+ Fix the layer position (place it on the screen bottom)
"""
s = screen.get_size()
self.pos = [0, s[1] - self.default_image.size[1]]
@@ -68,7 +66,7 @@ class Layer:
print self.layer
print self.width
self.back.blit(self.L[0].image, (0, self.default_image.size[1] - self.L[0].size[1]))
- for i in range(1,self.width):
+ for i in range(1,int(self.width)):
lw += self.L[i-1].size[0]
self.back.blit(self.L[i].image, (lw , self.h - self.L[i].size[1]))
diff --git a/code/game.py b/code/game.py
index 32aba35..427bac8 100644
--- a/code/game.py
+++ b/code/game.py
@@ -27,6 +27,7 @@ from hud import HUD
from stage import Stage
from music import Music_player
from power_up import PowerUp
+from foreground import Foreground
class Game:
screen = None
@@ -320,6 +321,7 @@ class Game:
actor.update(dt, ms, self.counter, x, y)
self.hud.update(self.screen, ms)
+ self.foreground.update(ms)
def actors_draw(self):
"""
@@ -330,6 +332,7 @@ class Game:
for actor in self.actors_list.values():
actor.draw(self.screen)
+ self.foreground.draw(self.screen)
# draw the hud after all the actors, so it will be at the top
self.hud.draw(self.screen)
@@ -434,6 +437,9 @@ class Game:
elif element.type == "background":
self.background.nextTile(element.image, element.layer)
print "LAYER: ", element.layer
+ elif element.type == "foreground":
+ self.foreground.addForeg(element.image, element.pos_y)
+
def loop(self):
"""
@@ -448,6 +454,9 @@ class Game:
# creates the background
self.background = Background("earth.jpg", "320.png","321.png")
+ # creates foreground
+ self.foreground = Foreground()
+
#starts clock
clock = pygame.time.Clock()
dt = 16
diff --git a/code/stage.py b/code/stage.py
index 469dbde..cb9e93b 100644
--- a/code/stage.py
+++ b/code/stage.py
@@ -33,6 +33,12 @@ class Backg(Item):
for tag in ['image', 'layer']:
setattr(self, tag, self.get_element(tag, node))
+class Foreg(Item):
+ def __init__(self, node):
+ Item.__init__(self, node)
+ for tag in ['image', 'pos_y']:
+ setattr(self, tag, self.get_element(tag, node))
+
class Enemy(Item):
def __init__(self, node):
Item.__init__(self, node)
@@ -103,6 +109,8 @@ class Stage:
type = node.getElementsByTagName("type")[0].childNodes[0].nodeValue
if type == "background":
item = Backg(node)
+ elif type == "foreground":
+ item = Foreg(node)
elif type == "enemy":
item = Enemy(node)
elif type == "sw_mult":
diff --git a/data/stage1.xml b/data/stage1.xml
index 24c270a..4c8482b 100644
--- a/data/stage1.xml
+++ b/data/stage1.xml
@@ -18,6 +18,12 @@
<special>0</special>
</item>
<item>
+ <type>foreground</type>
+ <cc>120</cc>
+ <pos_y>10</pos_y>
+ <image>tiles/stars1.jpg</image>
+</item>
+<item>
<type>enemy</type>
<cc>150</cc>
<pos_x>0</pos_x>
commit 95ef8cd5e3a6eeac58fcfbb186c9c8246be828ab
Author: João <jcorrea@marvim.(none)>
Date: Thu Dec 10 22:01:09 2009 -0200
Added a new layer in background.py
Added some comments
diff --git a/code/background.py b/code/background.py
index 5e895a1..b3ef0dd 100644
--- a/code/background.py
+++ b/code/background.py
@@ -22,7 +22,10 @@ class Image:
self.size = self.image.get_size()
class Layer:
- def __init__(self, image, width, layer):
+ """
+ It is one of the background's layers
+ """
+ def __init__(self, image, width, layer, speed):
self.default_image = image
self.pos = [0, 0]
self.width = width
@@ -31,21 +34,39 @@ class Layer:
self.w = width * image.size[0]
self.h = image.size[1]
self.back = pygame.Surface((self.w, self.h), SRCALPHA)
+ self.speed = speed
def subLayer(self, screen):
+ """
+ FUCK! I can't remember what this shit is supposed to do...
+ But it is something related to positioning the layer correctly,
+ I'll add a better description soon!
+ """
s = screen.get_size()
self.pos = [0, s[1] - self.default_image.size[1]]
def move(self):
- self.pos[0] -= 1
+ """
+ Moves the layer
+ """
+ self.pos[0] -= self.speed
+ if (self.pos[0] <= -self.default_image.size[0]):
+ self.pos[0] += self.default_image.size[0]
+ self.build()
+
def build(self):
-# self.back = pygame.Surface((self.w, self.h), SRCALPHA)
- # checks if the number of images is OK
+ """
+ This function builds the background layer based on the queue of images L
+ """
+ # make sure that the queue has enought itens
while len(self.L) < self.width:
self.L.append(self.default_image)
+ # place images side by side
lw = 0
+ print self.layer
+ print self.width
self.back.blit(self.L[0].image, (0, self.default_image.size[1] - self.L[0].size[1]))
for i in range(1,self.width):
lw += self.L[i-1].size[0]
@@ -56,6 +77,13 @@ class Layer:
# remove the first image on the queue
self.L.popleft()
+ def changeImage(self, image):
+ """
+ Changes the default image and adds it to the queue
+ """
+ self.default_image = image
+ self.L.append(image)
+
class Background:
"""
@@ -65,48 +93,60 @@ class Background:
pos = None
L = deque()
loaded_imgs = {}
- ms = 0
+ ms1 = 0
+ ms2 = 0
size = [0, 0]
- def __init__(self, image0, image1):
+ def __init__(self, image0, image1, image2):
"""
Creates a surface with tiles repeated until cover the entire screen.
"""
-
+ from math import ceil
# to work "perfectly" all images in the tile must have the same size
- self.layer0 = Layer(Image(self.loadImage(image0)), 1, 0)
+ self.layer0 = Layer(Image(self.loadImage(image0)), 1, 0, 0)
self.size = self.layer0.default_image.size
screen = pygame.display.get_surface()
screen_size = screen.get_size()
image = self.loadImage(image1)
- size = image.get_size()
- self.layer1 = Layer(Image(image), screen_size[0] / size[0] + 1, 1)
+ size = image.get_size()
+ # FIX: How dilly was using ceil before?
+ self.layer1 = Layer(Image(image), ceil(float(screen_size[0]) / size[0]) + 1, 1, 1)
self.layer1.subLayer(screen)
+ image = self.loadImage(image2)
+ size = image.get_size()
+ self.layer2 = Layer(Image(image), ceil(float(screen_size[0]) / size[0]) + 1, 2, 3)
+ self.layer2.subLayer(screen)
+
self.layer0.build()
self.layer1.build()
+ self.layer2.build()
def nextTile(self, next, layer):
"""
Adds a tile to the queue and makes it default
"""
- self.layer1.default_image = Image(self.loadImage(next))
- self.layer1.L.append(self.layer1.default_image)
- #The tile added becomes the new default tile
+ # Should we rebuild the entire layer when a new image is added?
+ # maybe working on it can fix problems with different width patterns
+ if int(layer) == 1:
+ self.layer1.changeImage(Image(self.loadImage(next)))
+ elif int(layer) == 2:
+ self.layer2.changeImage(Image(self.loadImage(next)))
def update(self, ms):
"""
Moves the background to the left
"""
- self.ms += ms
- if self.ms > 10:
- self.ms = 0
+ self.ms1 += ms
+ self.ms2 += ms
+ if self.ms1 > 10:
+ self.ms1 = 0
self.layer1.move()
- # when it reaches the end, moves the background for the start point
- if (self.layer1.pos[0] <= -self.layer1.default_image.size[0]):
- self.layer1.pos[0] += self.layer1.default_image.size[0]
- self.layer1.build()
+ if self.ms2 > 30:
+ self.ms2 = 0
+ self.layer2.move()
+
def draw(self,screen):
"""
@@ -114,6 +154,7 @@ class Background:
"""
screen.blit(self.layer0.screen, (0,0))
screen.blit(self.layer1.screen, (self.layer1.pos))
+ screen.blit(self.layer2.screen, (self.layer2.pos))
def loadImage(self, image_path):
"""
diff --git a/code/game.py b/code/game.py
index 8915c11..32aba35 100644
--- a/code/game.py
+++ b/code/game.py
@@ -432,7 +432,8 @@ class Game:
powerup.set_pos(pos)
self.actors_list["powerups"].add(powerup)
elif element.type == "background":
- self.background.nextTile(element.image, 1)
+ self.background.nextTile(element.image, element.layer)
+ print "LAYER: ", element.layer
def loop(self):
"""
@@ -445,7 +446,7 @@ class Game:
self.counter = 0
# creates the background
- self.background = Background("earth.jpg", "321.png")
+ self.background = Background("earth.jpg", "320.png","321.png")
#starts clock
clock = pygame.time.Clock()
diff --git a/data/graphic/320.png b/data/graphic/320.png
new file mode 100644
index 0000000..e2f0703
Binary files /dev/null and b/data/graphic/320.png differ
diff --git a/data/stage1.xml b/data/stage1.xml
index 672b05a..24c270a 100644
--- a/data/stage1.xml
+++ b/data/stage1.xml
@@ -4,7 +4,7 @@
<type>background</type>
<cc>1</cc>
<image>tiles/stars1.jpg</image>
- <layer>1</layer>
+ <layer>2</layer>
</item>
<item>
<type>enemy</type>
@@ -98,7 +98,7 @@
<type>background</type>
<cc>500</cc>
<image>tiles/stars3.jpg</image>
- <layer>1</layer>
+ <layer>2</layer>
</item>
<item>
<type>sw_mult</type>
@@ -240,13 +240,13 @@
<type>background</type>
<cc>1000</cc>
<image>tiles/stars1.jpg</image>
- <layer>1</layer>
+ <layer>2</layer>
</item>
<item>
<type>background</type>
<cc>1010</cc>
<image>tiles/stars3.jpg</image>
- <layer>1</layer>
+ <layer>2</layer>
</item>
<item>
<type>enemy</type>
-----------------------------------------------------------------------
Summary of changes:
code/background.py | 81 +++++++++++++++++++++++++++++++++++++-------------
code/game.py | 14 +++++++-
code/stage.py | 8 +++++
data/graphic/320.png | Bin 0 -> 72572 bytes
data/stage1.xml | 14 ++++++--
5 files changed, 90 insertions(+), 27 deletions(-)
create mode 100644 data/graphic/320.png
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|
|
From: João <lv...@us...> - 2009-12-09 04:40:37
|
This is an automated email from the git, the tree hashes are:
via 22834a80deaaba31a648a7035f7bec990280582f (commit)
from 03fe38a92960e0df882a7dc16564deeb321b4014 (commit)
- Log -----------------------------------------------------------------
commit 22834a80deaaba31a648a7035f7bec990280582f
Author: João <jcorrea@marvim.(none)>
Date: Wed Dec 9 02:39:58 2009 -0200
Making screen creation outside build
diff --git a/code/background.py b/code/background.py
index ad2caf7..5e895a1 100644
--- a/code/background.py
+++ b/code/background.py
@@ -30,6 +30,7 @@ class Layer:
self.L = deque()
self.w = width * image.size[0]
self.h = image.size[1]
+ self.back = pygame.Surface((self.w, self.h), SRCALPHA)
def subLayer(self, screen):
s = screen.get_size()
@@ -39,7 +40,7 @@ class Layer:
self.pos[0] -= 1
def build(self):
- self.back = pygame.Surface((self.w, self.h), SRCALPHA)
+# self.back = pygame.Surface((self.w, self.h), SRCALPHA)
# checks if the number of images is OK
while len(self.L) < self.width:
self.L.append(self.default_image)
-----------------------------------------------------------------------
Summary of changes:
code/background.py | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|
|
From: João <lv...@us...> - 2009-12-09 04:29:41
|
This is an automated email from the git, the tree hashes are:
via 03fe38a92960e0df882a7dc16564deeb321b4014 (commit)
from df68da5eea203fc158360dc9efbf564361c04e3f (commit)
- Log -----------------------------------------------------------------
commit 03fe38a92960e0df882a7dc16564deeb321b4014
Author: João <jcorrea@marvim.(none)>
Date: Wed Dec 9 02:28:13 2009 -0200
Added multilayer background
diff --git a/code/background.py b/code/background.py
index 291f2f0..ad2caf7 100644
--- a/code/background.py
+++ b/code/background.py
@@ -2,8 +2,9 @@
# -*- coding: utf-8 -*-
#----------------------------------------------------------------------
-# Author:
+# Authors:
# Bruno Dilly <bru...@br...>
+# Joao Correa <jo...@li...>
#
# Copyright (C) 2009 Bruno Dilly
#
@@ -15,48 +16,109 @@ import pygame
from pygame.locals import *
from collections import deque
+class Image:
+ def __init__(self, image):
+ self.image = image
+ self.size = self.image.get_size()
+
+class Layer:
+ def __init__(self, image, width, layer):
+ self.default_image = image
+ self.pos = [0, 0]
+ self.width = width
+ self.layer = layer
+ self.L = deque()
+ self.w = width * image.size[0]
+ self.h = image.size[1]
+
+ def subLayer(self, screen):
+ s = screen.get_size()
+ self.pos = [0, s[1] - self.default_image.size[1]]
+
+ def move(self):
+ self.pos[0] -= 1
+
+ def build(self):
+ self.back = pygame.Surface((self.w, self.h), SRCALPHA)
+ # checks if the number of images is OK
+ while len(self.L) < self.width:
+ self.L.append(self.default_image)
+
+ lw = 0
+ self.back.blit(self.L[0].image, (0, self.default_image.size[1] - self.L[0].size[1]))
+ for i in range(1,self.width):
+ lw += self.L[i-1].size[0]
+ self.back.blit(self.L[i].image, (lw , self.h - self.L[i].size[1]))
+
+ self.screen = self.back
+
+ # remove the first image on the queue
+ self.L.popleft()
+
+
class Background:
"""
It's the animated game background created with tiles.
"""
image = None
- loaded_imgs = {}
pos = None
L = deque()
+ loaded_imgs = {}
+ ms = 0
+ size = [0, 0]
- def __init__(self, image):
+ def __init__(self, image0, image1):
"""
Creates a surface with tiles repeated until cover the entire screen.
"""
# to work "perfectly" all images in the tile must have the same size
- image = self.loadImage(image)
- self.default_image = image
- self.size = image.get_size()
- self.pos = [0, 0]
+ self.layer0 = Layer(Image(self.loadImage(image0)), 1, 0)
+ self.size = self.layer0.default_image.size
screen = pygame.display.get_surface()
screen_size = screen.get_size()
- from math import ceil
+ image = self.loadImage(image1)
+ size = image.get_size()
+ self.layer1 = Layer(Image(image), screen_size[0] / size[0] + 1, 1)
+ self.layer1.subLayer(screen)
- # ceil returns the ceiling of x as a float
- # we want the size of the screen plus a tile
- self.w = (ceil(float(screen_size[0]) / self.size[0]) + 1) * self.size[0]
- self.h = (ceil(float(screen_size[1]) / self.size[1]) + 1) * self.size[1]
+ self.layer0.build()
+ self.layer1.build()
- # creates a surface with width w and height h
- self.back = pygame.Surface((self.w, self.h))
+ def nextTile(self, next, layer):
+ """
+ Adds a tile to the queue and makes it default
+ """
+ self.layer1.default_image = Image(self.loadImage(next))
+ self.layer1.L.append(self.layer1.default_image)
+ #The tile added becomes the new default tile
- for i in range((self.back.get_size()[0]/self.size[0])):
- self.L.append(image)
+ def update(self, ms):
+ """
+ Moves the background to the left
+ """
+ self.ms += ms
+ if self.ms > 10:
+ self.ms = 0
+ self.layer1.move()
+ # when it reaches the end, moves the background for the start point
+ if (self.layer1.pos[0] <= -self.layer1.default_image.size[0]):
+
self.layer1.pos[0] += self.layer1.default_image.size[0]
+ self.layer1.build()
- self.build()
+ def draw(self,screen):
+ """
+ Draws the background
+ """
+ screen.blit(self.layer0.screen, (0,0))
+ screen.blit(self.layer1.screen, (self.layer1.pos))
def loadImage(self, image_path):
"""
Loads the image that is going to be used on the tile
"""
-
+
# tries to load from memory for better performance
# need to check if it is really better!
if image_path in self.loaded_imgs:
@@ -64,55 +126,8 @@ class Background:
else:
image = os.path.join('graphic', image_path)
# loads the image
- image = pygame.image.load(image)
- # disables alpha
- image.set_alpha(None, RLEACCEL)
- # converts the image so it won't be done every blit
- # it improves the performance
- image = image.convert()
+ image = pygame.image.load(image).convert_alpha()
+ # image is saved in memory, for no file reading
self.loaded_imgs[image_path] = image
return image
- def build(self):
- """
- Build the whole image in the background
- """
-
- # checks if the number of images is OK
- if len(self.L) < self.w:
- self.L.append(self.default_image)
-
- for i in range((self.back.get_size()[0]/self.size[0])):
- for j in range((self.back.get_size()[1]/self.size[1])):
- self.back.blit(self.L[i], (i * self.size[0], j * self.size[1]))
-
- self.image = self.back
-
- # remove the first image on the queue
- self.L.popleft()
-
-
- def nextTile(self, next):
- """
- Adds a tile to the queue
- """
- self.default_image = self.loadImage(next)
- #The tile added becomes the new default tile
- self.L.append(self.default_image)
-
- def update(self, dt):
- """
- Moves the background to the left
- """
- self.pos[0] -= 1
- # when it reaches the end, moves the background for the start point
- if (self.pos[0] < -self.size[0]):
- self.pos[0] += self.size[0]
- self.build()
-
- def draw(self,screen):
- """
- Draws the background
- """
- screen.blit(self.image, self.pos)
-
diff --git a/code/game.py b/code/game.py
index 4e983d8..8915c11 100644
--- a/code/game.py
+++ b/code/game.py
@@ -432,7 +432,7 @@ class Game:
powerup.set_pos(pos)
self.actors_list["powerups"].add(powerup)
elif element.type == "background":
- self.background.nextTile(element.image)
+ self.background.nextTile(element.image, 1)
def loop(self):
"""
@@ -445,7 +445,7 @@ class Game:
self.counter = 0
# creates the background
- self.background = Background("tile.png")
+ self.background = Background("earth.jpg", "321.png")
#starts clock
clock = pygame.time.Clock()
diff --git a/data/graphic/321.png b/data/graphic/321.png
new file mode 100644
index 0000000..4afebfc
Binary files /dev/null and b/data/graphic/321.png differ
diff --git a/data/graphic/earth.jpg b/data/graphic/earth.jpg
new file mode 100644
index 0000000..21fe013
Binary files /dev/null and b/data/graphic/earth.jpg differ
diff --git a/data/graphic/tiles/stars1.jpg b/data/graphic/tiles/stars1.jpg
index 4676437..6e4545d 100644
Binary files a/data/graphic/tiles/stars1.jpg and b/data/graphic/tiles/stars1.jpg differ
diff --git a/data/graphic/tiles/stars2.jpg b/data/graphic/tiles/stars2.jpg
index fcf09fb..6e4545d 100644
Binary files a/data/graphic/tiles/stars2.jpg and b/data/graphic/tiles/stars2.jpg differ
diff --git a/data/graphic/tiles/stars3.jpg b/data/graphic/tiles/stars3.jpg
index 94f52f1..e86475a 100644
Binary files a/data/graphic/tiles/stars3.jpg and b/data/graphic/tiles/stars3.jpg differ
-----------------------------------------------------------------------
Summary of changes:
code/background.py | 149 ++++++++++++++++++++++------------------
code/game.py | 4 +-
data/graphic/321.png | Bin 0 -> 10581 bytes
data/graphic/earth.jpg | Bin 0 -> 355487 bytes
data/graphic/tiles/stars1.jpg | Bin 1172 -> 1393 bytes
data/graphic/tiles/stars2.jpg | Bin 1263 -> 1393 bytes
data/graphic/tiles/stars3.jpg | Bin 2336 -> 2768 bytes
7 files changed, 84 insertions(+), 69 deletions(-)
create mode 100644 data/graphic/321.png
create mode 100644 data/graphic/earth.jpg
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|
|
From: João <lv...@us...> - 2009-12-08 02:17:42
|
This is an automated email from the git, the tree hashes are:
via df68da5eea203fc158360dc9efbf564361c04e3f (commit)
from 174d90a8487f598ed829470a9410257543aef0b7 (commit)
- Log -----------------------------------------------------------------
commit df68da5eea203fc158360dc9efbf564361c04e3f
Author: João <jcorrea@marvim.(none)>
Date: Tue Dec 8 00:09:44 2009 -0200
Adding zigzaglong behaviour to enemies and support to y position
diff --git a/code/enemy.py b/code/enemy.py
index c5ce3ea..a0a516b 100644
--- a/code/enemy.py
+++ b/code/enemy.py
@@ -34,7 +34,8 @@ class Enemy(Actor):
"fast":[-7,0],
"diagonal":[-3,1],
"seeker":[-3,1],
- "zigzag":[-3,1]
+ "zigzag":[-3,-8],
+ "zigzaglong":[-3,-8]
}
self.counter = 1
@@ -54,6 +55,14 @@ class Enemy(Actor):
else:
self.speed = [-3, 8]
self.orientation = False
+ if self.behaviour == "zigzaglong":
+ if self.counter % 30 == 0:
+ if self.orientation == False:
+ self.speed = [-3, -8]
+ self.orientation = True
+ else:
+ self.speed = [-3, 8]
+ self.orientation = False
elif self.behaviour == "seeker":
if self.counter %2 == 0:
if self.orientation == True:
diff --git a/code/game.py b/code/game.py
index 32dd0db..4e983d8 100644
--- a/code/game.py
+++ b/code/game.py
@@ -412,7 +412,10 @@ class Game:
enemy = Enemy([0, 0], 0, int(element.life), element.behaviour,
0, self.image_enemy)
size = enemy.get_size()
- y = Random.randint(size[1] / 2, self.screen_size[1] - size[1] / 2)
+ # FIX: Should random y be kept like below?
+ y = int(element.pos_y)
+ if y == 0:
+ y = Random.randint(size[1] / 2, self.screen_size[1] - size[1] / 2)
pos = [self.screen_size[0] + size[0] / 2, y]
enemy.set_pos(pos)
# add sprite to group
diff --git a/data/stage1.xml b/data/stage1.xml
index f77bbee..672b05a 100644
--- a/data/stage1.xml
+++ b/data/stage1.xml
@@ -10,18 +10,84 @@
<type>enemy</type>
<cc>100</cc>
<pos_x>0</pos_x>
- <pos_y>40</pos_y>
+ <pos_y>300</pos_y>
<speed>0</speed>
<life>1</life>
<image>none</image>
- <behaviour>zigzag</behaviour>
+ <behaviour>zigzaglong</behaviour>
+ <special>0</special>
+</item>
+<item>
+ <type>enemy</type>
+ <cc>150</cc>
+ <pos_x>0</pos_x>
+ <pos_y>300</pos_y>
+ <speed>0</speed>
+ <life>1</life>
+ <image>none</image>
+ <behaviour>zigzaglong</behaviour>
<special>0</special>
</item>
<item>
<type>enemy</type>
<cc>200</cc>
<pos_x>0</pos_x>
- <pos_y>30</pos_y>
+ <pos_y>300</pos_y>
+ <speed>0</speed>
+ <life>1</life>
+ <image>none</image>
+ <behaviour>zigzaglong</behaviour>
+ <special>0</special>
+</item>
+<item>
+ <type>enemy</type>
+ <cc>250</cc>
+ <pos_x>0</pos_x>
+ <pos_y>300</pos_y>
+ <speed>0</speed>
+ <life>1</life>
+ <image>none</image>
+ <behaviour>zigzaglong</behaviour>
+ <special>0</special>
+</item>
+<item>
+ <type>enemy</type>
+ <cc>300</cc>
+ <pos_x>0</pos_x>
+ <pos_y>300</pos_y>
+ <speed>0</speed>
+ <life>1</life>
+ <image>none</image>
+ <behaviour>zigzaglong</behaviour>
+ <special>0</special>
+</item>
+<item>
+ <type>enemy</type>
+ <cc>350</cc>
+ <pos_x>0</pos_x>
+ <pos_y>300</pos_y>
+ <speed>0</speed>
+ <life>1</life>
+ <image>none</image>
+ <behaviour>zigzaglong</behaviour>
+ <special>0</special>
+</item>
+<item>
+ <type>enemy</type>
+ <cc>400</cc>
+ <pos_x>0</pos_x>
+ <pos_y>300</pos_y>
+ <speed>0</speed>
+ <life>1</life>
+ <image>none</image>
+ <behaviour>zigzaglong</behaviour>
+ <special>0</special>
+</item>
+<item>
+ <type>enemy</type>
+ <cc>450</cc>
+ <pos_x>0</pos_x>
+ <pos_y>300</pos_y>
<speed>0</speed>
<life>1</life>
<image>none</image>
@@ -30,7 +96,7 @@
</item>
<item>
<type>background</type>
- <cc>200</cc>
+ <cc>500</cc>
<image>tiles/stars3.jpg</image>
<layer>1</layer>
</item>
-----------------------------------------------------------------------
Summary of changes:
code/enemy.py | 11 +++++++-
code/game.py | 5 +++-
data/stage1.xml | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
3 files changed, 84 insertions(+), 6 deletions(-)
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|
|
From: João <lv...@us...> - 2009-12-05 23:40:16
|
This is an automated email from the git, the tree hashes are:
via 174d90a8487f598ed829470a9410257543aef0b7 (commit)
via 7241257d272c331e205ad12f67a1a71055bf6be5 (commit)
from 38fdfb4657fbe77c921c39bea0720bd845a7bb7d (commit)
- Log -----------------------------------------------------------------
commit 174d90a8487f598ed829470a9410257543aef0b7
Author: João <jcorrea@marvim.(none)>
Date: Sat Dec 5 19:15:47 2009 -0200
Adding dictionary to behaviours as suggested by Cardoso
diff --git a/code/enemy.py b/code/enemy.py
index 1a1d622..c5ce3ea 100644
--- a/code/enemy.py
+++ b/code/enemy.py
@@ -29,20 +29,18 @@ class Enemy(Actor):
Creates an enemy character that could has one of the following
behaves: normal, fast, or diagonal.
"""
+
+ self.speed_list = {"normal":[-4,0],
+ "fast":[-7,0],
+ "diagonal":[-3,1],
+ "seeker":[-3,1],
+ "zigzag":[-3,1]
+ }
self.counter = 1
self.orientation = True
self.behaviour = behaviour
- if behaviour == "normal":
- speed = [-4, 0]
- elif behaviour == "fast":
- speed = [-7, 0]
- elif behaviour == "diagonal":
- speed = [-3, 1]
- elif behaviour == "seeker":
- speed = [-3, 1]
- elif behaviour == "zigzag":
- speed = [-3, 1]
+ speed = self.speed_list[behaviour]
Actor.__init__(self, position, rotation, life, speed,
rotation_speed, image)
commit 7241257d272c331e205ad12f67a1a71055bf6be5
Author: João <jcorrea@marvim.(none)>
Date: Sat Dec 5 18:36:53 2009 -0200
Fixing type cast on pop function
diff --git a/code/stage.py b/code/stage.py
index a2e32ab..469dbde 100644
--- a/code/stage.py
+++ b/code/stage.py
@@ -95,7 +95,7 @@ class Stage:
nextx = int(self.getNextX())
while nextx == position:
subList.append(self.L.pop())
- nextx = self.getNextX()
+ nextx = int(self.getNextX())
return subList
def buildStage(self):
-----------------------------------------------------------------------
Summary of changes:
code/enemy.py | 18 ++++++++----------
code/stage.py | 2 +-
2 files changed, 9 insertions(+), 11 deletions(-)
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|
|
From: Bruno D. <bd...@us...> - 2009-12-05 19:19:09
|
This is an automated email from the git, the tree hashes are:
via 38fdfb4657fbe77c921c39bea0720bd845a7bb7d (commit)
via 4aacc37b0039fa3cf3564dd2c258c6dbc7ad9eda (commit)
via 642e3dd45de7df9cc70334a6c9e1029f9175af63 (commit)
via 6842702352c5168a945106e45e7723690e98ca21 (commit)
via 09a103c5847575a2ea3adb74e26a7fe49f37223d (commit)
via 04f4f6ad7d315337dcb8961bbf8480773540b5fa (commit)
via 58513ae665ec84c6878a0ac74877284f84d4b05b (commit)
via bf676bf01aede566a0e82666e25e2fe372b802a4 (commit)
via 5964af6b091c299a44bfe1727473e945db216e98 (commit)
from e34e5b37510b74bd665338bc43a14f434ec1ef4d (commit)
- Log -----------------------------------------------------------------
commit 38fdfb4657fbe77c921c39bea0720bd845a7bb7d
Author: Bruno Dilly <bru...@br...>
Date: Sat Dec 5 17:15:38 2009 -0200
Parse user preferences after default preferences
That will avoid missing entries on configuration file
diff --git a/code/preferences.py b/code/preferences.py
index 8527df6..d882daf 100644
--- a/code/preferences.py
+++ b/code/preferences.py
@@ -73,10 +73,11 @@ class Preferences(object):
self.keyboard_up = 273
self.keyboard_down = ...
"""
- for section in self.conf.sections():
- for item, value in self.conf.items(section):
- attr_name = "%s_%s" % (section, item)
- attr_value = self.parse_config_item(value)
- self.__setattr__(attr_name, attr_value)
- print section, item, attr_value
+ for conf in [self.default_conf, self.conf]:
+ for section in conf.sections():
+ for item, value in conf.items(section):
+ attr_name = "%s_%s" % (section, item)
+ attr_value = self.parse_config_item(value)
+ self.__setattr__(attr_name, attr_value)
+ print section, item, attr_value
commit 4aacc37b0039fa3cf3564dd2c258c6dbc7ad9eda
Merge: 642e3dd e34e5b3
Author: Bruno Dilly <bru...@br...>
Date: Sat Dec 5 17:10:52 2009 -0200
Merge branch 'master' of ssh://bdilly@deadchannel.git.sourceforge.net/gitroot/deadchannel/deadchannel
Conflicts:
code/preferences.py
diff --cc code/bullet.py
index 01990a5,de1a054..7091aa5
--- a/code/bullet.py
+++ b/code/bullet.py
@@@ -70,10 -67,9 +70,10 @@@ class GuidedBullet(Bullet)
rotation_speed=rotation_speed, image=image,
list=list, distance=distance)
self.enemy_list = enemy_list
+ self.prev_targets = []
self.target = self.lock_target()
- def update(self, dt, ms):
+ def update(self, dt, ms, *args):
"""
Set speed before calling Bullet update method.
Speed will be set to keep the bullet following the target.
diff --cc code/game.py
index 9c4af01,dc61056..32dd0db
--- a/code/game.py
+++ b/code/game.py
@@@ -462,10 -464,8 +464,10 @@@ class Game
}
# loads music player
- self.music_player = Music_player(
- self.hud, self.preferences.general_music_volume)
+ self.music_player = Music_player(self.hud,
+ self.preferences.general_music_volume,
- self.preferences.general_default_setlist,
++ self.preferences.general_use_default_setlist,
+ self.preferences.general_music_dir)
# loads next music
self.music_player.load_next()
# Starts playing music
diff --cc code/power_up.py
index fcbb52b,aff7ffc..ec267ee
--- a/code/power_up.py
+++ b/code/power_up.py
@@@ -23,10 -23,10 +23,10 @@@ class PowerUp(GameObject)
"""
GameObject.__init__(self, image, position, 0, speed, 0)
self.type = type
- self.special = special
+ self.pu_attr = pu_attr
self.set_life_time(life_time)
- def update(self, dt, ms):
+ def update(self, dt, ms, *args):
"""
Overrides GameObject update
"""
commit 642e3dd45de7df9cc70334a6c9e1029f9175af63
Author: Bruno Dilly <bru...@br...>
Date: Sat Dec 5 17:05:16 2009 -0200
Add eletrical weapon
diff --git a/code/bullet.py b/code/bullet.py
index a5962b6..01990a5 100644
--- a/code/bullet.py
+++ b/code/bullet.py
@@ -40,6 +40,9 @@ class Bullet(GameObject):
def at_max_distance(self):
self.kill()
+ def do_collision(self):
+ self.kill()
+
class FragmentaryBullet(Bullet):
def __init__(self, position, speed=None, rotation=0, rotation_speed=0,
@@ -67,6 +70,7 @@ class GuidedBullet(Bullet):
rotation_speed=rotation_speed, image=image,
list=list, distance=distance)
self.enemy_list = enemy_list
+ self.prev_targets = []
self.target = self.lock_target()
def update(self, dt, ms):
@@ -101,11 +105,14 @@ class GuidedBullet(Bullet):
target = None
min_distance = sys.maxint
for enemy in self.enemy_list:
+ if enemy in self.prev_targets:
+ continue
distance = self.get_enemy_distance(enemy)
distance = abs(distance[0]) + abs(distance[1])
if distance < min_distance:
min_distance = distance
target = enemy
+ self.prev_targets.append(target)
return target
def get_enemy_distance(self, enemy):
@@ -116,3 +123,20 @@ class GuidedBullet(Bullet):
t_pos = enemy.get_pos()
d = [t_pos[0] - pos[0], t_pos[1] - pos[1]]
return d
+
+class EletricBullet(GuidedBullet):
+ hits = 0
+ max_hits = 2
+# def __init__(self, position, speed=None, rotation=0, rotation_speed=0,
+# image=None, list=None, distance = -1, enemy_list = None):
+#
+# GuidedBullet.__init__(self, position, speed, rotation, rotation_speed,
+# image, list, distance, enemy_list)
+# self.hits = 0
+# self.max_hits = 2
+
+ def do_collision(self):
+ self.hits += 1
+ self.lock_target()
+ if self.hits == self.max_hits:
+ self.kill()
diff --git a/code/game.py b/code/game.py
index 0035e00..9c4af01 100644
--- a/code/game.py
+++ b/code/game.py
@@ -98,10 +98,11 @@ class Game:
self.image_enemy_fire = self.load_image("enemy_fire.png")
self.image_life = self.load_image("life.png")
self.image_powerup = {}
- for image in ["first_aid_kit", "sw_mult", "sw_frag", "sw_guided"]:
+ for image in ["first_aid_kit", "sw_mult", "sw_frag", "sw_guided",
+ "sw_elet"]:
self.image_powerup[image] = self.load_image(image+".png")
self.image_player_fire = {}
- for image in ["fire", "sw_mult", "sw_frag", "sw_guided"]:
+ for image in ["fire", "sw_mult", "sw_frag", "sw_guided", "sw_elet"]:
self.image_player_fire[image] = self.load_image("player_"+image+".png")
def handle_events(self, ms):
@@ -337,10 +338,12 @@ class Game:
"""
# check if the actor is instance of a group of sprites
if isinstance(actor, pygame.sprite.RenderPlain):
- hitted = pygame.sprite.groupcollide(actor, actors_list, 1, 0)
+ hitted = pygame.sprite.groupcollide(actor, actors_list, 0, 0)
for v in hitted.values():
for o in v:
action(o)
+ for o in hitted.keys():
+ o.do_collision()
return hitted
# check if the actor is a sprite
@@ -413,7 +416,7 @@ class Game:
# add sprite to group
self.actors_list["enemies"].add(enemy)
elif element.type in ["first_aid_kit", "sw_mult", "sw_frag",
- "sw_guided"]:
+ "sw_guided", "sw_elet"]:
powerup = PowerUp([0,0], int(element.time),
[int(element.speed_x), int(element.speed_y)],
element.type, element.pu_attr,
diff --git a/code/player.py b/code/player.py
index 8c0c152..1211816 100644
--- a/code/player.py
+++ b/code/player.py
@@ -12,7 +12,7 @@
import math
from actor import Actor
-from bullet import Bullet, FragmentaryBullet, GuidedBullet
+from bullet import Bullet, FragmentaryBullet, GuidedBullet, EletricBullet
from secondary_weapon import SecondaryWeapon, MultipleShotWeapon, \
FragmentaryGrenade
@@ -140,6 +140,12 @@ class Player(Actor):
return
GuidedBullet(pos, [x, y], image = image, list = fire_list,
enemy_list = enemy_list)
+ elif weapon.type == "sw_elet":
+ if not weapon.decrease_ammo(1):
+ self.drop_secondary_weapon(weapon)
+ return
+ EletricBullet(pos, [x, y], image = image, list = fire_list,
+ enemy_list = enemy_list)
def get_powerup(self, type, special):
"""
diff --git a/code/stage.py b/code/stage.py
index 05e493e..a2e32ab 100644
--- a/code/stage.py
+++ b/code/stage.py
@@ -109,7 +109,7 @@ class Stage:
item = Mult(node)
elif type == "sw_frag":
item = Frag(node)
- elif type == "sw_guided":
+ elif type in ["sw_guided", "sw_elet"]:
item = Sw(node)
elif type == "first_aid_kit":
item = FirstAidKit(node)
diff --git a/data/graphic/player_sw_elet.png b/data/graphic/player_sw_elet.png
new file mode 100644
index 0000000..87c5b14
Binary files /dev/null and b/data/graphic/player_sw_elet.png differ
diff --git a/data/graphic/sw_elet.png b/data/graphic/sw_elet.png
new file mode 100644
index 0000000..8cf9405
Binary files /dev/null and b/data/graphic/sw_elet.png differ
diff --git a/data/stage1.xml b/data/stage1.xml
index 3a5ad6c..ea0bc78 100644
--- a/data/stage1.xml
+++ b/data/stage1.xml
@@ -99,6 +99,22 @@
<simultaneous_shoots>10</simultaneous_shoots>
</item>
<item>
+ <type>sw_elet</type>
+ <cc>540</cc>
+ <pos_x>0</pos_x>
+ <pos_y>10</pos_y>
+ <speed_x>-3</speed_x>
+ <speed_y>0</speed_y>
+ <name>Eletrical</name>
+ <ammo>100</ammo>
+ <max_ammo>100</max_ammo>
+ <distance>1000</distance>
+ <cooldown>400</cooldown>
+ <heating>300</heating>
+ <max_charge>300</max_charge>
+ <time>5000</time>
+</item>
+<item>
<type>sw_mult</type>
<cc>580</cc>
<pos_x>0</pos_x>
@@ -232,4 +248,37 @@
<behaviour>normal</behaviour>
<special>0</special>
</item>
+<item>
+ <type>enemy</type>
+ <cc>2010</cc>
+ <pos_x>0</pos_x>
+ <pos_y>30</pos_y>
+ <speed>0</speed>
+ <life>1</life>
+ <image>none</image>
+ <behaviour>normal</behaviour>
+ <special>0</special>
+</item>
+<item>
+ <type>enemy</type>
+ <cc>2020</cc>
+ <pos_x>0</pos_x>
+ <pos_y>30</pos_y>
+ <speed>0</speed>
+ <life>1</life>
+ <image>none</image>
+ <behaviour>normal</behaviour>
+ <special>0</special>
+</item>
+<item>
+ <type>enemy</type>
+ <cc>2030</cc>
+ <pos_x>0</pos_x>
+ <pos_y>30</pos_y>
+ <speed>0</speed>
+ <life>3</life>
+ <image>none</image>
+ <behaviour>normal</behaviour>
+ <special>0</special>
+</item>
</fase>
commit 6842702352c5168a945106e45e7723690e98ca21
Author: Bruno Dilly <bru...@br...>
Date: Sat Dec 5 05:14:47 2009 -0200
Fixing broken code after stage changes
diff --git a/code/actor.py b/code/actor.py
index 429803d..c9af13b 100644
--- a/code/actor.py
+++ b/code/actor.py
@@ -24,7 +24,7 @@ class Actor(GameObject):
"""
GameObject.__init__(self, image, position, rotation, speed,
rotation_speed)
- self.set_life(life)
+ self.life = life
self.set_accel([3, 3])
def get_life(self):
diff --git a/code/game.py b/code/game.py
index e24ae89..0035e00 100644
--- a/code/game.py
+++ b/code/game.py
@@ -349,7 +349,7 @@ class Game:
collided_list = pygame.sprite.spritecollide(actor, actors_list, 0)
for obj in collided_list:
if isinstance(obj, PowerUp):
- if action(obj.get_type(), obj.get_special()):
+ if action(obj.get_type(), obj.get_pu_attr()):
obj.kill()
else:
action()
@@ -404,7 +404,7 @@ class Game:
for element in L:
if element.type == "enemy":
# FIX: Create enemies and itens similarly (create a generic class)
- enemy = Enemy([0, 0], 0, element.life, element.behaviour,
+ enemy = Enemy([0, 0], 0, int(element.life), element.behaviour,
0, self.image_enemy)
size = enemy.get_size()
y = Random.randint(size[1] / 2, self.screen_size[1] - size[1] / 2)
@@ -412,22 +412,19 @@ class Game:
enemy.set_pos(pos)
# add sprite to group
self.actors_list["enemies"].add(enemy)
- print("enemy")
elif element.type in ["first_aid_kit", "sw_mult", "sw_frag",
"sw_guided"]:
- powerup = PowerUp([0,0], element.life,
- [element.speed_x, element.speed_y],
- element.type, element.special,
+ powerup = PowerUp([0,0], int(element.time),
+ [int(element.speed_x), int(element.speed_y)],
+ element.type, element.pu_attr,
self.image_powerup[element.type])
size = powerup.get_size()
y = Random.randint(size[1] / 2, self.screen_size[1] - size[1] / 2)
pos = [self.screen_size[0] + size[0] / 2, y]
powerup.set_pos(pos)
self.actors_list["powerups"].add(powerup)
- print(element.type)
elif element.type == "background":
self.background.nextTile(element.image)
- print "backgs"
def loop(self):
"""
diff --git a/code/player.py b/code/player.py
index fd2303b..8c0c152 100644
--- a/code/player.py
+++ b/code/player.py
@@ -80,9 +80,12 @@ class Player(Actor):
Set player's life if it's not more than max life or return False.
Overrides Actor's set_life method.
"""
- if life > self.max_life:
- return False
- self.life = life
+ if life >= self.max_life:
+ if self.life == self.max_life:
+ return False
+ self.life = self.max_life
+ else:
+ self.life = life
return True
def fire(self, fire_list, image, primary=True, enemy_list=None, charging=0):
@@ -144,7 +147,7 @@ class Player(Actor):
false if he can't.
"""
if type == "first_aid_kit":
- return self.get_first_aid_kit(int(special[0]))
+ return self.get_first_aid_kit(int(special['life']))
# secondary weapon
elif "sw" in type:
if type == "sw_mult":
diff --git a/code/power_up.py b/code/power_up.py
index 82aaf59..fcbb52b 100644
--- a/code/power_up.py
+++ b/code/power_up.py
@@ -17,13 +17,13 @@ class PowerUp(GameObject):
Base class for all power-ups
"""
def __init__(self, position, life_time=3000, speed=[0,0], type=None,
- special=0, image=None):
+ pu_attr=0, image=None):
"""
Set position, speed, life time and image
"""
GameObject.__init__(self, image, position, 0, speed, 0)
self.type = type
- self.special = special
+ self.pu_attr = pu_attr
self.set_life_time(life_time)
def update(self, dt, ms):
@@ -53,11 +53,11 @@ class PowerUp(GameObject):
"""
return self.type
- def get_special(self):
+ def get_pu_attr(self):
"""
- Returns a list wich content depends on type.
+ Returns a dict of power up attributes wich content depends on type.
For 'first_aid_kit' it will returns a single element, the life bonus.
For secondary weapons this list has a name, ammunition, distance,
and other related to each kind of sw.
"""
- return self.special
+ return self.pu_attr
diff --git a/code/preferences.py b/code/preferences.py
index cbf7fba..f0bd16c 100644
--- a/code/preferences.py
+++ b/code/preferences.py
@@ -209,5 +209,5 @@ class Preferences:
joystick_id = property(get_joystick_id)
general_input = property(get_general_input)
general_music_volume = property(get_general_music_volume)
- general_default_setlist = property(get_default_setlist)
- general_music_dir = property(get_music_dir)
+ general_default_setlist = property(get_general_default_setlist)
+ general_music_dir = property(get_general_music_dir)
diff --git a/code/secondary_weapon.py b/code/secondary_weapon.py
index 0f9399c..13b968b 100644
--- a/code/secondary_weapon.py
+++ b/code/secondary_weapon.py
@@ -14,14 +14,14 @@ class SecondaryWeapon:
def __init__(self, type, attributes):
self.type = type
- self.name = attributes[0]
- self.ammo = int(attributes[1])
- self.max_ammo = int(attributes[2])
- self.distance = int(attributes[3])
- self.max_cooldown = int(attributes[4])
+ self.name = attributes['name']
+ self.ammo = int(attributes['ammo'])
+ self.max_ammo = int(attributes['max_ammo'])
+ self.distance = int(attributes['distance'])
+ self.max_cooldown = int(attributes['cooldown'])
self.cooldown = self.max_cooldown
- self.warm = int(attributes[5])
- self.max_charge = int(attributes[6])
+ self.warm = int(attributes['heating'])
+ self.max_charge = int(attributes['max_charge'])
def get_name(self):
return self.name
@@ -79,8 +79,8 @@ class SecondaryWeapon:
class MultipleShotWeapon(SecondaryWeapon):
def __init__(self, type, attributes):
SecondaryWeapon.__init__(self, type, attributes)
- self.radius = int(attributes[7])
- self.simultaneous_shoots = int(attributes[8])
+ self.radius = int(attributes['radius'])
+ self.simultaneous_shoots = int(attributes['simultaneous_shoots'])
def get_radius(self):
return self.radius
@@ -91,7 +91,7 @@ class MultipleShotWeapon(SecondaryWeapon):
class FragmentaryGrenade(SecondaryWeapon):
def __init__(self, type, attributes):
SecondaryWeapon.__init__(self, type, attributes)
- self.fragments = int(attributes[7])
+ self.fragments = int(attributes['fragments'])
def get_fragments(self):
return self.fragments
diff --git a/code/stage.py b/code/stage.py
index c6f50d3..05e493e 100644
--- a/code/stage.py
+++ b/code/stage.py
@@ -39,36 +39,37 @@ class Enemy(Item):
for tag in ['pos_x', 'pos_y', 'behaviour', 'life', 'image', 'speed']:
setattr(self, tag, self.get_element(tag, node))
-class Sw(Item):
+class PU(Item):
def __init__(self, node):
Item.__init__(self, node)
- for tag in ['pos_x', 'pos_y', 'speed_x', 'speed_y', 'name', 'ammo',
- 'max_ammo', 'cooldown', 'heating', 'time']:
+ for tag in ['pos_x', 'pos_y', 'speed_x', 'speed_y', 'time']:
setattr(self, tag, self.get_element(tag, node))
+ self.pu_attr = {}
+
+class Sw(PU):
+ def __init__(self, node):
+ PU.__init__(self, node)
+ for tag in ['name', 'ammo', 'max_ammo', 'cooldown', 'heating',
+ 'max_charge', 'distance']:
+ self.pu_attr[tag] = self.get_element(tag, node)
class Mult(Sw):
def __init__(self, node):
Sw.__init__(self, node)
- for tag in ['special1', 'special2']:
- setattr(self, tag, self.get_element(tag, node))
+ for tag in ['radius', 'simultaneous_shoots']:
+ self.pu_attr[tag] = self.get_element(tag, node)
class Frag(Sw):
def __init__(self, node):
Sw.__init__(self, node)
- for tag in ['special1', 'max_charge']:
- setattr(self, tag, self.get_element(tag, node))
+ for tag in ['fragments']:
+ self.pu_attr[tag] = self.get_element(tag, node)
-class Guided(Sw):
+class FirstAidKit(PU):
def __init__(self, node):
- Sw.__init__(self, node)
- for tag in ['special1', 'special2']:
- setattr(self, tag, self.get_element(tag, node))
-
-class FirstAidKit(Item):
- def __init__(self, node):
- Item.__init__(self, node)
- for tag in ['pos_x', 'pos_y', 'speed_x', 'speed_y', 'life', 'time']:
- setattr(self, tag, self.get_element(tag, node))
+ PU.__init__(self, node)
+ for tag in ['life']:
+ self.pu_attr[tag] = self.get_element(tag, node)
class Stage:
L = list()
@@ -95,10 +96,6 @@ class Stage:
while nextx == position:
subList.append(self.L.pop())
nextx = self.getNextX()
- print(len(subList))
- print(len(self.L))
- print(position)
- print(nextx)
return subList
def buildStage(self):
@@ -113,13 +110,9 @@ class Stage:
elif type == "sw_frag":
item = Frag(node)
elif type == "sw_guided":
- item = Guided(node)
+ item = Sw(node)
elif type == "first_aid_kit":
item = FirstAidKit(node)
- elif type == "sw_mult":
- item = Mult(node)
-
- print(item.cc)
self.include(item)
#below is some black magic I'm not sure how to deal with... but works
#taken from stackoverflow.org
diff --git a/data/stage1.xml b/data/stage1.xml
index 4f3363c..3a5ad6c 100644
--- a/data/stage1.xml
+++ b/data/stage1.xml
@@ -46,10 +46,11 @@
<max_ammo>100</max_ammo>
<cooldown>400</cooldown>
<heating>300</heating>
+ <distance>500</distance>
<max_charge>300</max_charge>
<time>60</time>
- <special1>30</special1>
- <special2>30</special2>
+ <radius>60</radius>
+ <simultaneous_shoots>3</simultaneous_shoots>
<special>Stuck Duck, 20, 100, 400, 300, 300, 0, 60, 3</special>
</item>
<item>
@@ -73,12 +74,11 @@
<ammo>10</ammo>
<max_ammo>10</max_ammo>
<cooldown>450</cooldown>
- <heating>600</heating>
+ <heating>450</heating>
+ <distance>500</distance>
<max_charge>1000</max_charge>
- <time>60</time>
- <special1>1000</special1>
- <special2>40</special2>
- <special>Last Kiss, 10, 10, 450, 600, 600, 1000, 4</special>
+ <time>6000</time>
+ <fragments>4</fragments>
</item>
<item>
<type>sw_mult</type>
@@ -90,12 +90,13 @@
<name>Psycho Killah!</name>
<ammo>100</ammo>
<max_ammo>100</max_ammo>
+ <distance>500</distance>
<cooldown>400</cooldown>
<heating>300</heating>
<max_charge>300</max_charge>
- <time>60</time>
- <special1>360</special1>
- <special2>10</special2>
+ <time>5000</time>
+ <radius>360</radius>
+ <simultaneous_shoots>10</simultaneous_shoots>
</item>
<item>
<type>sw_mult</type>
@@ -108,11 +109,12 @@
<ammo>20</ammo>
<max_ammo>100</max_ammo>
<cooldown>400</cooldown>
+ <distance>500</distance>
<heating>300</heating>
<max_charge>300</max_charge>
- <time>60</time>
- <special1>360</special1>
- <special2>10</special2>
+ <time>4500</time>
+ <radius>360</radius>
+ <simultaneous_shoots>10</simultaneous_shoots>
</item>
<item>
<type>sw_guided</type>
@@ -124,12 +126,11 @@
<name>Seeeeeeek... Seek and Destroy!</name>
<ammo>40</ammo>
<max_ammo>50</max_ammo>
- <cooldown>150</cooldown>
- <heating>900</heating>
+ <distance>500</distance>
+ <cooldown>900</cooldown>
+ <heating>150</heating>
<max_charge>300</max_charge>
- <time>60</time>
- <special1>30</special1>
- <special2>30</special2>
+ <time>7000</time>
</item>
<item>
<type>enemy</type>
commit 09a103c5847575a2ea3adb74e26a7fe49f37223d
Merge: 04f4f6a 5764f65
Author: Bruno Dilly <bru...@br...>
Date: Sat Dec 5 03:49:01 2009 -0200
Merge branch 'master' of ssh://bdilly@deadchannel.git.sourceforge.net/gitroot/deadchannel/deadchannel
Conflicts:
code/game.py
code/preferences.py
diff --cc code/game.py
index 4a32451,7cd52d8..e24ae89
--- a/code/game.py
+++ b/code/game.py
@@@ -462,9 -462,8 +462,10 @@@ class Game
}
# loads music player
- self.music_player = Music_player(
- self.hud, self.preferences.general_music_volume)
+ self.music_player = Music_player(self.hud,
- self.preferences.music_volume, self.preferences.default_setlist,
- self.preferences.music_dir)
++ self.preferences.general_music_volume,
++ self.preferences.general_default_setlist,
++ self.preferences.general_music_dir)
# loads next music
self.music_player.load_next()
# Starts playing music
diff --cc code/preferences.py
index 8467fce,453fac5..cbf7fba
--- a/code/preferences.py
+++ b/code/preferences.py
@@@ -114,100 -114,92 +114,100 @@@ class Preferences
def get_mouse_next_secondary_weapon(self):
return int(self.get('mouse', 'next_secondary_weapon'))
- def get_joy_axis_x(self):
+ def get_joystick_axis_x(self):
return int(self.get('joystick', 'axis_x'))
- def get_joy_axis_y(self):
+ def get_joystick_axis_y(self):
return int(self.get('joystick', 'axis_y'))
- def get_joy_axis_z(self):
+ def get_joystick_axis_z(self):
return int(self.get('joystick', 'axis_z'))
- def get_joy_fire(self):
+ def get_joystick_fire(self):
return int(self.get('joystick', 'fire'))
- def get_joy_secondary_fire(self):
+ def get_joystick_secondary_fire(self):
return int(self.get('joystick', 'secondary_fire'))
- def get_joy_rot_clock(self):
+ def get_joystick_rot_clock(self):
return int(self.get('joystick', 'rot_clock'))
- def get_joy_rot_anti_clock(self):
+ def get_joystick_rot_anti_clock(self):
return int(self.get('joystick', 'rot_anti_clock'))
- def get_joy_player_play(self):
+ def get_joystick_player_play(self):
return int(self.get('joystick', 'player_play'))
- def get_joy_player_stop(self):
+ def get_joystick_player_stop(self):
return int(self.get('joystick', 'player_stop'))
- def get_joy_player_next_track(self):
+ def get_joystick_player_next_track(self):
return int(self.get('joystick', 'player_next_track'))
- def get_joy_prev_secondary_weapon(self):
+ def get_joystick_prev_secondary_weapon(self):
return int(self.get('joystick', 'prev_secondary_weapon'))
- def get_joy_next_secondary_weapon(self):
+ def get_joystick_next_secondary_weapon(self):
return int(self.get('joystick', 'next_secondary_weapon'))
- def get_joy_sensitivity(self):
+ def get_joystick_sensitivity(self):
return float(self.get('joystick', 'sensitivity'))
- def get_joy_deadzone(self):
+ def get_joystick_deadzone(self):
return float(self.get('joystick', 'deadzone'))
- def get_joy_id(self):
+ def get_joystick_id(self):
return int(self.get('joystick', 'id'))
- def get_input(self):
+ def get_general_input(self):
return self.get('general', 'input')
- def get_music_volume(self):
+ def get_general_music_volume(self):
return float(self.get('general', 'music_volume'))
- def get_default_setlist(self):
++ def get_general_default_setlist(self):
+ return self.get('general', 'use_default_setlist')
+
- def get_music_dir(self):
++ def get_general_music_dir(self):
+ return self.get('general', 'music_dir')
+
- fullscreen = property(get_fullscreen)
- resolution = property(get_resolution)
- key_up = property(get_key_up)
- key_down = property(get_key_down)
- key_right = property(get_key_right)
- key_left = property(get_key_left)
- key_fire = property(get_key_fire)
- key_secondary_fire = property(get_key_secondary_fire)
- key_rot_clock = property(get_key_rot_clock)
- key_rot_anti_clock = property(get_key_rot_anti_clock)
- key_player_play = property(get_key_player_play)
- key_player_stop = property(get_key_player_stop)
- key_player_next_track = property(get_key_player_next_track)
- key_prev_secondary_weapon = property(get_key_prev_secondary_weapon)
- key_next_secondary_weapon = property(get_key_next_secondary_weapon)
- key_toogle_fullscreen = property(get_key_toogle_fullscreen)
+ screen_fullscreen = property(get_screen_fullscreen)
+ screen_resolution = property(get_screen_resolution)
+ keyboard_up = property(get_keyboard_up)
+ keyboard_down = property(get_keyboard_down)
+ keyboard_right = property(get_keyboard_right)
+ keyboard_left = property(get_keyboard_left)
+ keyboard_fire = property(get_keyboard_fire)
+ keyboard_secondary_fire = property(get_keyboard_secondary_fire)
+ keyboard_rot_clock = property(get_keyboard_rot_clock)
+ keyboard_rot_anti_clock = property(get_keyboard_rot_anti_clock)
+ keyboard_player_play = property(get_keyboard_player_play)
+ keyboard_player_stop = property(get_keyboard_player_stop)
+ keyboard_player_next_track = property(get_keyboard_player_next_track)
+ keyboard_prev_secondary_weapon = property(get_keyboard_prev_secondary_weapon)
+ keyboard_next_secondary_weapon = property(get_keyboard_next_secondary_weapon)
+ keyboard_toogle_fullscreen = property(get_keyboard_toogle_fullscreen)
mouse_sensitivity = property(get_mouse_sensitivity)
mouse_fire = property(get_mouse_fire)
mouse_secondary_fire = property(get_mouse_secondary_fire)
mouse_prev_secondary_weapon = property(get_mouse_prev_secondary_weapon)
mouse_next_secondary_weapon = property(get_mouse_next_secondary_weapon)
- j_axis_x = property(get_joy_axis_x)
- j_axis_y = property(get_joy_axis_y)
- j_axis_z = property(get_joy_axis_z)
- j_bt_fire = property(get_joy_fire)
- j_bt_secondary_fire = property(get_joy_secondary_fire)
- j_bt_rot_clock = property(get_joy_rot_clock)
- j_bt_rot_anti_clock = property(get_joy_rot_anti_clock)
- j_bt_player_play = property(get_joy_player_play)
- j_bt_player_stop = property(get_joy_player_stop)
- j_bt_player_next_track = property(get_joy_player_next_track)
- j_bt_prev_secondary_weapon = property(get_joy_prev_secondary_weapon)
- j_bt_next_secondary_weapon = property(get_joy_next_secondary_weapon)
- joy_sensitivity = property(get_joy_sensitivity)
- joy_deadzone = property(get_joy_deadzone)
- joy_id = property(get_joy_id)
- input = property(get_input)
- music_volume = property(get_music_volume)
- default_setlist = property(get_default_setlist)
- music_dir = property(get_music_dir)
+ joystick_axis_x = property(get_joystick_axis_x)
+ joystick_axis_y = property(get_joystick_axis_y)
+ joystick_axis_z = property(get_joystick_axis_z)
+ joystick_fire = property(get_joystick_fire)
+ joystick_secondary_fire = property(get_joystick_secondary_fire)
+ joystick_rot_clock = property(get_joystick_rot_clock)
+ joystick_rot_anti_clock = property(get_joystick_rot_anti_clock)
+ joystick_player_play = property(get_joystick_player_play)
+ joystick_player_stop = property(get_joystick_player_stop)
+ joystick_player_next_track = property(get_joystick_player_next_track)
+ joystick_prev_secondary_weapon = property(get_joystick_prev_secondary_weapon)
+ joystick_next_secondary_weapon = property(get_joystick_next_secondary_weapon)
+ joystick_sensitivity = property(get_joystick_sensitivity)
+ joystick_deadzone = property(get_joystick_deadzone)
+ joystick_id = property(get_joystick_id)
+ general_input = property(get_general_input)
+ general_music_volume = property(get_general_music_volume)
++ general_default_setlist = property(get_default_setlist)
++ general_music_dir = property(get_music_dir)
commit 04f4f6ad7d315337dcb8961bbf8480773540b5fa
Author: Bruno Dilly <bru...@br...>
Date: Sat Dec 5 03:39:20 2009 -0200
Xml Parser refactoring
diff --git a/code/stage.py b/code/stage.py
index b21f907..c6f50d3 100644
--- a/code/stage.py
+++ b/code/stage.py
@@ -4,6 +4,7 @@
#----------------------------------------------------------------------
# Author:
# João Corrêa <jo...@li...>
+# Bruno Dilly <bru...@br...>
#
# Copyright (C) 2009 João Corrêa
#
@@ -20,66 +21,54 @@ class Callable:
class Item:
def __init__(self, node):
- self.type = node.getElementsByTagName("type")[0].childNodes[0].nodeValue
- self.cc = int(node.getElementsByTagName("cc")[0].childNodes[0].nodeValue)
+ for tag in ['type', 'cc']:
+ setattr(self, tag, self.get_element(tag, node))
+
+ def get_element(self, tag, node):
+ return node.getElementsByTagName(tag)[0].childNodes[0].nodeValue
class Backg(Item):
def __init__(self, node):
Item.__init__(self, node)
- self.image = node.getElementsByTagName("image")[0].childNodes[0].nodeValue
- self.layer = node.getElementsByTagName("layer")[0].childNodes[0].nodeValue
+ for tag in ['image', 'layer']:
+ setattr(self, tag, self.get_element(tag, node))
class Enemy(Item):
def __init__(self, node):
Item.__init__(self, node)
- self.pos_x = node.getElementsByTagName("pos_x")[0].childNodes[0].nodeValue
- self.pos_y = node.getElementsByTagName("pos_y")[0].childNodes[0].nodeValue
- self.behaviour = node.getElementsByTagName("behaviour")[0].childNodes[0].nodeValue
- self.life = node.getElementsByTagName("life")[0].childNodes[0].nodeValue
- self.image = node.getElementsByTagName("image")[0].childNodes[0].nodeValue
- self.speed = node.getElementsByTagName("speed")[0].childNodes[0].nodeValue
+ for tag in ['pos_x', 'pos_y', 'behaviour', 'life', 'image', 'speed']:
+ setattr(self, tag, self.get_element(tag, node))
class Sw(Item):
def __init__(self, node):
Item.__init__(self, node)
- self.pos_x = node.getElementsByTagName("pos_x")[0].childNodes[0].nodeValue
- self.pos_y = node.getElementsByTagName("pos_y")[0].childNodes[0].nodeValue
- self.speed_x = node.getElementsByTagName("speed_y")[0].childNodes[0].nodeValue
- self.speed_y = node.getElementsByTagName("speed_x")[0].childNodes[0].nodeValue
- self.name = node.getElementsByTagName("name")[0].childNodes[0].nodeValue
- self.ammo = node.getElementsByTagName("ammo")[0].childNodes[0].nodeValue
- self.max_ammo = node.getElementsByTagName("max_ammo")[0].childNodes[0].nodeValue
- self.cooldown = node.getElementsByTagName("cooldown")[0].childNodes[0].nodeValue
- self.heating = node.getElementsByTagName("heating")[0].childNodes[0].nodeValue
- self.time = node.getElementsByTagName("time")[0].childNodes[0].nodeValue
+ for tag in ['pos_x', 'pos_y', 'speed_x', 'speed_y', 'name', 'ammo',
+ 'max_ammo', 'cooldown', 'heating', 'time']:
+ setattr(self, tag, self.get_element(tag, node))
class Mult(Sw):
def __init__(self, node):
Sw.__init__(self, node)
- self.special1 = node.getElementsByTagName("special1")[0].childNodes[0].nodeValue
- self.special2 = node.getElementsByTagName("special2")[0].childNodes[0].nodeValue
+ for tag in ['special1', 'special2']:
+ setattr(self, tag, self.get_element(tag, node))
class Frag(Sw):
def __init__(self, node):
Sw.__init__(self, node)
- self.special1 = node.getElementsByTagName("special1")[0].childNodes[0].nodeValue
- self.max_charge = node.getElementsByTagName("max_charge")[0].childNodes[0].nodeValue
+ for tag in ['special1', 'max_charge']:
+ setattr(self, tag, self.get_element(tag, node))
class Guided(Sw):
def __init__(self, node):
Sw.__init__(self, node)
- self.special1 = node.getElementsByTagName("special1")[0].childNodes[0].nodeValue
- self.special2 = node.getElementsByTagName("special2")[0].childNodes[0].nodeValue
+ for tag in ['special1', 'special2']:
+ setattr(self, tag, self.get_element(tag, node))
class FirstAidKit(Item):
def __init__(self, node):
Item.__init__(self, node)
- self.pos_x = node.getElementsByTagName("pos_x")[0].childNodes[0].nodeValue
- self.pos_y = node.getElementsByTagName("pos_y")[0].childNodes[0].nodeValue
- self.speed_x = node.getElementsByTagName("speed_x")[0].childNodes[0].nodeValue
- self.speed_y = node.getElementsByTagName("speed_y")[0].childNodes[0].nodeValue
- self.life = node.getElementsByTagName("life")[0].childNodes[0].nodeValue
- self.time = node.getElementsByTagName("time")[0].childNodes[0].nodeValue
+ for tag in ['pos_x', 'pos_y', 'speed_x', 'speed_y', 'life', 'time']:
+ setattr(self, tag, self.get_element(tag, node))
class Stage:
L = list()
@@ -134,4 +123,4 @@ class Stage:
self.include(item)
#below is some black magic I'm not sure how to deal with... but works
#taken from stackoverflow.org
- self.L.sort(key=lambda item: item.cc, reverse=True)
+ self.L.sort(key=lambda item: int(item.cc), reverse=True)
commit 58513ae665ec84c6878a0ac74877284f84d4b05b
Merge: bf676bf 71889b9
Author: Bruno Dilly <bru...@br...>
Date: Sat Dec 5 02:59:01 2009 -0200
Merge branch 'master' of ssh://bdilly@deadchannel.git.sourceforge.net/gitroot/deadchannel/deadchannel
commit bf676bf01aede566a0e82666e25e2fe372b802a4
Merge: 5964af6 6d919fc
Author: Bruno Dilly <bru...@br...>
Date: Sat Dec 5 02:22:05 2009 -0200
Merge branch 'master' of ssh://bdilly@deadchannel.git.sourceforge.net/gitroot/deadchannel/deadchannel
commit 5964af6b091c299a44bfe1727473e945db216e98
Author: Bruno Dilly <bru...@br...>
Date: Sat Dec 5 02:21:57 2009 -0200
Handle music directories
diff --git a/code/game.py b/code/game.py
index 069eb42..05dc522 100644
--- a/code/game.py
+++ b/code/game.py
@@ -458,8 +458,9 @@ class Game:
}
# loads music player
- self.music_player = Music_player(
- self.hud, self.preferences.music_volume)
+ self.music_player = Music_player(self.hud,
+ self.preferences.music_volume, self.preferences.default_setlist,
+ self.preferences.music_dir)
# loads next music
self.music_player.load_next()
# Starts playing music
diff --git a/code/music.py b/code/music.py
index e831b65..59b88ed 100644
--- a/code/music.py
+++ b/code/music.py
@@ -24,12 +24,17 @@ class Music_player:
loaded_index = -1
loaded_track_info = None
- def __init__(self, hud, volume=1.0):
+ def __init__(self, hud, volume=1.0, default_setlist=None, music_dir=None):
"""
Initializes music playback
"""
# Fills the playlist
- self.playlist = glob.glob(os.path.join('music', '*.ogg'))
+ self.playlist = []
+ if default_setlist:
+ self.playlist += glob.glob(os.path.join('music', '*.ogg'))
+ if music_dir:
+ MUSIC_DIR = os.path.abspath(music_dir)
+ self.playlist += glob.glob(os.path.join(MUSIC_DIR, '*.ogg'))
# Shuffles playlist
random.shuffle(self.playlist)
pygame.mixer.music.set_volume(volume)
diff --git a/code/preferences.py b/code/preferences.py
index 33bcdb5..12be476 100644
--- a/code/preferences.py
+++ b/code/preferences.py
@@ -162,6 +162,12 @@ class Preferences:
def get_music_volume(self):
return float(self.get('general', 'music_volume'))
+ def get_default_setlist(self):
+ return self.get('general', 'use_default_setlist')
+
+ def get_music_dir(self):
+ return self.get('general', 'music_dir')
+
fullscreen = property(get_fullscreen)
resolution = property(get_resolution)
key_up = property(get_key_up)
@@ -199,3 +205,5 @@ class Preferences:
joy_id = property(get_joy_id)
input = property(get_input)
music_volume = property(get_music_volume)
+ default_setlist = property(get_default_setlist)
+ music_dir = property(get_music_dir)
diff --git a/data/default_preferences.cfg b/data/default_preferences.cfg
index 6433dce..f233207 100644
--- a/data/default_preferences.cfg
+++ b/data/default_preferences.cfg
@@ -58,4 +58,7 @@ sensitivity = 0.6
# input can be mouse, keyboard, joystick_analogic, joystick_d-pad
input = mouse
music_volume = 0.8
+# it should be left blank if you don't want to play the default setlist
use_default_setlist = True
+# music dir can be provided as a search place for ogg file
+music_dir =
-----------------------------------------------------------------------
Summary of changes:
code/actor.py | 2 +-
code/bullet.py | 24 +++++++++++
code/game.py | 30 +++++++------
code/music.py | 9 +++-
code/player.py | 19 ++++++--
code/power_up.py | 10 ++--
code/preferences.py | 13 +++---
code/secondary_weapon.py | 20 +++++-----
code/stage.py | 80 +++++++++++++++---------------------
data/default_preferences.cfg | 3 +
data/graphic/player_sw_elet.png | Bin 0 -> 582 bytes
data/graphic/sw_elet.png | Bin 0 -> 1244 bytes
data/stage1.xml | 86 ++++++++++++++++++++++++++++++--------
13 files changed, 188 insertions(+), 108 deletions(-)
create mode 100644 data/graphic/player_sw_elet.png
create mode 100644 data/graphic/sw_elet.png
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|
|
From: Bruno C. L. <bru...@gm...> - 2009-12-05 18:49:37
|
> if behaviour == "normal": > speed = [-4, 0] > elif behaviour == "fast": > speed = [-7, 0] > elif behaviour == "diagonal": > speed = [-3, 1] > + elif behaviour == "seeker": > + speed = [-3, 1] > + elif behaviour == "zigzag": > + speed = [-3, 1] Uma ideia: Isso aqui a gente poderia trocar por um dicionário com diversos tipos de coisa, por exemplo: speed = behavior['seeker']['speed'] dae o codigo ficaria automatico pra essas coisas tb -- Bruno Cardoso Lopes http://www.brunocardoso.cc |
|
From: João <lv...@us...> - 2009-12-05 18:43:52
|
This is an automated email from the git, the tree hashes are:
via e34e5b37510b74bd665338bc43a14f434ec1ef4d (commit)
via 978658525405dc2f1bdf72b0ee63cf8107950487 (commit)
from 9bf3725e8aab7ebc9785d91f94b750d733a98a4e (commit)
- Log -----------------------------------------------------------------
commit e34e5b37510b74bd665338bc43a14f434ec1ef4d
Merge: 9786585 9bf3725
Author: João <jcorrea@marvim.(none)>
Date: Sat Dec 5 16:43:30 2009 -0200
Merge branch 'master' of ssh://lvwr@deadchannel.git.sourceforge.net/gitroot/deadchannel/deadchannel
commit 978658525405dc2f1bdf72b0ee63cf8107950487
Author: João <jcorrea@marvim.(none)>
Date: Sat Dec 5 16:42:52 2009 -0200
Added support to different enemy behaviours
diff --git a/code/bullet.py b/code/bullet.py
index a5962b6..de1a054 100644
--- a/code/bullet.py
+++ b/code/bullet.py
@@ -27,7 +27,7 @@ class Bullet(GameObject):
if list != None:
self.add(list)
- def update(self, dt, ms):
+ def update(self, dt, ms, *args):
GameObject.update(self, dt, ms)
if self.max_distance == -1:
return
@@ -69,7 +69,7 @@ class GuidedBullet(Bullet):
self.enemy_list = enemy_list
self.target = self.lock_target()
- def update(self, dt, ms):
+ def update(self, dt, ms, *args):
"""
Set speed before calling Bullet update method.
Speed will be set to keep the bullet following the target.
diff --git a/code/enemy.py b/code/enemy.py
index 35fb369..1a1d622 100644
--- a/code/enemy.py
+++ b/code/enemy.py
@@ -29,16 +29,48 @@ class Enemy(Actor):
Creates an enemy character that could has one of the following
behaves: normal, fast, or diagonal.
"""
+
+ self.counter = 1
+ self.orientation = True
+ self.behaviour = behaviour
if behaviour == "normal":
speed = [-4, 0]
elif behaviour == "fast":
speed = [-7, 0]
elif behaviour == "diagonal":
speed = [-3, 1]
+ elif behaviour == "seeker":
+ speed = [-3, 1]
+ elif behaviour == "zigzag":
+ speed = [-3, 1]
Actor.__init__(self, position, rotation, life, speed,
rotation_speed, image)
+ def update(self, dt, ms, counter, x, y):
+ if self.behaviour == "zigzag":
+ if self.counter % 15 == 0:
+ if self.orientation == False:
+ self.speed = [-3, -8]
+ self.orientation = True
+ else:
+ self.speed = [-3, 8]
+ self.orientation = False
+ elif self.behaviour == "seeker":
+ if self.counter %2 == 0:
+ if self.orientation == True:
+ e_x, e_y = self.get_pos()
+ if e_y > y:
+ self.speed = [-3, -1]
+ elif e_y < y:
+ self.speed = [-3, 1]
+ else:
+ self.speed = [-3, 0]
+ else:
+ self.speed = [-3, 0]
+ self.counter = self.counter + 1
+ Actor.update(self, dt, ms)
+
def get_behaviours():
"""
Returns a list with all the possible behaviours
diff --git a/code/game.py b/code/game.py
index 742900d..d90cb68 100644
--- a/code/game.py
+++ b/code/game.py
@@ -313,8 +313,10 @@ class Game:
"""
self.background.update(dt)
+ x, y = self.player.get_pos()
+
for actor in self.actors_list.values():
- actor.update(dt, ms)
+ actor.update(dt, ms, self.counter, x, y)
self.hud.update(self.screen, ms)
@@ -386,7 +388,7 @@ class Game:
# increase xp based on hits
self.player.set_xp(self.player.get_xp() + len(hitted))
- def manage_elements(self, stage, counter):
+ def manage_elements(self, stage):
"""
Creates enemies and itens based on the xml parsed file
"""
@@ -400,7 +402,7 @@ class Game:
self.ticks = 0
# creates enemies based on xml file
- L = stage.pop(counter)
+ L = stage.pop(self.counter)
for element in L:
if element.type == "enemy":
# FIX: Create enemies and itens similarly (create a generic class)
@@ -437,7 +439,7 @@ class Game:
# loads stage configuration
stage = Stage("stage1.xml")
stage.buildStage()
- counter = 0
+ self.counter = 0
# creates the background
self.background = Background("tile.png")
@@ -480,10 +482,10 @@ class Game:
self.actors_act()
# create enemies based on xml file
- self.manage_elements(stage, counter)
+ self.manage_elements(stage)
# draw the elements to the back buffer
self.actors_draw()
# flip the front and back buffer
pygame.display.flip()
- counter += 1
+ self.counter += 1
diff --git a/code/game_object.py b/code/game_object.py
index c4bcbde..b58f169 100644
--- a/code/game_object.py
+++ b/code/game_object.py
@@ -40,7 +40,7 @@ class GameObject(pygame.sprite.Sprite):
self.set_speed(speed or (0,0))
self.set_rotation_speed(rotation_speed)
- def update(self, dt, ms):
+ def update(self, dt, ms, *args):
"""
Updates the position and rotation angle and destroy the object
if it's out of the screen
diff --git a/code/player.py b/code/player.py
index fd2303b..6665908 100644
--- a/code/player.py
+++ b/code/player.py
@@ -31,7 +31,7 @@ class Player(Actor):
Actor.__init__(self, position, rotation, life, [0, 0], 0, image)
self.set_xp(0)
- def update(self, dt, ms):
+ def update(self, dt, ms, *args):
"""
Override GameObjecte update()
Keep the player inside the screen instead of killing it
diff --git a/code/power_up.py b/code/power_up.py
index 82aaf59..aff7ffc 100644
--- a/code/power_up.py
+++ b/code/power_up.py
@@ -26,7 +26,7 @@ class PowerUp(GameObject):
self.special = special
self.set_life_time(life_time)
- def update(self, dt, ms):
+ def update(self, dt, ms, *args):
"""
Overrides GameObject update
"""
diff --git a/code/stage.py b/code/stage.py
index b21f907..a8be1a1 100644
--- a/code/stage.py
+++ b/code/stage.py
@@ -106,10 +106,6 @@ class Stage:
while nextx == position:
subList.append(self.L.pop())
nextx = self.getNextX()
- print(len(subList))
- print(len(self.L))
- print(position)
- print(nextx)
return subList
def buildStage(self):
diff --git a/data/stage1.xml b/data/stage1.xml
index 4f3363c..54dd5b7 100644
--- a/data/stage1.xml
+++ b/data/stage1.xml
@@ -14,18 +14,18 @@
<speed>0</speed>
<life>1</life>
<image>none</image>
- <behaviour>normal</behaviour>
+ <behaviour>zigzag</behaviour>
<special>0</special>
</item>
<item>
<type>enemy</type>
- <cc>120</cc>
+ <cc>200</cc>
<pos_x>0</pos_x>
<pos_y>30</pos_y>
<speed>0</speed>
<life>1</life>
<image>none</image>
- <behaviour>normal</behaviour>
+ <behaviour>seeker</behaviour>
<special>0</special>
</item>
<item>
-----------------------------------------------------------------------
Summary of changes:
code/bullet.py | 4 ++--
code/enemy.py | 32 ++++++++++++++++++++++++++++++++
code/game.py | 14 ++++++++------
code/game_object.py | 2 +-
code/player.py | 2 +-
code/power_up.py | 2 +-
code/stage.py | 4 ----
data/stage1.xml | 6 +++---
8 files changed, 48 insertions(+), 18 deletions(-)
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|
|
From: Bruno C. <bru...@us...> - 2009-12-05 06:20:00
|
This is an automated email from the git, the tree hashes are:
via 9bf3725e8aab7ebc9785d91f94b750d733a98a4e (commit)
from 5764f65142d71ba87f867018cd5f9e0986284d0d (commit)
- Log -----------------------------------------------------------------
commit 9bf3725e8aab7ebc9785d91f94b750d733a98a4e
Author: Bruno Cardoso Lopes <bruno@keyser.(none)>
Date: Sat Dec 5 04:18:46 2009 -0200
Shrink down code to gather preferences and auto generate everything! ;)
diff --git a/code/preferences.py b/code/preferences.py
index 453fac5..8527df6 100644
--- a/code/preferences.py
+++ b/code/preferences.py
@@ -11,10 +11,10 @@
# ----------------------------------------------------------------------
import ConfigParser
-import os
+import os, re
import shutil
-class Preferences:
+class Preferences(object):
def __init__(self, filename, default_filename):
self.conf = ConfigParser.ConfigParser()
self.default_conf = ConfigParser.ConfigParser()
@@ -35,6 +35,9 @@ class Preferences:
print "Warning: Not creating preferences backup file"
self.copy_default(default_filename, filename)
+ # autogenerate the attributes for each item on the config file.
+ self.autogen_attributes()
+
def copy_default(self, default_filename, filename):
try:
shutil.copy(default_filename, filename)
@@ -42,164 +45,38 @@ class Preferences:
except IOError:
print "Warning: preferences file couldn't be created"
- def get(self, section, option):
- if not self.conf.has_section(section) or \
- not self.conf.has_option(section, option):
- return self.default_conf.get(section, option)
- return self.conf.get(section, option)
-
- def get_screen_resolution(self):
- res = self.get('screen', 'resolution')
- res = res .lower()
- res = res.split("x")
- return [ int(res[0]), int(res[1])]
-
- def get_screen_fullscreen(self):
- return self.get('screen', 'fullscreen')
-
- def get_keyboard_up(self):
- return int(self.get('keyboard', 'up'))
-
- def get_keyboard_down(self):
- return int(self.get('keyboard', 'down'))
-
- def get_keyboard_right(self):
- return int(self.get('keyboard', 'right'))
-
- def get_keyboard_left(self):
- return int(self.get('keyboard', 'left'))
-
- def get_keyboard_fire(self):
- return int(self.get('keyboard', 'fire'))
-
- def get_keyboard_secondary_fire(self):
- return int(self.get('keyboard', 'secondary_fire'))
-
- def get_keyboard_rot_clock(self):
- return int(self.get('keyboard', 'rot_clock'))
-
- def get_keyboard_rot_anti_clock(self):
- return int(self.get('keyboard', 'rot_anti_clock'))
-
- def get_keyboard_player_play(self):
- return int(self.get('keyboard', 'player_play'))
-
- def get_keyboard_player_stop(self):
- return int(self.get('keyboard', 'player_stop'))
-
- def get_keyboard_player_next_track(self):
- return int(self.get('keyboard', 'player_next_track'))
-
- def get_keyboard_prev_secondary_weapon(self):
- return int(self.get('keyboard', 'prev_secondary_weapon'))
-
- def get_keyboard_next_secondary_weapon(self):
- return int(self.get('keyboard', 'next_secondary_weapon'))
-
- def get_keyboard_toogle_fullscreen(self):
- return int(self.get('keyboard', 'toogle_fullscreen'))
-
- def get_mouse_sensitivity(self):
- return float(self.get('mouse', 'sensitivity'))
-
- def get_mouse_fire(self):
- return int(self.get('mouse', 'fire'))
-
- def get_mouse_secondary_fire(self):
- return int(self.get('mouse', 'secondary_fire'))
-
- def get_mouse_prev_secondary_weapon(self):
- return int(self.get('mouse', 'prev_secondary_weapon'))
-
- def get_mouse_next_secondary_weapon(self):
- return int(self.get('mouse', 'next_secondary_weapon'))
-
- def get_joystick_axis_x(self):
- return int(self.get('joystick', 'axis_x'))
-
- def get_joystick_axis_y(self):
- return int(self.get('joystick', 'axis_y'))
-
- def get_joystick_axis_z(self):
- return int(self.get('joystick', 'axis_z'))
-
- def get_joystick_fire(self):
- return int(self.get('joystick', 'fire'))
-
- def get_joystick_secondary_fire(self):
- return int(self.get('joystick', 'secondary_fire'))
-
- def get_joystick_rot_clock(self):
- return int(self.get('joystick', 'rot_clock'))
-
- def get_joystick_rot_anti_clock(self):
- return int(self.get('joystick', 'rot_anti_clock'))
-
- def get_joystick_player_play(self):
- return int(self.get('joystick', 'player_play'))
-
- def get_joystick_player_stop(self):
- return int(self.get('joystick', 'player_stop'))
-
- def get_joystick_player_next_track(self):
- return int(self.get('joystick', 'player_next_track'))
-
- def get_joystick_prev_secondary_weapon(self):
- return int(self.get('joystick', 'prev_secondary_weapon'))
-
- def get_joystick_next_secondary_weapon(self):
- return int(self.get('joystick', 'next_secondary_weapon'))
-
- def get_joystick_sensitivity(self):
- return float(self.get('joystick', 'sensitivity'))
-
- def get_joystick_deadzone(self):
- return float(self.get('joystick', 'deadzone'))
-
- def get_joystick_id(self):
- return int(self.get('joystick', 'id'))
-
- def get_general_input(self):
- return self.get('general', 'input')
-
- def get_general_music_volume(self):
- return float(self.get('general', 'music_volume'))
+ def parse_config_item(self, value):
+ """
+ Gather the type we're dealing with and return the value
+ on its real type.
+ """
+ resolution_type = lambda s: [ int(s.split("x")[0]),
+ int(s.split("x")[1]) ]
+
+ patterns = [ [resolution_type, re.compile("[0-9]+x[0-9]+")],
+ [float, re.compile("[0-9]+\.[0-9]+")],
+ [int, re.compile("[0-9]+")],
+ [str, re.compile(".*")] ]
+
+ for ty, regex in patterns:
+ if regex.match(value):
+ return ty(value)
+
+ def autogen_attributes(self):
+ """
+ Get tuples from ConfigParser and autogenerate attributes
+ based on the section and preference name, example:
+ [keyboard]
+ up = 273
+ down = ...
+ This should turn into:
+ self.keyboard_up = 273
+ self.keyboard_down = ...
+ """
+ for section in self.conf.sections():
+ for item, value in self.conf.items(section):
+ attr_name = "%s_%s" % (section, item)
+ attr_value = self.parse_config_item(value)
+ self.__setattr__(attr_name, attr_value)
+ print section, item, attr_value
- screen_fullscreen = property(get_screen_fullscreen)
- screen_resolution = property(get_screen_resolution)
- keyboard_up = property(get_keyboard_up)
- keyboard_down = property(get_keyboard_down)
- keyboard_right = property(get_keyboard_right)
- keyboard_left = property(get_keyboard_left)
- keyboard_fire = property(get_keyboard_fire)
- keyboard_secondary_fire = property(get_keyboard_secondary_fire)
- keyboard_rot_clock = property(get_keyboard_rot_clock)
- keyboard_rot_anti_clock = property(get_keyboard_rot_anti_clock)
- keyboard_player_play = property(get_keyboard_player_play)
- keyboard_player_stop = property(get_keyboard_player_stop)
- keyboard_player_next_track = property(get_keyboard_player_next_track)
- keyboard_prev_secondary_weapon = property(get_keyboard_prev_secondary_weapon)
- keyboard_next_secondary_weapon = property(get_keyboard_next_secondary_weapon)
- keyboard_toogle_fullscreen = property(get_keyboard_toogle_fullscreen)
- mouse_sensitivity = property(get_mouse_sensitivity)
- mouse_fire = property(get_mouse_fire)
- mouse_secondary_fire = property(get_mouse_secondary_fire)
- mouse_prev_secondary_weapon = property(get_mouse_prev_secondary_weapon)
- mouse_next_secondary_weapon = property(get_mouse_next_secondary_weapon)
- joystick_axis_x = property(get_joystick_axis_x)
- joystick_axis_y = property(get_joystick_axis_y)
- joystick_axis_z = property(get_joystick_axis_z)
- joystick_fire = property(get_joystick_fire)
- joystick_secondary_fire = property(get_joystick_secondary_fire)
- joystick_rot_clock = property(get_joystick_rot_clock)
- joystick_rot_anti_clock = property(get_joystick_rot_anti_clock)
- joystick_player_play = property(get_joystick_player_play)
- joystick_player_stop = property(get_joystick_player_stop)
- joystick_player_next_track = property(get_joystick_player_next_track)
- joystick_prev_secondary_weapon = property(get_joystick_prev_secondary_weapon)
- joystick_next_secondary_weapon = property(get_joystick_next_secondary_weapon)
- joystick_sensitivity = property(get_joystick_sensitivity)
- joystick_deadzone = property(get_joystick_deadzone)
- joystick_id = property(get_joystick_id)
- general_input = property(get_general_input)
- general_music_volume = property(get_general_music_volume)
-----------------------------------------------------------------------
Summary of changes:
code/preferences.py | 201 ++++++++++-----------------------------------------
1 files changed, 39 insertions(+), 162 deletions(-)
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|
|
From: Bruno C. <bru...@us...> - 2009-12-05 05:21:47
|
This is an automated email from the git, the tree hashes are:
via 5764f65142d71ba87f867018cd5f9e0986284d0d (commit)
from 42619777c8db4f0fe39ad1171d03b9b595107c27 (commit)
- Log -----------------------------------------------------------------
commit 5764f65142d71ba87f867018cd5f9e0986284d0d
Author: Bruno Cardoso Lopes <bruno@keyser.(none)>
Date: Sat Dec 5 03:21:31 2009 -0200
rename some vars and function to avoid shadowing builtins
diff --git a/deadchannel.py b/deadchannel.py
index c237f90..8947aac 100755
--- a/deadchannel.py
+++ b/deadchannel.py
@@ -19,7 +19,7 @@ import os
# imports parser for command line arguments in sys.argv
import getopt
-def help():
+def help_message():
"""
Prints basic help for this game.
"""
@@ -50,7 +50,7 @@ def parse_opts(argv):
for o, a in opts:
if o in ("-h", "--help"):
usage()
- help()
+ help_message()
sys.exit(0)
def main(argv):
@@ -59,9 +59,9 @@ def main(argv):
"""
# set directories and files
abspath = os.path.abspath(argv[0])
- dir = os.path.dirname(abspath)
- DATADIR = os.path.join(dir, 'data')
- CODEDIR = os.path.join(dir, 'code')
+ tmpdir = os.path.dirname(abspath)
+ DATADIR = os.path.join(tmpdir, 'data')
+ CODEDIR = os.path.join(tmpdir, 'code')
DEFPREFFILE = os.path.join(DATADIR, 'default_preferences.cfg')
if os.name == 'posix':
HOMEDIR = os.environ['HOME']
-----------------------------------------------------------------------
Summary of changes:
deadchannel.py | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|
|
From: Bruno C. <bru...@us...> - 2009-12-05 05:16:43
|
This is an automated email from the git, the tree hashes are:
via 42619777c8db4f0fe39ad1171d03b9b595107c27 (commit)
via c9c703167bd55f3d24d72005547d749c6bb50050 (commit)
from 71889b94137ca9a043dc8b14ac85cb7176ac5170 (commit)
- Log -----------------------------------------------------------------
commit 42619777c8db4f0fe39ad1171d03b9b595107c27
Merge: c9c7031 71889b9
Author: Bruno Cardoso Lopes <bruno@keyser.(none)>
Date: Sat Dec 5 03:16:26 2009 -0200
Merge branch 'master' of ssh://brunocardoso@deadchannel.git.sourceforge.net/gitroot/deadchannel/deadchannel
commit c9c703167bd55f3d24d72005547d749c6bb50050
Author: Bruno Cardoso Lopes <bruno@keyser.(none)>
Date: Sat Dec 5 03:14:56 2009 -0200
Rename preferences consistently, for example:
[name]
lixo = 1
This should turn into => preferences.name_lixo
diff --git a/code/game.py b/code/game.py
index e63c513..13bc446 100644
--- a/code/game.py
+++ b/code/game.py
@@ -48,10 +48,10 @@ class Game:
self.preferences = preferences
pygame.init()
flags = DOUBLEBUF
- if preferences.fullscreen:
+ if preferences.screen_fullscreen:
flags |= FULLSCREEN
# create display
- self.screen = pygame.display.set_mode(preferences.resolution, flags)
+ self.screen = pygame.display.set_mode(preferences.screen_resolution, flags)
self.screen_size = self.screen.get_size()
# make mouse cursor invisible
@@ -137,57 +137,57 @@ class Game:
if key == K_ESCAPE:
self.run = False
- if preferences.input in ("mouse", "keyboard"):
+ if preferences.general_input in ("mouse", "keyboard"):
if type == KEYDOWN:
- if key == preferences.key_up:
+ if key == preferences.keyboard_up:
player.accel_top()
- elif key == preferences.key_down:
+ elif key == preferences.keyboard_down:
player.accel_bottom()
- elif key == preferences.key_right:
+ elif key == preferences.keyboard_right:
player.accel_right()
- elif key == preferences.key_left:
+ elif key == preferences.keyboard_left:
player.accel_left()
- elif key == preferences.key_player_play:
+ elif key == preferences.keyboard_player_play:
self.music_player.play()
- elif key == preferences.key_player_stop:
+ elif key == preferences.keyboard_player_stop:
self.music_player.stop()
- elif key == preferences.key_player_next_track:
+ elif key == preferences.keyboard_player_next_track:
self.music_player.next_track()
- elif key == preferences.key_prev_secondary_weapon:
+ elif key == preferences.keyboard_prev_secondary_weapon:
player.prev_secondary_weapon()
- elif key == preferences.key_next_secondary_weapon:
+ elif key == preferences.keyboard_next_secondary_weapon:
player.next_secondary_weapon()
- elif key == preferences.key_toogle_fullscreen:
+ elif key == preferences.keyboard_toogle_fullscreen:
pygame.display.toggle_fullscreen()
elif type == KEYUP:
- if key == preferences.key_down:
+ if key == preferences.keyboard_down:
player.accel_top()
- elif key == preferences.key_up:
+ elif key == preferences.keyboard_up:
player.accel_bottom()
- elif key == preferences.key_left:
+ elif key == preferences.keyboard_left:
player.accel_right()
- elif key == preferences.key_right:
+ elif key == preferences.keyboard_right:
player.accel_left()
- if preferences.input == "keyboard":
+ if preferences.general_input == "keyboard":
if type == KEYDOWN:
- if key == preferences.key_fire:
+ if key == preferences.keyboard_fire:
player_fire = True
self.player_firing = True
- elif key == preferences.key_secondary_fire:
+ elif key == preferences.keyboard_secondary_fire:
self.player_charging = 0
- elif key == preferences.key_rot_clock:
+ elif key == preferences.keyboard_rot_clock:
player.rotate_clock(self.rot_accel)
- elif key == preferences.key_rot_anti_clock:
+ elif key == preferences.keyboard_rot_anti_clock:
player.rotate_clock(-self.rot_accel)
elif type == KEYUP:
- if key == preferences.key_rot_clock:
+ if key == preferences.keyboard_rot_clock:
player.rotate_clock(-self.rot_accel)
- elif key == preferences.key_rot_anti_clock:
+ elif key == preferences.keyboard_rot_anti_clock:
player.rotate_clock(self.rot_accel)
- elif key == preferences.key_fire:
+ elif key == preferences.keyboard_fire:
self.player_firing = False
- elif key == preferences.key_secondary_fire:
+ elif key == preferences.keyboard_secondary_fire:
sw = player.get_selected_secondary_weapon()
if sw == None:
continue
@@ -196,7 +196,7 @@ class Game:
self.actors_list["enemies"],
self.player_charging)
- elif preferences.input == "mouse":
+ elif preferences.general_input == "mouse":
if type == MOUSEBUTTONDOWN:
# mouse left button is 1, middle is 2, and right is 3
if button == preferences.mouse_fire:
@@ -235,28 +235,28 @@ class Game:
preferences.mouse_sensitivity)
player.set_rotation(rot)
- elif preferences.input in ("joystick_analogic",
+ elif preferences.general_input in ("joystick_analogic",
"joystick_d-pad"):
- if type == JOYBUTTONDOWN and joy_id == preferences.joy_id:
- if button == preferences.j_bt_fire:
+ if type == JOYBUTTONDOWN and joy_id == preferences.joystick_id:
+ if button == preferences.joystick_fire:
player_fire = True
self.player_firing = True
- elif button == preferences.j_bt_secondary_fire:
+ elif button == preferences.joystick_secondary_fire:
self.player_charging = 0
- elif button == preferences.j_bt_player_play:
+ elif button == preferences.joystick_player_play:
self.music_player.play()
- elif button == preferences.j_bt_player_stop:
+ elif button == preferences.joystick_player_stop:
self.music_player.stop()
- elif button == preferences.j_bt_player_next_track:
+ elif button == preferences.joystick_player_next_track:
self.music_player.next_track()
- elif button == preferences.j_bt_prev_secondary_weapon:
+ elif button == preferences.joystick_prev_secondary_weapon:
player.prev_secondary_weapon()
- elif button == preferences.j_bt_next_secondary_weapon:
+ elif button == preferences.joystick_next_secondary_weapon:
player.next_secondary_weapon()
- elif type == JOYBUTTONUP and joy_id == preferences.joy_id:
- if button == preferences.j_bt_fire:
+ elif type == JOYBUTTONUP and joy_id == preferences.joystick_id:
+ if button == preferences.joystick_fire:
self.player_firing = False
- elif button == preferences.j_bt_secondary_fire:
+ elif button == preferences.joystick_secondary_fire:
sw = player.get_selected_secondary_weapon()
if sw == None:
continue
@@ -266,41 +266,41 @@ class Game:
self.player_charging)
- if preferences.input == "joystick_analogic":
- if type == JOYAXISMOTION and joy_id == preferences.joy_id:
+ if preferences.general_input == "joystick_analogic":
+ if type == JOYAXISMOTION and joy_id == preferences.joystick_id:
if axis == preferences.j_axis_x:
- if abs(value) > preferences.joy_deadzone:
- h_speed = value * preferences.joy_sensitivity
+ if abs(value) > preferences.joystick_deadzone:
+ h_speed = value * preferences.joystick_sensitivity
else:
h_speed = 0
player.set_speed([h_speed, player.get_speed()[1]])
elif axis == preferences.j_axis_y:
- if abs(value) > preferences.joy_deadzone:
- v_speed = value * preferences.joy_sensitivity
+ if abs(value) > preferences.joystick_deadzone:
+ v_speed = value * preferences.joystick_sensitivity
else:
v_speed = 0
player.set_speed([player.get_speed()[0], v_speed])
elif axis == preferences.j_axis_z:
- if abs(value) < preferences.joy_deadzone:
+ if abs(value) < preferences.joystick_deadzone:
value = 0
- rot_speed = int(value* preferences.joy_sensitivity)
+ rot_speed = int(value* preferences.joystick_sensitivity)
player.set_rotation_speed(rot_speed)
- elif preferences.input == "joystick_d-pad":
- if type == JOYHATMOTION and joy_id == preferences.joy_id:
+ elif preferences.general_input == "joystick_d-pad":
+ if type == JOYHATMOTION and joy_id == preferences.joystick_id:
accel = player.get_accel()
speed = [value[0] * accel[0], -value[1] * accel[1]]
player.set_speed(speed)
elif type == JOYBUTTONDOWN and \
- joy_id == preferences.joy_id:
- if button == preferences.j_bt_rot_clock:
+ joy_id == preferences.joystick_id:
+ if button == preferences.joystick_rot_clock:
player.rotate_clock(self.rot_accel)
- elif button == preferences.j_bt_rot_anti_clock:
+ elif button == preferences.joystick_rot_anti_clock:
player.rotate_clock(-self.rot_accel)
- elif type == JOYBUTTONUP and joy_id == preferences.joy_id:
- if button == preferences.j_bt_rot_clock:
+ elif type == JOYBUTTONUP and joy_id == preferences.joystick_id:
+ if button == preferences.joystick_rot_clock:
player.rotate_clock(-self.rot_accel)
- elif button == preferences.j_bt_rot_anti_clock:
+ elif button == preferences.joystick_rot_anti_clock:
player.rotate_clock(self.rot_accel)
if player_fire or self.player_firing:
@@ -461,7 +461,7 @@ class Game:
# loads music player
self.music_player = Music_player(
- self.hud, self.preferences.music_volume)
+ self.hud, self.preferences.general_music_volume)
# loads next music
self.music_player.load_next()
# Starts playing music
diff --git a/code/preferences.py b/code/preferences.py
index 9366c9d..453fac5 100644
--- a/code/preferences.py
+++ b/code/preferences.py
@@ -48,55 +48,55 @@ class Preferences:
return self.default_conf.get(section, option)
return self.conf.get(section, option)
- def get_resolution(self):
+ def get_screen_resolution(self):
res = self.get('screen', 'resolution')
res = res .lower()
res = res.split("x")
return [ int(res[0]), int(res[1])]
- def get_fullscreen(self):
+ def get_screen_fullscreen(self):
return self.get('screen', 'fullscreen')
- def get_key_up(self):
+ def get_keyboard_up(self):
return int(self.get('keyboard', 'up'))
- def get_key_down(self):
+ def get_keyboard_down(self):
return int(self.get('keyboard', 'down'))
- def get_key_right(self):
+ def get_keyboard_right(self):
return int(self.get('keyboard', 'right'))
- def get_key_left(self):
+ def get_keyboard_left(self):
return int(self.get('keyboard', 'left'))
- def get_key_fire(self):
+ def get_keyboard_fire(self):
return int(self.get('keyboard', 'fire'))
- def get_key_secondary_fire(self):
+ def get_keyboard_secondary_fire(self):
return int(self.get('keyboard', 'secondary_fire'))
- def get_key_rot_clock(self):
+ def get_keyboard_rot_clock(self):
return int(self.get('keyboard', 'rot_clock'))
- def get_key_rot_anti_clock(self):
+ def get_keyboard_rot_anti_clock(self):
return int(self.get('keyboard', 'rot_anti_clock'))
- def get_key_player_play(self):
+ def get_keyboard_player_play(self):
return int(self.get('keyboard', 'player_play'))
- def get_key_player_stop(self):
+ def get_keyboard_player_stop(self):
return int(self.get('keyboard', 'player_stop'))
- def get_key_player_next_track(self):
+ def get_keyboard_player_next_track(self):
return int(self.get('keyboard', 'player_next_track'))
- def get_key_prev_secondary_weapon(self):
+ def get_keyboard_prev_secondary_weapon(self):
return int(self.get('keyboard', 'prev_secondary_weapon'))
- def get_key_next_secondary_weapon(self):
+ def get_keyboard_next_secondary_weapon(self):
return int(self.get('keyboard', 'next_secondary_weapon'))
- def get_key_toogle_fullscreen(self):
+ def get_keyboard_toogle_fullscreen(self):
return int(self.get('keyboard', 'toogle_fullscreen'))
def get_mouse_sensitivity(self):
@@ -114,92 +114,92 @@ class Preferences:
def get_mouse_next_secondary_weapon(self):
return int(self.get('mouse', 'next_secondary_weapon'))
- def get_joy_axis_x(self):
+ def get_joystick_axis_x(self):
return int(self.get('joystick', 'axis_x'))
- def get_joy_axis_y(self):
+ def get_joystick_axis_y(self):
return int(self.get('joystick', 'axis_y'))
- def get_joy_axis_z(self):
+ def get_joystick_axis_z(self):
return int(self.get('joystick', 'axis_z'))
- def get_joy_fire(self):
+ def get_joystick_fire(self):
return int(self.get('joystick', 'fire'))
- def get_joy_secondary_fire(self):
+ def get_joystick_secondary_fire(self):
return int(self.get('joystick', 'secondary_fire'))
- def get_joy_rot_clock(self):
+ def get_joystick_rot_clock(self):
return int(self.get('joystick', 'rot_clock'))
- def get_joy_rot_anti_clock(self):
+ def get_joystick_rot_anti_clock(self):
return int(self.get('joystick', 'rot_anti_clock'))
- def get_joy_player_play(self):
+ def get_joystick_player_play(self):
return int(self.get('joystick', 'player_play'))
- def get_joy_player_stop(self):
+ def get_joystick_player_stop(self):
return int(self.get('joystick', 'player_stop'))
- def get_joy_player_next_track(self):
+ def get_joystick_player_next_track(self):
return int(self.get('joystick', 'player_next_track'))
- def get_joy_prev_secondary_weapon(self):
+ def get_joystick_prev_secondary_weapon(self):
return int(self.get('joystick', 'prev_secondary_weapon'))
- def get_joy_next_secondary_weapon(self):
+ def get_joystick_next_secondary_weapon(self):
return int(self.get('joystick', 'next_secondary_weapon'))
- def get_joy_sensitivity(self):
+ def get_joystick_sensitivity(self):
return float(self.get('joystick', 'sensitivity'))
- def get_joy_deadzone(self):
+ def get_joystick_deadzone(self):
return float(self.get('joystick', 'deadzone'))
- def get_joy_id(self):
+ def get_joystick_id(self):
return int(self.get('joystick', 'id'))
- def get_input(self):
+ def get_general_input(self):
return self.get('general', 'input')
- def get_music_volume(self):
+ def get_general_music_volume(self):
return float(self.get('general', 'music_volume'))
- fullscreen = property(get_fullscreen)
- resolution = property(get_resolution)
- key_up = property(get_key_up)
- key_down = property(get_key_down)
- key_right = property(get_key_right)
- key_left = property(get_key_left)
- key_fire = property(get_key_fire)
- key_secondary_fire = property(get_key_secondary_fire)
- key_rot_clock = property(get_key_rot_clock)
- key_rot_anti_clock = property(get_key_rot_anti_clock)
- key_player_play = property(get_key_player_play)
- key_player_stop = property(get_key_player_stop)
- key_player_next_track = property(get_key_player_next_track)
- key_prev_secondary_weapon = property(get_key_prev_secondary_weapon)
- key_next_secondary_weapon = property(get_key_next_secondary_weapon)
- key_toogle_fullscreen = property(get_key_toogle_fullscreen)
+ screen_fullscreen = property(get_screen_fullscreen)
+ screen_resolution = property(get_screen_resolution)
+ keyboard_up = property(get_keyboard_up)
+ keyboard_down = property(get_keyboard_down)
+ keyboard_right = property(get_keyboard_right)
+ keyboard_left = property(get_keyboard_left)
+ keyboard_fire = property(get_keyboard_fire)
+ keyboard_secondary_fire = property(get_keyboard_secondary_fire)
+ keyboard_rot_clock = property(get_keyboard_rot_clock)
+ keyboard_rot_anti_clock = property(get_keyboard_rot_anti_clock)
+ keyboard_player_play = property(get_keyboard_player_play)
+ keyboard_player_stop = property(get_keyboard_player_stop)
+ keyboard_player_next_track = property(get_keyboard_player_next_track)
+ keyboard_prev_secondary_weapon = property(get_keyboard_prev_secondary_weapon)
+ keyboard_next_secondary_weapon = property(get_keyboard_next_secondary_weapon)
+ keyboard_toogle_fullscreen = property(get_keyboard_toogle_fullscreen)
mouse_sensitivity = property(get_mouse_sensitivity)
mouse_fire = property(get_mouse_fire)
mouse_secondary_fire = property(get_mouse_secondary_fire)
mouse_prev_secondary_weapon = property(get_mouse_prev_secondary_weapon)
mouse_next_secondary_weapon = property(get_mouse_next_secondary_weapon)
- j_axis_x = property(get_joy_axis_x)
- j_axis_y = property(get_joy_axis_y)
- j_axis_z = property(get_joy_axis_z)
- j_bt_fire = property(get_joy_fire)
- j_bt_secondary_fire = property(get_joy_secondary_fire)
- j_bt_rot_clock = property(get_joy_rot_clock)
- j_bt_rot_anti_clock = property(get_joy_rot_anti_clock)
- j_bt_player_play = property(get_joy_player_play)
- j_bt_player_stop = property(get_joy_player_stop)
- j_bt_player_next_track = property(get_joy_player_next_track)
- j_bt_prev_secondary_weapon = property(get_joy_prev_secondary_weapon)
- j_bt_next_secondary_weapon = property(get_joy_next_secondary_weapon)
- joy_sensitivity = property(get_joy_sensitivity)
- joy_deadzone = property(get_joy_deadzone)
- joy_id = property(get_joy_id)
- input = property(get_input)
- music_volume = property(get_music_volume)
+ joystick_axis_x = property(get_joystick_axis_x)
+ joystick_axis_y = property(get_joystick_axis_y)
+ joystick_axis_z = property(get_joystick_axis_z)
+ joystick_fire = property(get_joystick_fire)
+ joystick_secondary_fire = property(get_joystick_secondary_fire)
+ joystick_rot_clock = property(get_joystick_rot_clock)
+ joystick_rot_anti_clock = property(get_joystick_rot_anti_clock)
+ joystick_player_play = property(get_joystick_player_play)
+ joystick_player_stop = property(get_joystick_player_stop)
+ joystick_player_next_track = property(get_joystick_player_next_track)
+ joystick_prev_secondary_weapon = property(get_joystick_prev_secondary_weapon)
+ joystick_next_secondary_weapon = property(get_joystick_next_secondary_weapon)
+ joystick_sensitivity = property(get_joystick_sensitivity)
+ joystick_deadzone = property(get_joystick_deadzone)
+ joystick_id = property(get_joystick_id)
+ general_input = property(get_general_input)
+ general_music_volume = property(get_general_music_volume)
-----------------------------------------------------------------------
Summary of changes:
code/game.py | 112 +++++++++++++++++++++---------------------
code/preferences.py | 132 +++++++++++++++++++++++++-------------------------
2 files changed, 122 insertions(+), 122 deletions(-)
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|
|
From: João <lv...@us...> - 2009-12-05 04:58:28
|
This is an automated email from the git, the tree hashes are:
via 71889b94137ca9a043dc8b14ac85cb7176ac5170 (commit)
via 091eca2725410724ca024a1a8134a126379d0410 (commit)
from 6d919fc872b07572540022ecfbdc34fbe97c502e (commit)
- Log -----------------------------------------------------------------
commit 71889b94137ca9a043dc8b14ac85cb7176ac5170
Merge: 091eca2 6d919fc
Author: João <jcorrea@marvim.(none)>
Date: Sat Dec 5 02:58:12 2009 -0200
Merge branch 'master' of ssh://lvwr@deadchannel.git.sourceforge.net/gitroot/deadchannel/deadchannel
commit 091eca2725410724ca024a1a8134a126379d0410
Author: João <jcorrea@marvim.(none)>
Date: Sat Dec 5 02:57:14 2009 -0200
More descriptive xml objects and better parser
diff --git a/code/game.py b/code/game.py
index 069eb42..67ee162 100644
--- a/code/game.py
+++ b/code/game.py
@@ -402,14 +402,15 @@ class Game:
for element in L:
if element.type == "enemy":
# FIX: Create enemies and itens similarly (create a generic class)
- enemy = Enemy([0, 0], element.rot, element.life, element.behaviour,
- element.rotspeed, self.image_enemy)
+ enemy = Enemy([0, 0], 0, element.life, element.behaviour,
+ 0, self.image_enemy)
size = enemy.get_size()
y = Random.randint(size[1] / 2, self.screen_size[1] - size[1] / 2)
pos = [self.screen_size[0] + size[0] / 2, y]
enemy.set_pos(pos)
# add sprite to group
self.actors_list["enemies"].add(enemy)
+ print("enemy")
elif element.type in ["first_aid_kit", "sw_mult", "sw_frag",
"sw_guided"]:
powerup = PowerUp([0,0], element.life,
@@ -421,6 +422,7 @@ class Game:
pos = [self.screen_size[0] + size[0] / 2, y]
powerup.set_pos(pos)
self.actors_list["powerups"].add(powerup)
+ print(element.type)
elif element.type == "background":
self.background.nextTile(element.image)
print "backgs"
diff --git a/code/stage.py b/code/stage.py
index 622c34b..b21f907 100644
--- a/code/stage.py
+++ b/code/stage.py
@@ -15,39 +15,85 @@ import xml.dom
import xml.dom.minidom
class Callable:
-
def __init__(self, anycallable):
self.__call__ = anycallable
class Item:
- def __init__(self, x, y, speed_x, speed_y, rot, rotspeed, life, image,
- type, behaviour, special):
- self.x = x
- self.y = y
- self.speed_x = speed_x
- self.speed_y = speed_y
- self.rot = rot
- self.rotspeed = rotspeed
- self.life = life
- self.image = image
- self.type = type
- self.behaviour = behaviour
- self.special = special
+ def __init__(self, node):
+ self.type = node.getElementsByTagName("type")[0].childNodes[0].nodeValue
+ self.cc = int(node.getElementsByTagName("cc")[0].childNodes[0].nodeValue)
+
+class Backg(Item):
+ def __init__(self, node):
+ Item.__init__(self, node)
+ self.image = node.getElementsByTagName("image")[0].childNodes[0].nodeValue
+ self.layer = node.getElementsByTagName("layer")[0].childNodes[0].nodeValue
+
+class Enemy(Item):
+ def __init__(self, node):
+ Item.__init__(self, node)
+ self.pos_x = node.getElementsByTagName("pos_x")[0].childNodes[0].nodeValue
+ self.pos_y = node.getElementsByTagName("pos_y")[0].childNodes[0].nodeValue
+ self.behaviour = node.getElementsByTagName("behaviour")[0].childNodes[0].nodeValue
+ self.life = node.getElementsByTagName("life")[0].childNodes[0].nodeValue
+ self.image = node.getElementsByTagName("image")[0].childNodes[0].nodeValue
+ self.speed = node.getElementsByTagName("speed")[0].childNodes[0].nodeValue
+
+class Sw(Item):
+ def __init__(self, node):
+ Item.__init__(self, node)
+ self.pos_x = node.getElementsByTagName("pos_x")[0].childNodes[0].nodeValue
+ self.pos_y = node.getElementsByTagName("pos_y")[0].childNodes[0].nodeValue
+ self.speed_x = node.getElementsByTagName("speed_y")[0].childNodes[0].nodeValue
+ self.speed_y = node.getElementsByTagName("speed_x")[0].childNodes[0].nodeValue
+ self.name = node.getElementsByTagName("name")[0].childNodes[0].nodeValue
+ self.ammo = node.getElementsByTagName("ammo")[0].childNodes[0].nodeValue
+ self.max_ammo = node.getElementsByTagName("max_ammo")[0].childNodes[0].nodeValue
+ self.cooldown = node.getElementsByTagName("cooldown")[0].childNodes[0].nodeValue
+ self.heating = node.getElementsByTagName("heating")[0].childNodes[0].nodeValue
+ self.time = node.getElementsByTagName("time")[0].childNodes[0].nodeValue
+
+class Mult(Sw):
+ def __init__(self, node):
+ Sw.__init__(self, node)
+ self.special1 = node.getElementsByTagName("special1")[0].childNodes[0].nodeValue
+ self.special2 = node.getElementsByTagName("special2")[0].childNodes[0].nodeValue
+
+class Frag(Sw):
+ def __init__(self, node):
+ Sw.__init__(self, node)
+ self.special1 = node.getElementsByTagName("special1")[0].childNodes[0].nodeValue
+ self.max_charge = node.getElementsByTagName("max_charge")[0].childNodes[0].nodeValue
+
+class Guided(Sw):
+ def __init__(self, node):
+ Sw.__init__(self, node)
+ self.special1 = node.getElementsByTagName("special1")[0].childNodes[0].nodeValue
+ self.special2 = node.getElementsByTagName("special2")[0].childNodes[0].nodeValue
+
+class FirstAidKit(Item):
+ def __init__(self, node):
+ Item.__init__(self, node)
+ self.pos_x = node.getElementsByTagName("pos_x")[0].childNodes[0].nodeValue
+ self.pos_y = node.getElementsByTagName("pos_y")[0].childNodes[0].nodeValue
+ self.speed_x = node.getElementsByTagName("speed_x")[0].childNodes[0].nodeValue
+ self.speed_y = node.getElementsByTagName("speed_y")[0].childNodes[0].nodeValue
+ self.life = node.getElementsByTagName("life")[0].childNodes[0].nodeValue
+ self.time = node.getElementsByTagName("time")[0].childNodes[0].nodeValue
class Stage:
-
L = list()
def __init__(self, file):
self.data = xml.dom.minidom.parse(file)
def __cmp__(self, other):
- return cmp(self.x, other.x)
+ return cmp(self.cc, other.cc)
def getNextX(self):
if len(self.L) > 0:
item = self.L[len(self.L) - 1]
- return item.x
+ return item.cc
else:
return -1
@@ -56,39 +102,36 @@ class Stage:
def pop(self, position):
subList = list()
- nextx = self.getNextX()
+ nextx = int(self.getNextX())
while nextx == position:
subList.append(self.L.pop())
nextx = self.getNextX()
+ print(len(subList))
+ print(len(self.L))
+ print(position)
+ print(nextx)
return subList
- def get_special(self, nodes):
- node = nodes.getElementsByTagName("special")[0].childNodes[0].nodeValue
- return node.split(',')
-
def buildStage(self):
- for nodes in self.data.getElementsByTagName("item"):
- itemType = nodes.getElementsByTagName("type")[0].childNodes[0].nodeValue
- x = int(nodes.getElementsByTagName("x")[0].childNodes[0].nodeValue)
- image = nodes.getElementsByTagName("image")[0].childNodes[0].nodeValue
-
- if itemType == "background":
- item = Item(x, "", "", "", "", "", "", image, itemType, "", "")
-
- else:
-
- life = int(nodes.getElementsByTagName("life")[0].childNodes[0].nodeValue)
- y = int(nodes.getElementsByTagName("y")[0].childNodes[0].nodeValue)
- speed_x = int(nodes.getElementsByTagName("speed_x")[0].childNodes[0].nodeValue)
- speed_y = int(nodes.getElementsByTagName("speed_y")[0].childNodes[0].nodeValue)
- rot = int(nodes.getElementsByTagName("rot")[0].childNodes[0].nodeValue)
- rotspeed = int(nodes.getElementsByTagName("rotspeed")[0].childNodes[0].nodeValue)
- life = int(nodes.getElementsByTagName("life")[0].childNodes[0].nodeValue)
- behaviour = nodes.getElementsByTagName("behaviour")[0].childNodes[0].nodeValue
- special = self.get_special(nodes)
- item = Item(x, y, speed_x, speed_y, rot, rotspeed, life, image,
- itemType, behaviour, special)
+ for node in self.data.getElementsByTagName("item"):
+ type = node.getElementsByTagName("type")[0].childNodes[0].nodeValue
+ if type == "background":
+ item = Backg(node)
+ elif type == "enemy":
+ item = Enemy(node)
+ elif type == "sw_mult":
+ item = Mult(node)
+ elif type == "sw_frag":
+ item = Frag(node)
+ elif type == "sw_guided":
+ item = Guided(node)
+ elif type == "first_aid_kit":
+ item = FirstAidKit(node)
+ elif type == "sw_mult":
+ item = Mult(node)
+
+ print(item.cc)
self.include(item)
#below is some black magic I'm not sure how to deal with... but works
#taken from stackoverflow.org
- self.L.sort(key=lambda item: item.x, reverse=True)
+ self.L.sort(key=lambda item: item.cc, reverse=True)
diff --git a/data/stage1.xml b/data/stage1.xml
index 5b1800f..4f3363c 100644
--- a/data/stage1.xml
+++ b/data/stage1.xml
@@ -2,243 +2,233 @@
<fase>
<item>
<type>background</type>
- <x>1</x>
+ <cc>1</cc>
<image>tiles/stars1.jpg</image>
+ <layer>1</layer>
</item>
<item>
- <type>enemy</type>
- <x>100</x>
- <y>40</y>
- <speed_x>0</speed_x>
- <speed_y>0</speed_y>
- <rot>7</rot>
- <rotspeed>2</rotspeed>
- <life>1</life>
- <image>none</image>
- <behaviour>normal</behaviour>
- <special>0</special>
-</item>
-<item>
- <type>enemy</type>
- <x>200</x>
- <y>388</y>
- <speed_x>0</speed_x>
- <speed_y>0</speed_y>
- <rot>20</rot>
- <rotspeed>20</rotspeed>
- <life>1</life>
- <image>none</image>
- <behaviour>fast</behaviour>
- <special>0</special>
+ <type>enemy</type>
+ <cc>100</cc>
+ <pos_x>0</pos_x>
+ <pos_y>40</pos_y>
+ <speed>0</speed>
+ <life>1</life>
+ <image>none</image>
+ <behaviour>normal</behaviour>
+ <special>0</special>
</item>
<item>
- <type>background</type>
- <x>200</x>
- <image>tiles/stars3.jpg</image>
+ <type>enemy</type>
+ <cc>120</cc>
+ <pos_x>0</pos_x>
+ <pos_y>30</pos_y>
+ <speed>0</speed>
+ <life>1</life>
+ <image>none</image>
+ <behaviour>normal</behaviour>
+ <special>0</special>
</item>
<item>
- <type>enemy</type>
- <x>200</x>
- <y>200</y>
- <speed_x>0</speed_x>
- <speed_y>0</speed_y>
- <rot>40</rot>
- <rotspeed>0</rotspeed>
- <life>1</life>
- <image>none</image>
- <behaviour>normal</behaviour>
- <special>0</special>
-</item>
-<item>
- <type>sw_mult</type>
- <x>300</x>
- <y>10</y>
- <speed_x>-3</speed_x>
- <speed_y>0</speed_y>
- <rot>0</rot>
- <rotspeed>0</rotspeed>
- <life>3000</life>
- <image>none</image>
- <behaviour>none</behaviour>
- <special>Stuck Duck, 20, 100, 400, 300, 300, 0, 60, 3</special>
-</item>
-<item>
- <type>first_aid_kit</type>
- <x>350</x>
- <y>10</y>
- <speed_x>-2</speed_x>
- <speed_y>1</speed_y>
- <rot>0</rot>
- <rotspeed>0</rotspeed>
- <life>5000</life>
- <image>none</image>
- <behaviour>none</behaviour>
- <special>3</special>
-</item>
-<item>
- <type>sw_frag</type>
- <x>400</x>
- <y>10</y>
- <speed_x>-4</speed_x>
- <speed_y>0</speed_y>
- <rot>0</rot>
- <rotspeed>0</rotspeed>
- <life>2000</life>
- <image>none</image>
- <behaviour>none</behaviour>
- <special>Last Kiss, 10, 10, 450, 600, 600, 1000, 4</special>
-</item>
-<item>
- <type>sw_mult</type>
- <x>500</x>
- <y>10</y>
- <speed_x>-3</speed_x>
- <speed_y>0</speed_y>
- <rot>0</rot>
- <rotspeed>0</rotspeed>
- <life>4000</life>
- <image>none</image>
- <behaviour>none</behaviour>
- <special>Psycho Killer, 100, 100, 400, 300, 300, 0, 360, 10</special>
-</item>
-<item>
- <type>sw_mult</type>
- <x>580</x>
- <y>10</y>
- <speed_x>-3</speed_x>
- <speed_y>0</speed_y>
- <rot>0</rot>
- <rotspeed>0</rotspeed>
- <life>4000</life>
- <image>none</image>
- <behaviour>none</behaviour>
- <special>Psycho Killer, 20, 100, 400, 300, 300, 0, 360, 10</special>
-</item>
-<item>
- <type>sw_guided</type>
- <x>700</x>
- <y>10</y>
- <speed_x>-4</speed_x>
- <speed_y>0</speed_y>
- <rot>0</rot>
- <rotspeed>0</rotspeed>
- <life>2000</life>
- <image>none</image>
- <behaviour>none</behaviour>
- <special>Seek and Destroy, 45, 50, 150, 900, 300, 0</special>
-</item>
-<item>
- <type>enemy</type>
- <x>800</x>
- <y>388</y>
- <speed_x>0</speed_x>
- <speed_y>0</speed_y>
- <rot>20</rot>
- <rotspeed>20</rotspeed>
- <life>1</life>
- <image>none</image>
- <behaviour>diagonal</behaviour>
- <special>0</special>
-</item>
-<item>
- <type>enemy</type>
- <x>900</x>
- <y>200</y>
- <speed_x>0</speed_x>
- <speed_y>0</speed_y>
- <rot>40</rot>
- <rotspeed>0</rotspeed>
- <life>1</life>
- <image>none</image>
- <behaviour>normal</behaviour>
- <special>0</special>
+ <type>background</type>
+ <cc>200</cc>
+ <image>tiles/stars3.jpg</image>
+ <layer>1</layer>
+</item>
+<item>
+ <type>sw_mult</type>
+ <cc>300</cc>
+ <pos_x>0</pos_x>
+ <pos_y>10</pos_y>
+ <speed_x>-3</speed_x>
+ <speed_y>0</speed_y>
+ <name>Stuck Duck</name>
+ <ammo>20</ammo>
+ <max_ammo>100</max_ammo>
+ <cooldown>400</cooldown>
+ <heating>300</heating>
+ <max_charge>300</max_charge>
+ <time>60</time>
+ <special1>30</special1>
+ <special2>30</special2>
+ <special>Stuck Duck, 20, 100, 400, 300, 300, 0, 60, 3</special>
+</item>
+<item>
+ <type>first_aid_kit</type>
+ <cc>350</cc>
+ <pos_x>0</pos_x>
+ <pos_y>10</pos_y>
+ <speed_x>-2</speed_x>
+ <speed_y>1</speed_y>
+ <life>5</life>
+ <time>5000</time>
+</item>
+<item>
+ <type>sw_frag</type>
+ <cc>400</cc>
+ <pos_x>0</pos_x>
+ <pos_y>10</pos_y>
+ <speed_x>-4</speed_x>
+ <speed_y>0</speed_y>
+ <name>Last Kiss</name>
+ <ammo>10</ammo>
+ <max_ammo>10</max_ammo>
+ <cooldown>450</cooldown>
+ <heating>600</heating>
+ <max_charge>1000</max_charge>
+ <time>60</time>
+ <special1>1000</special1>
+ <special2>40</special2>
+ <special>Last Kiss, 10, 10, 450, 600, 600, 1000, 4</special>
+</item>
+<item>
+ <type>sw_mult</type>
+ <cc>500</cc>
+ <pos_x>0</pos_x>
+ <pos_y>10</pos_y>
+ <speed_x>-3</speed_x>
+ <speed_y>0</speed_y>
+ <name>Psycho Killah!</name>
+ <ammo>100</ammo>
+ <max_ammo>100</max_ammo>
+ <cooldown>400</cooldown>
+ <heating>300</heating>
+ <max_charge>300</max_charge>
+ <time>60</time>
+ <special1>360</special1>
+ <special2>10</special2>
+</item>
+<item>
+ <type>sw_mult</type>
+ <cc>580</cc>
+ <pos_x>0</pos_x>
+ <pos_y>10</pos_y>
+ <speed_x>-3</speed_x>
+ <speed_y>0</speed_y>
+ <name>Pala Infinita!</name>
+ <ammo>20</ammo>
+ <max_ammo>100</max_ammo>
+ <cooldown>400</cooldown>
+ <heating>300</heating>
+ <max_charge>300</max_charge>
+ <time>60</time>
+ <special1>360</special1>
+ <special2>10</special2>
+</item>
+<item>
+ <type>sw_guided</type>
+ <cc>700</cc>
+ <pos_x>0</pos_x>
+ <pos_y>10</pos_y>
+ <speed_x>-4</speed_x>
+ <speed_y>0</speed_y>
+ <name>Seeeeeeek... Seek and Destroy!</name>
+ <ammo>40</ammo>
+ <max_ammo>50</max_ammo>
+ <cooldown>150</cooldown>
+ <heating>900</heating>
+ <max_charge>300</max_charge>
+ <time>60</time>
+ <special1>30</special1>
+ <special2>30</special2>
+</item>
+<item>
+ <type>enemy</type>
+ <cc>800</cc>
+ <pos_x>0</pos_x>
+ <pos_y>70</pos_y>
+ <speed>0</speed>
+ <life>1</life>
+ <image>none</image>
+ <behaviour>normal</behaviour>
+ <special>0</special>
+</item>
+<item>
+ <type>enemy</type>
+ <cc>900</cc>
+ <pos_x>0</pos_x>
+ <pos_y>30</pos_y>
+ <speed>0</speed>
+ <life>1</life>
+ <image>none</image>
+ <behaviour>normal</behaviour>
+ <special>0</special>
</item>
<item>
<type>background</type>
- <x>1000</x>
+ <cc>1000</cc>
<image>tiles/stars1.jpg</image>
+ <layer>1</layer>
</item>
<item>
<type>background</type>
- <x>1010</x>
+ <cc>1010</cc>
<image>tiles/stars3.jpg</image>
-</item>
-<item>
- <type>enemy</type>
- <x>1200</x>
- <y>200</y>
- <speed_x>0</speed_x>
- <speed_y>0</speed_y>
- <rot>40</rot>
- <rotspeed>0</rotspeed>
- <life>2</life>
- <image>none</image>
- <behaviour>normal</behaviour>
- <special>0</special>
-</item>
-<item>
- <type>enemy</type>
- <x>1300</x>
- <y>200</y>
- <speed_x>0</speed_x>
- <speed_y>0</speed_y>
- <rot>40</rot>
- <rotspeed>0</rotspeed>
- <life>2</life>
- <image>none</image>
- <behaviour>fast</behaviour>
- <special>0</special>
-</item>
-<item>
- <type>enemy</type>
- <x>1400</x>
- <y>200</y>
- <speed_x>0</speed_x>
- <speed_y>0</speed_y>
- <rot>40</rot>
- <rotspeed>0</rotspeed>
- <life>3</life>
- <image>none</image>
- <behaviour>normal</behaviour>
- <special>0</special>
-</item>
-<item>
- <type>enemy</type>
- <x>1500</x>
- <y>200</y>
- <speed_x>0</speed_x>
- <speed_y>0</speed_y>
- <rot>40</rot>
- <rotspeed>0</rotspeed>
- <life>3</life>
- <image>none</image>
- <behaviour>diagonal</behaviour>
- <special>0</special>
-</item>
-<item>
- <type>enemy</type>
- <x>1800</x>
- <y>200</y>
- <speed_x>0</speed_x>
- <speed_y>0</speed_y>
- <rot>40</rot>
- <rotspeed>0</rotspeed>
- <life>3</life>
- <image>none</image>
- <behaviour>normal</behaviour>
- <special>0</special>
-</item>
-<item>
- <type>enemy</type>
- <x>2000</x>
- <y>200</y>
- <speed_x>0</speed_x>
- <speed_y>0</speed_y>
- <rot>40</rot>
- <rotspeed>0</rotspeed>
- <life>3</life>
- <image>none</image>
- <behaviour>diagonal</behaviour>
- <special>0</special>
+ <layer>1</layer>
+</item>
+<item>
+ <type>enemy</type>
+ <cc>1200</cc>
+ <pos_x>0</pos_x>
+ <pos_y>30</pos_y>
+ <speed>0</speed>
+ <life>2</life>
+ <image>none</image>
+ <behaviour>normal</behaviour>
+ <special>0</special>
+</item>
+<item>
+ <type>enemy</type>
+ <cc>1300</cc>
+ <pos_x>0</pos_x>
+ <pos_y>30</pos_y>
+ <speed>0</speed>
+ <life>2</life>
+ <image>none</image>
+ <behaviour>normal</behaviour>
+ <special>0</special>
+</item>
+<item>
+ <type>enemy</type>
+ <cc>1400</cc>
+ <pos_x>0</pos_x>
+ <pos_y>30</pos_y>
+ <speed>0</speed>
+ <life>2</life>
+ <image>none</image>
+ <behaviour>normal</behaviour>
+ <special>0</special>
+</item>
+<item>
+ <type>enemy</type>
+ <cc>1500</cc>
+ <pos_x>0</pos_x>
+ <pos_y>30</pos_y>
+ <speed>0</speed>
+ <life>1</life>
+ <image>none</image>
+ <behaviour>normal</behaviour>
+ <special>0</special>
+</item>
+<item>
+ <type>enemy</type>
+ <cc>1800</cc>
+ <pos_x>0</pos_x>
+ <pos_y>30</pos_y>
+ <speed>0</speed>
+ <life>1</life>
+ <image>none</image>
+ <behaviour>normal</behaviour>
+ <special>0</special>
+</item>
+<item>
+ <type>enemy</type>
+ <cc>2000</cc>
+ <pos_x>0</pos_x>
+ <pos_y>30</pos_y>
+ <speed>0</speed>
+ <life>1</life>
+ <image>none</image>
+ <behaviour>normal</behaviour>
+ <special>0</special>
</item>
</fase>
-----------------------------------------------------------------------
Summary of changes:
code/game.py | 6 +-
code/stage.py | 131 +++++++++++------
data/stage1.xml | 436 +++++++++++++++++++++++++++----------------------------
3 files changed, 304 insertions(+), 269 deletions(-)
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|
|
From: Bruno C. <bru...@us...> - 2009-12-05 04:01:01
|
This is an automated email from the git, the tree hashes are:
via 6d919fc872b07572540022ecfbdc34fbe97c502e (commit)
via f76e6cfc32fd286cfa1e3b61e9782595a71e2b04 (commit)
from 5a59d44d824d386fc4f355ce2bca6d0b49e16238 (commit)
- Log -----------------------------------------------------------------
commit 6d919fc872b07572540022ecfbdc34fbe97c502e
Merge: f76e6cf 5a59d44
Author: Bruno Cardoso Lopes <bruno@keyser.(none)>
Date: Sat Dec 5 02:00:40 2009 -0200
Merge branch 'master' of ssh://brunocardoso@deadchannel.git.sourceforge.net/gitroot/deadchannel/deadchannel
commit f76e6cfc32fd286cfa1e3b61e9782595a71e2b04
Author: Bruno Cardoso Lopes <bruno@keyser.(none)>
Date: Sat Dec 5 02:00:10 2009 -0200
Add support for fullscreen toogle. Just press 'f' on an updated default_preferences.cfg
diff --git a/code/game.py b/code/game.py
index 069eb42..e63c513 100644
--- a/code/game.py
+++ b/code/game.py
@@ -157,6 +157,8 @@ class Game:
player.prev_secondary_weapon()
elif key == preferences.key_next_secondary_weapon:
player.next_secondary_weapon()
+ elif key == preferences.key_toogle_fullscreen:
+ pygame.display.toggle_fullscreen()
elif type == KEYUP:
if key == preferences.key_down:
player.accel_top()
diff --git a/code/preferences.py b/code/preferences.py
index 33bcdb5..9366c9d 100644
--- a/code/preferences.py
+++ b/code/preferences.py
@@ -96,6 +96,9 @@ class Preferences:
def get_key_next_secondary_weapon(self):
return int(self.get('keyboard', 'next_secondary_weapon'))
+ def get_key_toogle_fullscreen(self):
+ return int(self.get('keyboard', 'toogle_fullscreen'))
+
def get_mouse_sensitivity(self):
return float(self.get('mouse', 'sensitivity'))
@@ -177,6 +180,7 @@ class Preferences:
key_player_next_track = property(get_key_player_next_track)
key_prev_secondary_weapon = property(get_key_prev_secondary_weapon)
key_next_secondary_weapon = property(get_key_next_secondary_weapon)
+ key_toogle_fullscreen = property(get_key_toogle_fullscreen)
mouse_sensitivity = property(get_mouse_sensitivity)
mouse_fire = property(get_mouse_fire)
mouse_secondary_fire = property(get_mouse_secondary_fire)
diff --git a/data/default_preferences.cfg b/data/default_preferences.cfg
index 6433dce..ca4017d 100644
--- a/data/default_preferences.cfg
+++ b/data/default_preferences.cfg
@@ -47,6 +47,7 @@ fire = 32
prev_secondary_weapon = 97
next_secondary_weapon = 115
secondary_fire = 100
+toogle_fullscreen = 102
[mouse]
# mouse buttons are left = 1, middle = 2, right = 3, wheel up = 4 and down = 5
fire = 1
-----------------------------------------------------------------------
Summary of changes:
code/game.py | 2 ++
code/preferences.py | 4 ++++
data/default_preferences.cfg | 1 +
3 files changed, 7 insertions(+), 0 deletions(-)
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|
|
From: Thiago B. A. <bo...@us...> - 2009-12-05 03:51:40
|
This is an automated email from the git, the tree hashes are:
via 5a59d44d824d386fc4f355ce2bca6d0b49e16238 (commit)
from 3c755341cf0e4954446a76354859803b4bfb79bc (commit)
- Log -----------------------------------------------------------------
commit 5a59d44d824d386fc4f355ce2bca6d0b49e16238
Author: Thiago Borges Abdnur <bo...@gm...>
Date: Sat Dec 5 01:51:07 2009 -0200
Fixed string from hell
diff --git a/code/hud.py b/code/hud.py
index 6947d7b..da13b6a 100644
--- a/code/hud.py
+++ b/code/hud.py
@@ -98,7 +98,7 @@ class HUD:
date = ""
text0 = "%s by %s" % (title, artist)
- text1 = "%s %s" % (album, date)Thiago Borges Abdnur <bo...@gm...>
+ text1 = "%s %s" % (album, date)
# print "Rendering track info: %s" % text
self.font.set_bold(True)
image_track_ln0 = self.font.render(text0, True, fcolor)
-----------------------------------------------------------------------
Summary of changes:
code/hud.py | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|
|
From: Thiago B. A. <bo...@us...> - 2009-12-05 03:47:55
|
This is an automated email from the git, the tree hashes are:
via 3c755341cf0e4954446a76354859803b4bfb79bc (commit)
from cd33742d2bc5a80d68ddbfd74f38a3b9f94fc814 (commit)
- Log -----------------------------------------------------------------
commit 3c755341cf0e4954446a76354859803b4bfb79bc
Author: Thiago Borges Abdnur <bo...@gm...>
Date: Sat Dec 5 01:47:19 2009 -0200
Adding tags correct parsing
diff --git a/code/hud.py b/code/hud.py
index 67ac485..6947d7b 100644
--- a/code/hud.py
+++ b/code/hud.py
@@ -2,10 +2,11 @@
# -*- coding: utf-8 -*-
#----------------------------------------------------------------------
-# Author:
+# Authors:
# Bruno Dilly <bru...@br...>
+# Thiago Borges Abdnur <bo...@gm...>
#
-# Copyright (C) 2009 Bruno Dilly
+# Copyright (C) 2009 Bruno Dilly and Thiago Borges Abdnur
#
# Released under GNU GPL, read the file 'COPYING' for more information
# ----------------------------------------------------------------------
@@ -76,8 +77,28 @@ class HUD:
info = self.track_info
fcolor = (255, 255, 255)
- text0 = "%s by %s" % (info['title'][0], info['artist'][0])
- text1 = "%s (%s)" % (info['album'][0], info['date'][0])
+ if info.has_key('title'):
+ title = info['title'][0]
+ else:
+ title = "Unknown title"
+
+ if info.has_key('artist'):
+ artist = info['artist'][0]
+ else:
+ artist = "Unknown artist"
+
+ if info.has_key('album'):
+ album = info['album'][0]
+ else:
+ album = "Unknown album"
+
+ if info.has_key('date'):
+ date = "(%s)" % info['date'][0]
+ else:
+ date = ""
+
+ text0 = "%s by %s" % (title, artist)
+ text1 = "%s %s" % (album, date)Thiago Borges Abdnur <bo...@gm...>
# print "Rendering track info: %s" % text
self.font.set_bold(True)
image_track_ln0 = self.font.render(text0, True, fcolor)
-----------------------------------------------------------------------
Summary of changes:
code/hud.py | 29 +++++++++++++++++++++++++----
1 files changed, 25 insertions(+), 4 deletions(-)
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|
|
From: Bruno C. <bru...@us...> - 2009-12-05 03:44:36
|
This is an automated email from the git, the tree hashes are:
via cd33742d2bc5a80d68ddbfd74f38a3b9f94fc814 (commit)
from 764997f4e2639c31e812b26257a66f33c7eb2225 (commit)
- Log -----------------------------------------------------------------
commit cd33742d2bc5a80d68ddbfd74f38a3b9f94fc814
Author: Bruno Cardoso Lopes <bruno@keyser.(none)>
Date: Sat Dec 5 01:44:20 2009 -0200
revert last newbie commit
diff --git a/code/game.py b/code/game.py
index 53b55a0..069eb42 100644
--- a/code/game.py
+++ b/code/game.py
@@ -34,6 +34,8 @@ class Game:
run = True
actors_list = None
player = None
+ player_firing = False
+ player_charging = 0
rot_accel = 2
def __init__(self, preferences):
@@ -102,12 +104,14 @@ class Game:
for image in ["fire", "sw_mult", "sw_frag", "sw_guided"]:
self.image_player_fire[image] = self.load_image("player_"+image+".png")
- def handle_events(self):
+ def handle_events(self, ms):
"""
Handle user's events.
"""
player = self.player
preferences = self.preferences
+ player_fire = False
+ self.player_charging += ms
for event in pygame.event.get():
type = event.type
@@ -153,8 +157,6 @@ class Game:
player.prev_secondary_weapon()
elif key == preferences.key_next_secondary_weapon:
player.next_secondary_weapon()
- elif key == preferences.key_toogle_fullscreen:
- pygame.display.toggle_fullscreen()
elif type == KEYUP:
if key == preferences.key_down:
player.accel_top()
@@ -168,15 +170,10 @@ class Game:
if preferences.input == "keyboard":
if type == KEYDOWN:
if key == preferences.key_fire:
- player.fire(self.actors_list["fire"],
- self.image_player_fire["fire"])
+ player_fire = True
+ self.player_firing = True
elif key == preferences.key_secondary_fire:
- sw = player.get_selected_secondary_weapon()
- if sw == None:
- continue
- player.fire(self.actors_list["fire"],
- self.image_player_fire[sw.get_type()], False,
- self.actors_list["enemies"])
+ self.player_charging = 0
elif key == preferences.key_rot_clock:
player.rotate_clock(self.rot_accel)
elif key == preferences.key_rot_anti_clock:
@@ -186,24 +183,41 @@ class Game:
player.rotate_clock(-self.rot_accel)
elif key == preferences.key_rot_anti_clock:
player.rotate_clock(self.rot_accel)
+ elif key == preferences.key_fire:
+ self.player_firing = False
+ elif key == preferences.key_secondary_fire:
+ sw = player.get_selected_secondary_weapon()
+ if sw == None:
+ continue
+ player.fire(self.actors_list["fire"],
+ self.image_player_fire[sw.get_type()], False,
+ self.actors_list["enemies"],
+ self.player_charging)
elif preferences.input == "mouse":
if type == MOUSEBUTTONDOWN:
# mouse left button is 1, middle is 2, and right is 3
if button == preferences.mouse_fire:
- player.fire(self.actors_list["fire"],
- self.image_player_fire["fire"])
+ player_fire = True
+ self.player_firing = True
+ elif button == preferences.mouse_secondary_fire:
+ self.player_charging = 0
+ elif button == preferences.mouse_prev_secondary_weapon:
+ player.prev_secondary_weapon()
+ elif button == preferences.mouse_next_secondary_weapon:
+ player.next_secondary_weapon()
+ elif type == MOUSEBUTTONUP:
+ if button == preferences.mouse_fire:
+ self.player_firing = False
elif button == preferences.mouse_secondary_fire:
sw = player.get_selected_secondary_weapon()
if sw == None:
continue
player.fire(self.actors_list["fire"],
self.image_player_fire[sw.get_type()], False,
- self.actors_list["enemies"])
- elif button == preferences.mouse_prev_secondary_weapon:
- player.prev_secondary_weapon()
- elif button == preferences.mouse_next_secondary_weapon:
- player.next_secondary_weapon()
+ self.actors_list["enemies"],
+ self.player_charging)
+
elif type == MOUSEMOTION:
# rel is a tuple with x and y relative movements
# if player move the cursor down or left, it has
@@ -223,15 +237,10 @@ class Game:
"joystick_d-pad"):
if type == JOYBUTTONDOWN and joy_id == preferences.joy_id:
if button == preferences.j_bt_fire:
- player.fire(self.actors_list["fire"],
- self.image_player_fire["fire"])
+ player_fire = True
+ self.player_firing = True
elif button == preferences.j_bt_secondary_fire:
- sw = player.get_selected_secondary_weapon()
- if sw == None:
- continue
- player.fire(self.actors_list["fire"],
- self.image_player_fire[sw.get_type()], False,
- self.actors_list["enemies"])
+ self.player_charging = 0
elif button == preferences.j_bt_player_play:
self.music_player.play()
elif button == preferences.j_bt_player_stop:
@@ -242,6 +251,18 @@ class Game:
player.prev_secondary_weapon()
elif button == preferences.j_bt_next_secondary_weapon:
player.next_secondary_weapon()
+ elif type == JOYBUTTONUP and joy_id == preferences.joy_id:
+ if button == preferences.j_bt_fire:
+ self.player_firing = False
+ elif button == preferences.j_bt_secondary_fire:
+ sw = player.get_selected_secondary_weapon()
+ if sw == None:
+ continue
+ player.fire(self.actors_list["fire"],
+ self.image_player_fire[sw.get_type()], False,
+ self.actors_list["enemies"],
+ self.player_charging)
+
if preferences.input == "joystick_analogic":
if type == JOYAXISMOTION and joy_id == preferences.joy_id:
@@ -280,6 +301,10 @@ class Game:
elif button == preferences.j_bt_rot_anti_clock:
player.rotate_clock(self.rot_accel)
+ if player_fire or self.player_firing:
+ player.fire(self.actors_list["fire"],
+ self.image_player_fire["fire"])
+
def actors_update(self, dt, ms):
"""
Updates actors and background
@@ -445,7 +470,7 @@ class Game:
ms = clock.tick(1000/dt)
# handle input
- self.handle_events()
+ self.handle_events(ms)
# update all the game elements
self.actors_update(dt, ms)
self.actors_act()
diff --git a/code/preferences.py b/code/preferences.py
index 9366c9d..33bcdb5 100644
--- a/code/preferences.py
+++ b/code/preferences.py
@@ -96,9 +96,6 @@ class Preferences:
def get_key_next_secondary_weapon(self):
return int(self.get('keyboard', 'next_secondary_weapon'))
- def get_key_toogle_fullscreen(self):
- return int(self.get('keyboard', 'toogle_fullscreen'))
-
def get_mouse_sensitivity(self):
return float(self.get('mouse', 'sensitivity'))
@@ -180,7 +177,6 @@ class Preferences:
key_player_next_track = property(get_key_player_next_track)
key_prev_secondary_weapon = property(get_key_prev_secondary_weapon)
key_next_secondary_weapon = property(get_key_next_secondary_weapon)
- key_toogle_fullscreen = property(get_key_toogle_fullscreen)
mouse_sensitivity = property(get_mouse_sensitivity)
mouse_fire = property(get_mouse_fire)
mouse_secondary_fire = property(get_mouse_secondary_fire)
diff --git a/data/default_preferences.cfg b/data/default_preferences.cfg
index 5308d57..6433dce 100644
--- a/data/default_preferences.cfg
+++ b/data/default_preferences.cfg
@@ -47,7 +47,6 @@ fire = 32
prev_secondary_weapon = 97
next_secondary_weapon = 115
secondary_fire = 100
-toogle_fullscreen = 102
[mouse]
# mouse buttons are left = 1, middle = 2, right = 3, wheel up = 4 and down = 5
fire = 1
@@ -59,3 +58,4 @@ sensitivity = 0.6
# input can be mouse, keyboard, joystick_analogic, joystick_d-pad
input = mouse
music_volume = 0.8
+use_default_setlist = True
-----------------------------------------------------------------------
Summary of changes:
code/game.py | 79 +++++++++++++++++++++++++++--------------
code/preferences.py | 4 --
data/default_preferences.cfg | 2 +-
3 files changed, 53 insertions(+), 32 deletions(-)
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|
|
From: Bruno C. <bru...@us...> - 2009-12-05 03:26:55
|
This is an automated email from the git, the tree hashes are:
via 764997f4e2639c31e812b26257a66f33c7eb2225 (commit)
from e9bae6650c0ea04dbebc6abe6c70f76d03e830cd (commit)
- Log -----------------------------------------------------------------
-----------------------------------------------------------------------
Summary of changes:
code/game.py | 79 ++++++++++++++---------------------------
code/preferences.py | 4 ++
data/default_preferences.cfg | 2 +-
3 files changed, 32 insertions(+), 53 deletions(-)
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|
|
From: Bruno D. <bd...@us...> - 2009-12-05 02:52:31
|
via e9bae6650c0ea04dbebc6abe6c70f76d03e830cd (commit)
from 3192ed90f6ea97fe2ef6cd4a5983cf7a64075272 (commit)
- Log -----------------------------------------------------------------
commit e9bae6650c0ea04dbebc6abe6c70f76d03e830cd
Author: Bruno Dilly <bru...@br...>
Date: Sat Dec 5 00:52:16 2009 -0200
Test git hook
-----------------------------------------------------------------------
Summary of changes:
README | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
hooks/post-receive
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|
|
From: Bruno D. <bd...@us...> - 2009-12-05 02:34:21
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Dead Channel is a sci-fi shoot 'em up game developed using pygame.".
The branch, master has been updated
via 3192ed90f6ea97fe2ef6cd4a5983cf7a64075272 (commit)
from 4b82ad5a76b34df85733dccb189d8497dab519b9 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 3192ed90f6ea97fe2ef6cd4a5983cf7a64075272
Author: Bruno Dilly <bru...@br...>
Date: Sat Dec 5 00:34:07 2009 -0200
Use default setlist
-----------------------------------------------------------------------
Summary of changes:
data/default_preferences.cfg | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
hooks/post-receive
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|