File: NOTES.txt

package info (click to toggle)
seahorse-adventures 1.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 4,940 kB
  • ctags: 1,133
  • sloc: python: 8,640; makefile: 11; sh: 3
file content (148 lines) | stat: -rw-r--r-- 5,698 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
PHIL'S LEVEL RATINGS:

starred levels are going in the final game .. haven't rated all levels yet

N J T P
+ + +   phil_1                easy       jungle
  + +   phil_7                easy       jungle
  + + + tim_2.tga             easy/med   jungle
  + + + phil_2.tga            easy/med   jungle
  ? + + phil_13.tga           med/hard   jungle
  
? + +   pekuja_3              medium     volcano
  + + + tim_4                 medium     volcano
  ? ? + phil_14.tga           med/hard   volcano
  + + + phil_8.tga            easy       volcano-bonus
  
  + + + phil_12.tga           easy/med   moon
+ + +   pekuja_1              easy/med   moon
  + + + phil_5.tga            medium     moon
+ ? + + phil_10.tga           hard       moon
  + + + boss_1.tga            hard       boss
  
? + ? ? fydo_1.tga            easy/med   volcano
  ? ? ? tim_1.tga             medium     volcano
  + ? ? phil_9                easy/med   moon
  ? ?   tee_1                 hard       jungle
- + -   pekuja_2              medium     volcano
  ? - - phil_3                med/hard   jungle
  ? -   phil_11               
    - ? phil_15
  + - - phil_4                medium     volcano
  + - - phil_6                hard       volcano (replace 1st fallies w/ blocks)
- -     drpetter_1            hard       volcano
- -     eugman_1              medium     jungle

MILLIONS OF GAME MAPS:
http://www.vgmaps.com/Atlas/NES/index.htm

GOD MODE:
press f10 for god mode!

IMPORTANT NOTES TO CODERS:
- don't edit level.py !!!! ask phil to 
- in general, just add new tiles, and new enemies with CODES, see the HOWTO
section a bit down the file

PLOT OF THE GAME:
The basic plot of the game is "Oh no, the evil overlord stole the galaxy crystal, we must fly up to the moon to get it!" In more concrete terms - first few levels are in a jungle. The next 3 levels are flying up an exploding volcano. The last 3 levels are going to be on the moon.


HOW TO EDIT LEVELS AND TILES:
- run leveledit.py - to edit levels
    you can use File->Preview to preview your level as you go
- All levels should have a two tile thick wall around them, to bound
    stuff from escaping the level
- run tileedit.py - to edit tiles
    check out the top of tileedit.py in a text editor for a list of keyboard shortcuts
    (same goes for leveledit, lots of nifty key shortcuts)
- if you need to resize a level, backup your level, then resize it in an image editor

HOW TO ORGANIZE TILES:
- all tiles are to be put into tiles.tga 
- tile size = 16x16 
- it can hold 256 tiles
- the first 64 tiles should be "general purpose" tiles
- the next 64 tiles should be "jungle tiles"
- next 64 "volcano / lava"
- next 64 "moon tiles"
- we will be able to have animated tiles, but I haven't implemented that yet.
to have an animated tile, just put the frames in a row for now.

HOW TO NAME SPRITES:
- Each sprite should be in a separate file in data/sprites
    named something like "player-left-0" etc..
- All sprites for a given character should be the same size
    so that the bounding box of the characters shape can always be the same
    
HOWTO ADD A NEW TILE TYPE:
- open up tiles.py
- add a line like: 0x01    :[t_init,['solid'],tiles_basic.hit_block,1,1,1,1,],
the key is the tile number .. then

    t_init - the easy initializer, use that unless you need something crazy
    groups - a list of groups that the tile can "hit"
    function - a function to call when the tile hits something
    *params - extra parameters to pass to that function

some basic tile types are defined in tiles_basic.  you can probably copy those
and muck around some.  the hit_block can do all kinds of blocks, but mainly
1,1,1,1 for solid blocks and 1,0,0,0 for platforms are the most useful parameters

TILE CODING TIPS:
- animation isn't implemented yet, but i'll add that soon enough, don't 
worry about it for now.  just check out tiles_basic.py for hit methods
and do the stuff in the previous section. if we need to do anything super
crazy, ask phil

HOWTO ADD A NEW SPRITE TYPE:
- copy spikey.py or platform.py to a new enemy.py
- in sprites.py add "import enemy"
- modify enemy.py with your new code, etc.
- edit codes.tga to have a symbol for the code for the enemy
- open codes.py, and add a line to the CODES section for enemies
    key: [fnc,*params]
    key - the number of that tile in codes.tga
    fnc - the init function (sprites.enemy.init usually)
    *params - some extra params to be passed to your init function

MISC SPRITE CODING NOTES:
- If an object can stand on other objects, it must
    - have s.standing attribute = None in init
    - call sprite.check_standing(g,s) at the end of each loop
- If an object can carry other objects, it must
    - set b.standing = a .. and .. 
    - set a.carrying.append(b) when it starts to carry something
- To get a sprite removed, 
    - s.active = False
    and it will be garbage collected sometime soon :)
    deinit() will be auto-called if needed...
- The sprites use names like
    'sprite-01' not actual images.  The images are looked up during
    rendering.  Should make things easier to follow.
- to change the image a sprite is using, 
    s.image = 'player-right-%d'%(s.frames%5) , etc ..
    
    
SOFTWARE OTHER PEOPLE MIGHT NEED:
http://tortoisesvn.net/downloads
http://www.python.org/ftp/python/2.5/python-2.5.msi
http://www.pygame.org/ftp/pygame-1.7.1release.win32-py2.5.exe

OLD JUNK THAT CAN BE IGNORED, BUT I'M LEAVING HERE FOR NOW:
philhassey: code
trick: still haven't heard back...
pekuja: gfx?
DrPetter: sfx, gfx, music?
timinge: music
fydo: maybe some gfx somewhere
lerc: gfx, code
Tee : levels?
eugman: levels?

PoV: levels?

jolle: levels/gfx
illume: gfx/levels?